diff --git a/NG_2023_Kanban.BusinessLayer/Interfaces/IUserService.cs b/NG_2023_Kanban.BusinessLayer/Interfaces/IUserService.cs index 5597e6d..1f808f5 100644 --- a/NG_2023_Kanban.BusinessLayer/Interfaces/IUserService.cs +++ b/NG_2023_Kanban.BusinessLayer/Interfaces/IUserService.cs @@ -4,6 +4,7 @@ namespace NG_2023_Kanban.BusinessLayer.Interfaces { public interface IUserService { + Task GetAsync(int id); Task LoginAsync(UserModel user); Task RegisterAsync(UserModel user); } diff --git a/NG_2023_Kanban.BusinessLayer/Service/UserService.cs b/NG_2023_Kanban.BusinessLayer/Service/UserService.cs index ffbb449..a6bc400 100644 --- a/NG_2023_Kanban.BusinessLayer/Service/UserService.cs +++ b/NG_2023_Kanban.BusinessLayer/Service/UserService.cs @@ -18,6 +18,11 @@ namespace NG_2023_Kanban.BusinessLayer.Services _mapper = mapper; } + public async Task GetAsync(int id) + { + return _mapper.Map(await _userRepository.GetAsync(id)); + } + public async Task LoginAsync(UserModel user) { var data = await _userRepository.FindAsync(x => x.Username == user.Username && x.Password == user.Password); diff --git a/NG_2023_Kanban/Controllers/HomeController.cs b/NG_2023_Kanban/Controllers/HomeController.cs index ccac681..49c0e34 100644 --- a/NG_2023_Kanban/Controllers/HomeController.cs +++ b/NG_2023_Kanban/Controllers/HomeController.cs @@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Mvc; using AutoMapper; using NG_2023_Kanban.Models; using NG_2023_Kanban.DTOs; -using NG_2023_Kanban.Extensions; using NG_2023_Kanban.BusinessLayer.Models; using NG_2023_Kanban.BusinessLayer.Services; @@ -22,12 +21,12 @@ public class HomeController : Controller _mapper = mapper; } - public IActionResult Index() + public async Task Index() { - var currentAccount = HttpContext.Session.GetObject("Account"); - if (currentAccount != null) + var currentAccount = HttpContext.Session.GetInt32("Account"); + if (currentAccount.HasValue) { - ViewData["Account"] = currentAccount; + ViewData["Account"] = _mapper.Map(await _userService.GetAsync(currentAccount.Value)); return View(); } return Redirect("/Home/Login"); @@ -35,7 +34,7 @@ public class HomeController : Controller public IActionResult Login() { - var currentAccount = HttpContext.Session.GetObject("Account"); + var currentAccount = HttpContext.Session.GetInt32("Account"); if (currentAccount != null) return Redirect("/Home/Index"); @@ -45,7 +44,7 @@ public class HomeController : Controller [HttpPost] public async Task Login(UserDto user) { - var currentAccount = HttpContext.Session.GetObject("Account"); + var currentAccount = HttpContext.Session.GetInt32("Account"); if (currentAccount != null) return Redirect("/Home/Index"); @@ -55,7 +54,7 @@ public class HomeController : Controller if (account != null) { - HttpContext.Session.SetObject("Account", account); + HttpContext.Session.SetInt32("Account", account.Id); return Redirect("/Home/Index"); } else @@ -73,7 +72,7 @@ public class HomeController : Controller public IActionResult Register() { - var currentAccount = HttpContext.Session.GetObject("Account"); + var currentAccount = HttpContext.Session.GetInt32("Account"); if (currentAccount != null) return Redirect("/Home/Index"); @@ -83,7 +82,7 @@ public class HomeController : Controller [HttpPost] public async Task Register(UserDto user) { - var currentAccount = HttpContext.Session.GetObject("Account"); + var currentAccount = HttpContext.Session.GetInt32("Account"); if (currentAccount != null) return Redirect("/Home/Index"); @@ -92,7 +91,7 @@ public class HomeController : Controller var model = _mapper.Map(user); var account = _mapper.Map(await _userService.RegisterAsync(model)); - HttpContext.Session.SetObject("Account", account); + HttpContext.Session.SetInt32("Account", account.Id); return Redirect("/Home/Index"); } catch diff --git a/NG_2023_Kanban/Extensions/SessionExtensions.cs b/NG_2023_Kanban/Extensions/SessionExtensions.cs deleted file mode 100644 index 9b3b3a7..0000000 --- a/NG_2023_Kanban/Extensions/SessionExtensions.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Newtonsoft.Json; - -namespace NG_2023_Kanban.Extensions; - -public static class SessionExtensions { - public static void SetObject(this ISession session, string key, object value) - { - session.SetString(key, JsonConvert.SerializeObject(value)); - } - - public static T GetObject(this ISession session, string key) - { - var value = session.GetString(key); - return value == null ? default(T) : JsonConvert.DeserializeObject(value); - } -} \ No newline at end of file