예제 #1
0
        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);
        }
예제 #2
0
 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);
 }