public async Task <ActionResult> RegisterChauffeur(RegisterViewModelChauffeur model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { // bd.Trajets.Where(x => x.Id == 0).FirstOrDefault().Chauffeur.Voiture.Where(x => x.VoitureID == 1).FirstOrDefault().nbPlace; // bd.Trajets.Where(x => x.Id == 0).FirstOrDefault().Client.Count(); var currentUser = UserManager.Users.Where(x => x.Email == model.Email).FirstOrDefault(); Chauffeur chauffeur = new Chauffeur { Email = model.Email, Prenom = model.Prenom, Nom = model.Nom, DateEmbauche = model.DateEmbauche, DatePermis = model.DatePermis, NumeroPermis = model.NumeroPermis, NumeroTelephone = model.NumeroTelephone, Ville = model.Ville, Voiture = new List <Voiture>(), Public = model.Public }; chauffeur.Voiture.Add(new Voiture { nbPlace = model.NbPlace, ModeleVoiture = model.VehiculeModel, dateMiseRoute = model.DateEnRoute }); bd.Chauffeur.Add(chauffeur); bd.SaveChanges(); var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(new ApplicationDbContext())); if (!roleManager.RoleExists("Chauffeur")) { var role = new IdentityRole(); role.Name = "Chauffeur"; roleManager.Create(role); } // Attribution du rôle var addRole = await UserManager.AddToRoleAsync(user.Id, "Chauffeur"); await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // Pour plus d'informations sur l'activation de la confirmation de compte et de la réinitialisation de mot de passe, visitez https://go.microsoft.com/fwlink/?LinkID=320771 // Envoyer un message électronique avec ce lien // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirmez votre compte", "Confirmez votre compte en cliquant <a href=\"" + callbackUrl + "\">ici</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // Si nous sommes arrivés là, un échec s’est produit. Réafficher le formulaire return(View(model)); }
public async Task <ActionResult> RegisterChauffeur(RegisterViewModelChauffeur model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, Age = model.Age, Nom = model.Nom, Telephone = model.Telephone, Prenom = model.Prenom, Ville = model.ville }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); //La creation du role se fait dans le startup //attribution du role UserManager.AddToRole(user.Id, "Chauffeur"); Chauffeur chauffeur = new Chauffeur { Id = user.Id, DateEmbauche = DateTime.Now, DatePermis = model.DatePermis, Vehicule = new Vehicule { Id = user.Id, Modele = model.Modele, DateMiseEnRoute = model.DateMiseEnRoute, NombrePlace = model.NombrePlace }, Trajets = new List <Trajet>() }; _serviceChauffeur.CreateVehicule(chauffeur.Vehicule); _serviceChauffeur.CreateChauffeur(chauffeur); // TODO rediriger vers les detail du chauffeur id cree dans le controleur chauffeur return(RedirectToAction("Details", "Chauffeurs", chauffeur)); } AddErrors(result); } // Si nous sommes arrivés là, un échec s’est produit. Réafficher le formulaire return(View(model)); }