コード例 #1
0
        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);
        }
コード例 #2
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);
        }
コード例 #3
0
        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));
        }