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); }
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(); } }