Remove SessionExtensions
This commit is contained in:
parent
e3d4ef87c2
commit
25a9038fec
4 changed files with 16 additions and 27 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
Reference in a new issue