示例#1
0
        public async Task <ActionResult> Register(UserRegisterForm registerViewModels)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View());
                }
                else
                {
                    IdentityResultTHP infor = await this._identityService.Register(registerViewModels);

                    if (infor.IsErrors)
                    {
                        foreach (var error in infor.Errors)
                        {
                            ModelState.AddModelError(string.Empty, error);
                        }
                        return(View());
                    }
                    else
                    {
                        return(RedirectToAction(nameof(Login)));
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#2
0
        public ActionResult Create()
        {
            UserRegisterForm user = new UserRegisterForm();

            user.BirthDate = new DateTime(1977, 7, 7);
            return(View(user));
        }
示例#3
0
        public async Task <IActionResult> CreateUser(UserRegisterForm userRegisterForm)
        {
            if (ModelState.IsValid)
            {
                var userToCreate = _mapper.Map <User>(userRegisterForm);

                var result = await _userManager.CreateAsync(userToCreate, userRegisterForm.Password);

                var userProfile = _mapper.Map <UserProfileDto>(userToCreate);

                if (result.Succeeded)
                {
                    await _userManager.AddToRoleAsync(userToCreate, "Client");

                    _logger.LogInformation($"New user with id {userToCreate.Id} successfully created.");

                    return(Ok(new { userProfile }));
                }

                return(BadRequest(result.Errors));
            }

            _logger.LogError("Invalid request model, some fields are missed or have invalid format.");

            return(BadRequest(ModelState.Values));
        }
示例#4
0
        public async Task <ActionResult <User> > PostUser(UserRegisterForm userForm)
        {
            User user = new User(userForm);

            _context.User.Add(user);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetUser", new { id = user.Id }, user));
        }
示例#5
0
        public async Task <IdentityResultTHP> Register(UserRegisterForm user, params string[] roles)
        {
            IdentityResultTHP result = new IdentityResultTHP();

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required,
                                                                 TransactionScopeAsyncFlowOption.Enabled))
            {
                try
                {
                    IdentityResult createUser = await _userService.CreateAsync(new User {
                        UserName    = user.Username,
                        PhoneNumber = user.Phone,
                        Address     = user.Address,
                        FullName    = user.FullName,
                        DateOfBirth = user.DateOfBirth
                    }, user.Password);

                    if (!createUser.Succeeded)
                    {
                        result.Errors.AddRange(createUser.Errors);
                    }
                    else
                    {
                        foreach (var roleName in roles)
                        {
                            if (!_roleService.RoleExists(roleName))
                            {
                                IdentityResult createRole = await this._roleService.CreateAsync(new Role { Name = roleName });

                                if (!createRole.Succeeded)
                                {
                                    result.Errors.AddRange(createRole.Errors);
                                }
                            }

                            User currentUser = await _userService.FindByNameAsync(user.Username);

                            if (!_userService.IsInRole(currentUser.Id, roleName))
                            {
                                await _userService.AddToRoleAsync(currentUser.Id, roleName);
                            }
                        }
                        scope.Complete();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(result);
        }
示例#6
0
        public ActionResult Register(UserRegisterForm form)
        {
            if (ModelState.IsValid)
            {
                UserModel savedUser = form.SaveToDB();
                UserSession.User = new SessionUser(savedUser.UserId, savedUser.Username);

                return(RedirectToAction("Details", "User", new { username = savedUser.Username }));
            }
            else
            {
                return(View(form));
            }
        }
示例#7
0
        public ActionResult Create(UserRegisterForm u)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    RegisterUser ru = new RegisterUser();
                    ru.Login     = u.Login;
                    ru.Mail      = u.Mail;
                    ru.BirthDate = u.BirthDate;

                    int country;
                    Int32.TryParse(u.SelectedCountry, out country);
                    ru.Country = country;

                    byte[] pwEncrypt;
                    _encrypt    = new RSAEncryption(ConsumeInstance.Get <byte[]>("Auth"));
                    pwEncrypt   = _encrypt.Encrypt(u.Password);
                    ru.Password = Convert.ToBase64String(pwEncrypt);

                    UserResponse ur = ConsumeInstance.PostWithReturn <RegisterUser, UserResponse>("User", ru);
                    if (ur.ErrorCode == 1)
                    {
                        FlashMessage.Warning("Email already in use");
                        return(RedirectToAction("Create"));
                    }
                    else if (ur.ErrorCode == 2)
                    {
                        FlashMessage.Warning("Login already in use");
                        return(RedirectToAction("Create"));
                    }
                    else
                    {
                        FlashMessage.Confirmation("Account created");
                    }
                    return(RedirectToAction("Login"));
                }
                else
                {
                    return(View(u));
                }
            }
            catch
            {
                return(View());
            }
        }
