public async Task <int> SaveAsync(BL.User entity) { try { if (entity == null) { return(0); } using (var context = _contextFactory.GetProductContext()) { var entityModel = await context .Users .FirstOrDefaultAsync(item => item.Id.Equals(entity.Id)); if (entityModel == null) { entityModel = new DA.User(); MapForUpdateEntity(entity, entityModel); await context.Users.AddAsync(entityModel); } else { MapForUpdateEntity(entity, entityModel); } context.SaveChanges(); return(entityModel.Id); } } catch (Exception ex) { throw ex; } }
private void MapForUpdateEntity(BL.User entity, DA.User daEntity) { daEntity.Id = entity.Id; daEntity.Name = entity.Name; daEntity.Email = entity.Email; daEntity.Password = entity.Password; daEntity.RoleId = entity.RoleId; }
private async Task Authenticate(BL.User user) { // создаем один claim var claims = new List <Claim> { new Claim(ClaimsIdentity.DefaultNameClaimType, user.Email), new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role?.Name ?? "null") }; // создаем объект ClaimsIdentity ClaimsIdentity id = new ClaimsIdentity(claims, "ApplicationCookie", ClaimsIdentity.DefaultNameClaimType, ClaimsIdentity.DefaultRoleClaimType); // установка аутентификационных куки await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(id)); }