Remove SessionExtensions

This commit is contained in:
Stanislav Mykhailenko 2023-05-18 21:44:06 +03:00
parent e3d4ef87c2
commit 25a9038fec
GPG key ID: 1E95E66A9C9D6A36
4 changed files with 16 additions and 27 deletions

View file

@ -4,6 +4,7 @@ namespace NG_2023_Kanban.BusinessLayer.Interfaces
{ {
public interface IUserService public interface IUserService
{ {
Task<UserModel> GetAsync(int id);
Task<UserModel?> LoginAsync(UserModel user); Task<UserModel?> LoginAsync(UserModel user);
Task<UserModel> RegisterAsync(UserModel user); Task<UserModel> RegisterAsync(UserModel user);
} }

View file

@ -18,6 +18,11 @@ namespace NG_2023_Kanban.BusinessLayer.Services
_mapper = mapper; _mapper = mapper;
} }
public async Task<UserModel> GetAsync(int id)
{
return _mapper.Map<UserModel>(await _userRepository.GetAsync(id));
}
public async Task<UserModel?> LoginAsync(UserModel user) public async Task<UserModel?> LoginAsync(UserModel user)
{ {
var data = await _userRepository.FindAsync(x => x.Username == user.Username && x.Password == user.Password); var data = await _userRepository.FindAsync(x => x.Username == user.Username && x.Password == user.Password);

View file

@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Mvc;
using AutoMapper; using AutoMapper;
using NG_2023_Kanban.Models; using NG_2023_Kanban.Models;
using NG_2023_Kanban.DTOs; using NG_2023_Kanban.DTOs;
using NG_2023_Kanban.Extensions;
using NG_2023_Kanban.BusinessLayer.Models; using NG_2023_Kanban.BusinessLayer.Models;
using NG_2023_Kanban.BusinessLayer.Services; using NG_2023_Kanban.BusinessLayer.Services;
@ -22,12 +21,12 @@ public class HomeController : Controller
_mapper = mapper; _mapper = mapper;
} }
public IActionResult Index() public async Task<IActionResult> Index()
{ {
var currentAccount = HttpContext.Session.GetObject<UserDto>("Account"); var currentAccount = HttpContext.Session.GetInt32("Account");
if (currentAccount != null) if (currentAccount.HasValue)
{ {
ViewData["Account"] = currentAccount; ViewData["Account"] = _mapper.Map<UserDto>(await _userService.GetAsync(currentAccount.Value));
return View(); return View();
} }
return Redirect("/Home/Login"); return Redirect("/Home/Login");
@ -35,7 +34,7 @@ public class HomeController : Controller
public IActionResult Login() public IActionResult Login()
{ {
var currentAccount = HttpContext.Session.GetObject<UserDto>("Account"); var currentAccount = HttpContext.Session.GetInt32("Account");
if (currentAccount != null) if (currentAccount != null)
return Redirect("/Home/Index"); return Redirect("/Home/Index");
@ -45,7 +44,7 @@ public class HomeController : Controller
[HttpPost] [HttpPost]
public async Task<IActionResult> Login(UserDto user) public async Task<IActionResult> Login(UserDto user)
{ {
var currentAccount = HttpContext.Session.GetObject<UserDto>("Account"); var currentAccount = HttpContext.Session.GetInt32("Account");
if (currentAccount != null) if (currentAccount != null)
return Redirect("/Home/Index"); return Redirect("/Home/Index");
@ -55,7 +54,7 @@ public class HomeController : Controller
if (account != null) if (account != null)
{ {
HttpContext.Session.SetObject("Account", account); HttpContext.Session.SetInt32("Account", account.Id);
return Redirect("/Home/Index"); return Redirect("/Home/Index");
} }
else else
@ -73,7 +72,7 @@ public class HomeController : Controller
public IActionResult Register() public IActionResult Register()
{ {
var currentAccount = HttpContext.Session.GetObject<UserDto>("Account"); var currentAccount = HttpContext.Session.GetInt32("Account");
if (currentAccount != null) if (currentAccount != null)
return Redirect("/Home/Index"); return Redirect("/Home/Index");
@ -83,7 +82,7 @@ public class HomeController : Controller
[HttpPost] [HttpPost]
public async Task<IActionResult> Register(UserDto user) public async Task<IActionResult> Register(UserDto user)
{ {
var currentAccount = HttpContext.Session.GetObject<UserDto>("Account"); var currentAccount = HttpContext.Session.GetInt32("Account");
if (currentAccount != null) if (currentAccount != null)
return Redirect("/Home/Index"); return Redirect("/Home/Index");
@ -92,7 +91,7 @@ public class HomeController : Controller
var model = _mapper.Map<UserModel>(user); var model = _mapper.Map<UserModel>(user);
var account = _mapper.Map<UserDto>(await _userService.RegisterAsync(model)); var account = _mapper.Map<UserDto>(await _userService.RegisterAsync(model));
HttpContext.Session.SetObject("Account", account); HttpContext.Session.SetInt32("Account", account.Id);
return Redirect("/Home/Index"); return Redirect("/Home/Index");
} }
catch catch

View file

@ -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<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
}
}