Пример #1
0
        public async Task <ActionResult> Register(RegisterViewModel model, string role)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName           = model.Email,
                    Email              = model.Email,
                    Name               = model.Name,
                    Lastname           = model.Lastname,
                    Patronymic         = model.Patronymic,
                    PhoneNumber        = model.PhoneNumber,
                    Country            = model.Country,
                    City               = model.City,
                    Street             = model.Street,
                    HouseNumber        = model.HouseNumber,
                    Birthday           = model.Birthday,
                    Gender             = model.Gender,
                    DateOfRegistration = DateTime.Now,
                    Status             = "listed"
                };

                if (user.IsValid() == "")
                {
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        EventLog ev = new EventLog()
                        {
                            EventText = "Register new user", UserId = user.Id.ToString()
                        };
                        if (role == "doctor")
                        {
                            UserManager.AddToRole(user.Id, "doctor");  //Set Role of user
                            return(RedirectToAction("MedicalStuffRegister", "Account", user));
                        }
                        else if (role == "nurse")
                        {
                            UserManager.AddToRole(user.Id, "nurse");  //Set Role of user
                            return(RedirectToAction("MedicalStuffRegister", "Account", user));
                        }
                        else if (role == "patient")
                        {
                            return(RedirectToAction("PatientRegister", "Account", user));
                        }
                    }
                    AddErrors(result);
                }
                else
                {
                    ViewBag.error = user.IsValid();
                }
            }

            // Появление этого сообщения означает наличие ошибки; повторное отображение формы
            return(View(model));
        }
Пример #2
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser()
                {
                    UserName = model.UserName.Replace(@"'", ""), EmailAddress = model.Email
                };
                user.AddApiInfo(model.ApiKey, model.VerificationCode);

                if (user.IsValid())
                {
                    var result = await UserManager.CreateAsync(user, model.Password);

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

                        //UserManager.AddToRole(user.Id, "User");
                        user.GetDetails();

                        await AddRolesAsync(user);

                        return(RedirectToAction("Index", "LoggedInHome"));
                    }
                    else
                    {
                        AddErrors(result);
                    }
                }
                else
                {
                    if (!user.Errored)
                    {
                        ModelState.AddModelError("", string.Format("You appear to be neither a corp or alliance member (access mask: {0}).",
                                                                   user.ApiKeys.Where(api => api.ApiKey == Convert.ToInt32(model.ApiKey)).FirstOrDefault().AccessMask
                                                                   ));
                    }
                    else
                    {
                        ModelState.AddModelError("", string.Format("Something went wrong: {0}", user.ErrorMessage));
                    }
                }
            }

            ViewBag.FullAPIAccessMask = Properties.Settings.Default.FullAPIAccessMask;
            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser() { UserName = model.UserName.Replace(@"'", ""), EmailAddress = model.Email };
                user.AddApiInfo(model.ApiKey, model.VerificationCode);
                
                if (user.IsValid())
                {
                    var result = await UserManager.CreateAsync(user, model.Password);
                    if (result.Succeeded)
                    {
                        await SignInAsync(user, isPersistent: false);
                        //UserManager.AddToRole(user.Id, "User");
                        user.GetDetails(true);

                        await AddRolesAsync(user);
                        
                        return RedirectToAction("Index", "LoggedInHome");
                    }
                    else
                    {
                        AddErrors(result);
                    }
                }
                else
                {
                    if (!user.Errored)
                    {
                        ModelState.AddModelError("", string.Format("You appear to be neither a corp or alliance member (access mask: {0}).", 
                            user.ApiKeys.Where(api => api.ApiKey == Convert.ToInt32(model.ApiKey)).FirstOrDefault().AccessMask
                            ));
                    }
                    else
                    {
                        ModelState.AddModelError("", string.Format("Something went wrong: {0}", user.ErrorMessage));
                    }
                }
            }

            ViewBag.FullAPIAccessMask = Properties.Settings.Default.FullAPIAccessMask;
            // If we got this far, something failed, redisplay form
            return View(model);
        }