Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
 public IActionResult Index()
 {
     return(Ok(new
     {
         id = HttpContext.Session.Id,
         name = User.Identity.Name,
         auth = User.Identity.IsAuthenticated,
         cart = _useCase.Get()
     }));
 }