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 ActionResult Register() { 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) ); var bci = new BreadCrumItem("Creation de Compte", "", ""); ListeBreadCrumItem.Add(bci); return View(rvm); }