public ProducerViewModel(Producer producer, Configurations.Role userRole) { Producer = producer; OriginalEmail = producer.Email; UserRole = userRole; }
private async Task CreateAcount(ApplicationDbContext context, UserManager<ApplicationUser> userManager, string name, string surname, string email, string password, Configurations.Role role, Configurations.UserType userType) { if (context.Consumers.Any(x => x.Email == email) || context.Producers.Any(x => x.Email == email)) return; User user; switch(userType) { case Configurations.UserType.Producer: user = new Producer(); break; case Configurations.UserType.Consumer: user = new Consumer(); break; default: user = new Consumer(); break; } user.Name = name; user.Surname = surname; user.Email = email; user.Avatar = Path.Combine(Configurations.UserAvatarStockagePath, Configurations.DefaultFileName); user.RegistrationDate = DateTime.Now; user.Enable = true; switch (userType) { case Configurations.UserType.Producer: Producer producer = user as Producer; producer.CompanyName = "La ferme de " + producer.Name; producer.Latitude = 44.7354673; producer.Longitude = 4.601407399999971; context.Producers.Add(producer); break; case Configurations.UserType.Consumer: context.Consumers.Add(user as Consumer); break; default: context.Consumers.Add(user as Consumer); break; } #region Creating linked application data var appUser = new ApplicationUser { UserName = user.Email, Email = user.Email }; appUser.User = user; var result = await userManager.CreateAsync(appUser, password); if (result.Succeeded) { //Add user role result = await userManager.AddToRoleAsync(appUser, role.ToString()); //Add user type result = await userManager.AddToRoleAsync(appUser, userType.ToString()); } #endregion Creating linked application data context.SaveChanges(); }