public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var adresse = new DataLayer.Models.Adresses() { CodePostal = model.CodePostal, Ligne1 = model.Ligne1, Ligne2 = model.Ligne2 }; var identity = new DataLayer.Models.Identites() { Identifiant = "kempfu", Nom = model.Nom, Prenom = model.Prenom }; var utilisateur = new DataLayer.Models.Utilisateurs() { DateInscription = DateTime.Now, IdAdresse = 0 }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { _db.Adresses.Add(adresse); identity.IdUser = _db.AspNetUsers.Where(a => a.Email == model.Email).Select(a => a.Id).FirstOrDefault(); _db.Identites.Add(identity); _db.SaveChanges(); utilisateur.IdAdresse = adresse.IdAdresse; utilisateur.IdUtilisateur = identity.IdIdentite; _db.Utilisateurs.Add(utilisateur); _db.SaveChanges(); if (model.Newsletter) { var ni = new DataLayer.Models.NewsletterInscrits() { idInscrit = utilisateur.IdUtilisateur }; _db.NewsletterInscrits.Add(ni); _db.SaveChanges(); } await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://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> Register(RegisterViewModel 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) { await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); var utilisateur = new Utilisateurs(); var ville = db.Villes.Where(v => v.CodeINSEE == model.CodeVille).FirstOrDefault(); var adresse = new Adresses(); var identite = new Identites(); /*Ici nous prenons en compte nos tables pour les alimenter en même temps que l'EF génère automatiquement un utilisateur*/ identite.Email = model.Email; identite.Nom = model.Nom; identite.Prenom = model.Prenom; adresse.CodeINSEE = ville.CodeINSEE; adresse.CodePostal = ville.ZipCodes.FirstOrDefault().CodePostal; adresse.Ligne1 = model.Adresse1; adresse.Ligne2 = model.Adresse2; adresse.Ligne3 = model.Adresse3; utilisateur.Adresses = adresse; utilisateur.IdAsp = db.AspNetUsers.Where(u => u.Email == model.Email).FirstOrDefault().Id; utilisateur.DateInscription = DateTime.Now; utilisateur.Identites = identite; if (model.subscribeToNewsletter == "on") { identite.Newsletter = 1; } else { identite.Newsletter = 0; } db.Utilisateurs.Add(utilisateur); db.SaveChanges(); // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://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 (il faut donc recharger la liste des régions) RegisterViewModel rvm = new RegisterViewModel(); rvm.RegionsDepartements = db.RegionsFR.OrderBy(r => r.Nom) .ToDictionary(r => r.Nom, r => r.Departements.OrderBy(d => d.Nom) .ToDictionary(d => d.NumDep, d => d.Nom) ); return View(rvm); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var adresse = new DataLayer.Models.Adresses() { CodePostal = model.CodePostal, Ligne1 = model.Ligne1, Ligne2 = model.Ligne2 }; var identity = new DataLayer.Models.Identites() { Identifiant = "kempfu", Nom = model.Nom, Prenom = model.Prenom }; var utilisateur = new DataLayer.Models.Utilisateurs() { DateInscription = DateTime.Now, IdAdresse = 0 }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { _db.Adresses.Add(adresse); identity.IdUser = _db.AspNetUsers.Where(a => a.Email == model.Email).Select(a => a.Id).FirstOrDefault(); _db.Identites.Add(identity); _db.SaveChanges(); utilisateur.IdAdresse = adresse.IdAdresse; utilisateur.IdUtilisateur = identity.IdIdentite; _db.Utilisateurs.Add(utilisateur); _db.SaveChanges(); if (model.Newsletter) { var ni = new DataLayer.Models.NewsletterInscrits() { idInscrit = utilisateur.IdUtilisateur }; _db.NewsletterInscrits.Add(ni); _db.SaveChanges(); } await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // Pour plus d'informations sur l'activation de la confirmation du compte et la réinitialisation du mot de passe, consultez http://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)); }