Ejemplo n.º 1
0
        public async Task <ActionResult> Register(RegisterViewModel model, string UserType)
        {
            PersonalnyContext db = new PersonalnyContext();

            /* var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
             * roleManager.Create(new IdentityRole("Trener"));
             * roleManager.Create(new IdentityRole("Podopieczny"));*/
            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);


                    // Aby uzyskać więcej informacji o sposobie włączania potwierdzania konta i resetowaniu hasła, odwiedź stronę https://go.microsoft.com/fwlink/?LinkID=320771
                    // Wyślij wiadomość e-mail z tym łączem
                    // 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, "Potwierdź konto", "Potwierdź konto, klikając <a href=\"" + callbackUrl + "\">tutaj</a>");
                    if (UserType.Equals("Podopieczny"))
                    {
                        Podopieczny podopieczny = new Podopieczny {
                            UserName = model.Email, TrenerID = 1
                        };
                        UserManager.AddToRole(user.Id, "Podopieczny");

                        db.Podopiecznies.Add(podopieczny);
                        db.SaveChanges();

                        return(RedirectToAction("Edit", "Podopiecznies", new { id = podopieczny.ID }));
                    }
                    else if (UserType.Equals("Trener"))
                    {
                        UserManager.AddToRole(user.Id, "Trener");
                        Trener trener = new Trener {
                            UserName = model.Email
                        };                                                     //, Category = db.Categories.First()

                        db.Treners.Add(trener);
                        db.SaveChanges();

                        return(RedirectToAction("Edit", "Treners", new { id = trener.ID }));
                    }

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // Dotarcie do tego miejsca wskazuje, że wystąpił błąd, wyświetl ponownie formularz
            return(View(model));
        }