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
{
Task<UserModel> GetAsync(int id);
Task<UserModel?> LoginAsync(UserModel user);
Task<UserModel> RegisterAsync(UserModel user);
}

View file

@ -18,6 +18,11 @@ namespace NG_2023_Kanban.BusinessLayer.Services
_mapper = mapper;
}
public async Task<UserModel> GetAsync(int id)
{
return _mapper.Map<UserModel>(await _userRepository.GetAsync(id));
}
public async Task<UserModel?> LoginAsync(UserModel user)
{
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 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<IActionResult> Index()
{
var currentAccount = HttpContext.Session.GetObject<UserDto>("Account");
if (currentAccount != null)
var currentAccount = HttpContext.Session.GetInt32("Account");
if (currentAccount.HasValue)
{
ViewData["Account"] = currentAccount;
ViewData["Account"] = _mapper.Map<UserDto>(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<UserDto>("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<IActionResult> Login(UserDto user)
{
var currentAccount = HttpContext.Session.GetObject<UserDto>("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<UserDto>("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<IActionResult> Register(UserDto user)
{
var currentAccount = HttpContext.Session.GetObject<UserDto>("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<UserModel>(user);
var account = _mapper.Map<UserDto>(await _userService.RegisterAsync(model));
HttpContext.Session.SetObject("Account", account);
HttpContext.Session.SetInt32("Account", account.Id);
return Redirect("/Home/Index");
}
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);
}
}