Пример #1
0
        public async Task <ActionResult> RegisterAdmin(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email, UserType = model.UserType.ToString()
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                Session["type"]  = user.UserType;
                Session["token"] = user.Id;
                var    db    = new BloodDonationEntities2();
                var    users = db.AspNetUsers;
                string id    = "";
                foreach (AspNetUser u in users)
                {
                    if (u.Email == model.Email)
                    {
                        id = u.Id;
                    }
                }
                if (model.UserType == UserTypes.DONOR)
                {
                    var personalDetails = new DonorPersonalDetail
                    {
                        DonorId = id,
                        email   = model.Email
                    };
                    db.DonorPersonalDetails.Add(personalDetails);
                    db.SaveChanges();
                }

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);


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

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public async Task <ActionResult> Create([Bind(Include = "UserType,Email,PasswordHash,UserName")] ApplicationUser applicationUser)
        {
            if (ModelState.IsValid)
            {
                string id = Guid.NewGuid().ToString();
                applicationUser.Id           = id;
                applicationUser.PasswordHash = new PasswordHasher().HashPassword(applicationUser.PasswordHash);
                var result = await UserManager.CreateAsync(applicationUser, applicationUser.PasswordHash);

                var BDdb  = new BloodDonationEntities2();
                var users = BDdb.AspNetUsers;
                foreach (AspNetUser u in users)
                {
                    if (u.Email == applicationUser.Email)
                    {
                        id = u.Id;
                        applicationUser.Id = u.Id;
                    }
                }
                if (applicationUser.UserType == UserTypes.DOCTOR.ToString())
                {
                    var personalDetails = new DonorPersonalDetail
                    {
                        DonorId = id,
                        email   = applicationUser.Email
                    };
                    BDdb.DonorPersonalDetails.Add(personalDetails);
                    db.SaveChanges();
                }
                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                AddErrors(result);
            }

            return(View(applicationUser));
        }