private IEnumerable <Claim> GenerateUserClaims(User user) { var userRoles = from iur in _context.UserRoles where iur.UserId == user.Id from ur in _context.Roles where ur.Id == iur.RoleId select ur; var claims = new List <Claim> { new Claim(ClaimTypes.Sid, user.Id.ToString(), nameof(Guid)), new Claim(ClaimTypes.Sid, _useCase.Get().Id.ToString(), nameof(Cart)), new Claim(ClaimTypes.Name, user.UserName), new Claim(ClaimTypes.Email, user.Email), new Claim(ClaimTypes.MobilePhone, user.PhoneNumber), new Claim(ClaimTypes.DateOfBirth, user.BirthDate.ToString(CultureInfo.InvariantCulture)), }; foreach (var role in userRoles) { claims.Add(new Claim(ClaimTypes.Role, role.Name)); } return(claims); }
public async Task MapTo(User user) { var sourceCart = _anyUseCase.Get(); sourceCart.UserId = user.Id; var destCart = _context.Carts.Where(c => c.UserId == sourceCart.UserId && c.OrderId == null) .Include("CartItems") .FirstOrDefault(); foreach (var item in sourceCart.CartItems) { var existedItem = destCart.CartItems.FirstOrDefault(i => i.ProductId == item.ProductId); if (existedItem == null) { item.CartId = destCart.Id; _context.CartItems.Update(item); } else { existedItem.Count += item.Count; } } _context.Carts.Remove(sourceCart); await _context.SaveChangesAsync(); }
public IActionResult Index() { return(Ok(new { id = HttpContext.Session.Id, name = User.Identity.Name, auth = User.Identity.IsAuthenticated, cart = _useCase.Get() })); }