Exemplo n.º 1
0
        public async Task <SignInResult> RegisterUser(RegisterViewModel model)
        {
            var user = new MusicStoreUser()
            {
                Email       = model.Email,
                UserName    = model.Email,
                FirstName   = model.FirstName,
                LastName    = model.LastName,
                PhoneNumber = model.PhoneNumber,
            };

            await this.SignIn.UserManager.CreateAsync(user, model.Password);

            if (this.SignIn.UserManager.Users.Count() == 1)
            {
                var roleResult = this.SignIn.UserManager.AddToRoleAsync(user, "Administrator").Result;
                if (roleResult.Errors.Any())
                {
                    return(SignInResult.Failed);
                }
            }

            var order = new Order()
            {
                UserId = user.Id,
                User   = user
            };

            this.DbContext.Orders.Add(order);
            this.DbContext.SaveChanges();

            var result = await SignIn.PasswordSignInAsync(user, model.Password, true, false);

            return(result);
        }
Exemplo n.º 2
0
        public void AddProductToUserOrderAsync(Product product, MusicStoreUser user)
        {
            user.Order = this.DbContext.Orders.FirstOrDefault(o => o.UserId == user.Id);

            if (user.Order == null)
            {
                user.Order = new Order()
                {
                    UserId = user.Id
                };
                user.Order.Products.Add(product);
                this.DbContext.Orders.Add(user.Order);
                this.DbContext.SaveChanges();
            }
            else
            {
                var order = this.DbContext.Orders.FirstOrDefault(o => o.UserId == user.Id);
                order.Products.Add(product);

                this.DbContext.Orders.Attach(order);
                this.DbContext.SaveChanges();
            }
        }