示例#8
0
        public async Task <IActionResult> Register(UserRegisterForm userModel)
        {
            if (!ModelState.IsValid)
            {
                return(View("Register", userModel));
            }

            var result = await _userService.RegisterUser(userModel);

            if (result == null)
            {
                ViewBag.Message = "Rejestracja powiodła się";
                return(View("Success"));
            }
            else
            {
                ModelState.AddModelError(result?.Key, result?.Value);
                return(View("Register", userModel));
            }
        }
示例#9
0
        public async Task <KeyValuePair <string, string>?> RegisterUser(UserRegisterForm userRegisterForm)
        {
            Log.Information("Rejestracja!");
            var viewModel = new UserLoginForm()
            {
                UserName = userRegisterForm.UserName
            };

            try
            {
                var user = _userManager.FindByNameAsync(userRegisterForm.UserName).Result;
                if (user != null)
                {
                    Log.Error("Username taken");
                    return(new KeyValuePair <string, string>("UserRegisterForm.Username", "Username taken"));
                }

                user = _userManager.FindByEmailAsync(userRegisterForm.Email).Result;
                if (user != null)
                {
                    Log.Error("Email taken");
                    return(new KeyValuePair <string, string>("UserRegisterForm.Email", "Email taken"));
                }

                var registerUser = new DaoUser()
                {
                    FirstName      = userRegisterForm.FirstName,
                    LastName       = userRegisterForm.LastName,
                    Email          = userRegisterForm.Email,
                    UserName       = userRegisterForm.UserName,
                    EmailConfirmed = false
                };

                var result = await _userManager.CreateAsync(registerUser, userRegisterForm.Password);

                if (result.Succeeded)
                {
                    var companyId = 0;
                    try
                    {
                        user = await _userManager.FindByNameAsync(userRegisterForm.UserName);

                        if (user != null)
                        {
                            await _userManager.AddToRoleAsync(registerUser, RoleNames.User);

                            viewModel = new UserLoginForm()
                            {
                                UserName = user.UserName
                            };

                            string confirmationToken   = _userManager.GenerateEmailConfirmationTokenAsync(user).Result;
                            byte[] tokenGeneratedBytes = Encoding.UTF8.GetBytes(confirmationToken);
                            var    tokenEncoded        = WebEncoders.Base64UrlEncode(tokenGeneratedBytes);
                            await _emailService.SendConfirmAccountEmail(new CancellationToken(), tokenEncoded,
                                                                        new BaseUserInfo()
                            {
                                UserName  = user.UserName,
                                FirstName = user.FirstName,
                                LastName  = user.LastName,
                                Email     = user.Email
                            });

                            Log.Information("Registration successfully completed.");
                            return(null);
                        }
                    }
                    catch (Exception e)
                    {
                        await _userManager.DeleteAsync(user);

                        Log.Error("Registration failed.", e.Message);
                        throw;
                    }
                }
            }
            catch (Exception e)
            {
                Log.Error("Registration failed.", e.Message);
                throw;
            }

            return(Error <KeyValuePair <string, string> >("Registration failed."));
        }
示例#10
0
        public async Task <UserViewModel> RegisterUser(UserRegisterForm userRegisterForm)
        {
            var viewModel = new UserViewModel()
            {
                UserloginForm = new UserLoginForm()
                {
                    Username = userRegisterForm.UserName
                }
            };

            try
            {
                var user = _userManager.FindByNameAsync(userRegisterForm.UserName).Result;
                if (user != null)
                {
                    viewModel.Error = new GackoError("Username is in use");
                    return(viewModel);
                }

                user = _userManager.FindByEmailAsync(userRegisterForm.Email).Result;
                if (user != null)
                {
                    viewModel.Error = new GackoError("Email is in use");
                    return(viewModel);
                }

                var registerUser = _mapper.Map <DaoUser>(userRegisterForm);

                var userId = await _userManager.Users.Select(_ => _.Id).OrderByDescending(_ => _).FirstOrDefaultAsync();

                registerUser.Id             = userId + 1;
                registerUser.EmailConfirmed = true;

                var result = await _userManager.CreateAsync(registerUser, userRegisterForm.Password);

                if (result.Succeeded)
                {
                    var checkuser = await _userManager.FindByNameAsync(userRegisterForm.UserName);

                    if (checkuser != null)
                    {
                        await _userManager.AddToRoleAsync(registerUser, "Administrator");

                        viewModel.UserloginForm = new UserLoginForm()
                        {
                            Username = checkuser.UserName
                        };
                        viewModel.IsSuccess = true;
                        viewModel.Success   = new GackoSuccess("Registration succeeded.");
                    }
                }
                else
                {
                    viewModel.Error = new GackoError("Rgistration failed.");
                }
            }
            catch (Exception e)
            {
                viewModel.Error = new Shared.Models.GackoError(e);
            }
            return(viewModel);
        }
示例#11
0
 public async Task <IActionResult> Register(UserRegisterForm userModel)
 {
     return(View("Login", await _userService.RegisterUser(userModel)));
 }
示例#12
0
        public ActionResult Register()
        {
            UserRegisterForm form = new UserRegisterForm();

            return(View(form));
        }