Я работаю над разными слоями в MVC. net core 3 проекте. Моя проблема в том, что мои контроллеры и представления находятся на одном уровне, а все службы, которые выполняют действия, связанные с БД, находятся на другом уровне библиотеки классов. Я хочу получить значения сеанса в моем слое обслуживания. Как я могу получить их? Я пробовал HttpContext в слое обслуживания, но он не работал.
Вот мой контроллер.
namespace CRM.Web.Controllers
{
[Authorize]
public class ContactController : Controller
{
private int UserID { get { return Convert.ToInt32(HttpContext.Session.GetInt32("UserID")); } }
private string RoleName { get { return HttpContext.Session.GetString("RoleName"); } }
private readonly ContactService _contactService;
public ContactController(ContactService contactService)
{
_contactService = contactService;
}
public IActionResult Index()
{
return View();
}
}
}
А вот моя служба контактов.
namespace CRM.Service.Services.ContactService
{
public class ContactService : IRepository<Contact>, IDisposable
{
public int UserID { get; set; }
private readonly _DbContext _context;
private readonly IMapper _mapper;
public ContactService(_DbContext context, AutoMapperConfig autoMapperConfig)
{
_context = context;
_mapper = autoMapperConfig.Mapper;
}
}
}