예제 #1
0
        public async Task <ActionResult <ResponseStatusViewModel> > DeleteUser(UserViewModel model, string id)
        {
            ResponseStatusViewModel res = new ResponseStatusViewModel();

            Regex emailRegex = new Regex(@"^\S+@\S+\.\S+$");
            var   emailMatch = emailRegex.Match(model.Email);

            if (!CheckResult(model.Id, model.Name, model.UserName, model.Email) && emailMatch.Success && id.Equals(model.Id.Trim()))
            {
                res.Result  = false;
                res.Message = Failed;

                return(new BadRequestObjectResult(res));
            }

            var user = await userManager.FindByIdAsync(model.Id);

            if (user != null)
            {
                var result = await userManager.DeleteAsync(user);

                if (result.Succeeded)
                {
                    res.Result  = true;
                    res.Message = Succeeded;

                    return(new OkObjectResult(res));
                }
            }

            res.Result  = false;
            res.Message = Failed;

            return(new BadRequestObjectResult(res));
        }
        public async Task <ActionResult <ResponseStatusViewModel> > Put(RegisterViewModel model)
        {
            ResponseStatusViewModel responseModel = new ResponseStatusViewModel();

            responseModel.Result = true;
            if (string.IsNullOrWhiteSpace(model.FirstName))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("First name cannot be blank!");
            }
            if (string.IsNullOrWhiteSpace(model.LastName))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Last name cannot be blank!");
            }
            if (string.IsNullOrWhiteSpace(model.Email))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Email cannot be blank!");
            }
            if (string.IsNullOrWhiteSpace(model.Password))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Password cannot be blank!");
            }
            if (!responseModel.Result)
            {
                return(new BadRequestObjectResult(responseModel));
            }

            ApplicationUser appUser = new ApplicationUser()
            {
                Email            = model.Email,
                FirstName        = model.FirstName,
                LastName         = model.LastName,
                TwoFactorEnabled = true,
                EmailConfirmed   = true
            };
            IdentityResult result = await _userManager.CreateAsync(appUser, model.Password);

            if (result.Succeeded)
            {
                IdentityRole userRole = _roleManager.Roles.FirstOrDefault(r => r.Name == "User");
                if (userRole == null)
                {
                    await _roleManager.CreateAsync(new IdentityRole("User"));
                }
                await _userManager.AddToRoleAsync(appUser, userRole.Name);

                responseModel.Result = true;
                responseModel.Messages.Add("Thank you for registering your account.");
                return(new OkObjectResult(responseModel));
            }
            else
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Unable to create your user account.");
                return(new BadRequestObjectResult(responseModel));
            }
        }
예제 #3
0
        public new ActionResult User(string id)
        {
            if (id.Equals("1"))
            {
                return(Ok("hi"));
            }

            ResponseStatusViewModel res = new ResponseStatusViewModel();

            res.Result  = false;
            res.Message = Failed;

            return(new BadRequestObjectResult(res));
        }
예제 #4
0
        public async Task <ActionResult <ResponseStatusViewModel> > SaveChanges(UserViewModel model, string id)
        {
            ResponseStatusViewModel res = new ResponseStatusViewModel();

            Regex emailRegex = new Regex(@"^\S+@\S+\.\S+$");
            var   emailMatch = emailRegex.Match(model.Email);

            if (!CheckResult(model.Id, model.Name, model.UserName, model.Email) && emailMatch.Success && id.Equals(model.Id.Trim()))
            {
                res.Result  = false;
                res.Message = Failed;

                return(new BadRequestObjectResult(res));
            }

            var user = await userManager.FindByIdAsync(model.Id);

            if (user != null)
            {
                user.Name     = model.Name.Trim();
                user.UserName = model.UserName;
                user.Email    = model.Email;


                IList <string> currentRoles = await userManager.GetRolesAsync(user);

                var res1 = await userManager.RemoveFromRolesAsync(user, currentRoles);

                var res2 = await userManager.AddToRolesAsync(user, model.Roles);

                var res3 = await userManager.UpdateAsync(user);

                if (res1.Succeeded && res2.Succeeded && res3.Succeeded)
                {
                    res.Result  = true;
                    res.Message = Succeeded;

                    return(new OkObjectResult(res));
                }
            }
            res.Result  = false;
            res.Message = Failed;

            return(new BadRequestObjectResult(res));
        }
예제 #5
0
        public async Task <ActionResult <ResponseStatusViewModel> > CreateUser(UserViewModel model, string id)
        {
            ResponseStatusViewModel res = new ResponseStatusViewModel();

            Regex emailRegex = new Regex(@"^\S+@\S+\.\S+$");
            var   emailMatch = emailRegex.Match(model.Email);

            if (!CheckResult(model.Id, model.Name, model.UserName, model.Email) && emailMatch.Success)
            {
                res.Result  = false;
                res.Message = Failed;

                return(new BadRequestObjectResult(res));
            }

            var user = new ApplicationUser()
            {
                Name     = model.Name,
                UserName = model.UserName,
                Email    = model.Email
            };

            var result = await userManager.CreateAsync(user);

            if (result.Succeeded)
            {
                var result2 = await userManager.AddPasswordAsync(user, model.Id.Trim());

                if (result2.Succeeded)
                {
                    res.Result  = true;
                    res.Message = Succeeded;
                    return(new OkObjectResult(res));
                }
            }

            res.Result  = false;
            res.Message = Failed;

            return(new BadRequestObjectResult(res));
        }
예제 #6
0
        public async Task <ActionResult <ResponseStatusViewModel> > Put(RegisterRequestViewModel model)
        {
            ResponseStatusViewModel res = new ResponseStatusViewModel();

            if (!CheckResult(model.Name, model.Username, model.Email, model.Password))
            {
                res.Result  = false;
                res.Message = Failed;

                return(new BadRequestObjectResult(res));
            }

            ApplicationUser user = new ApplicationUser()
            {
                Name             = model.Name,
                Email            = model.Email,
                UserName         = model.Username,
                TwoFactorEnabled = true
            };

            var result = await userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                res.Result  = false;
                res.Message = Failed;

                return(new BadRequestObjectResult(res));
            }

            await userManager.AddToRoleAsync(user, AuthorizationRoles.User);

            res.Result  = true;
            res.Message = Succeeded;

            return(new OkObjectResult(res));
        }
예제 #7
0
        public async Task <ActionResult <ResponseStatusViewModel> > Put(RegisterRequestViewModel model)
        {
            ResponseStatusViewModel responseModel = new ResponseStatusViewModel();

            responseModel.Result = true;
            if (string.IsNullOrWhiteSpace(model.FirstName))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("First name cannot be blank.");
            }
            if (string.IsNullOrWhiteSpace(model.LastName))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Last name cannot be blank.");
            }
            if (string.IsNullOrWhiteSpace(model.Username))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Username cannot be blank.");
            }
            if (string.IsNullOrWhiteSpace(model.Password))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Password cannot be blank.");
            }
            if (!responseModel.Result)
            {
                return(new BadRequestObjectResult(responseModel));
            }

            MemberModel member = new MemberModel()
            {
                Email            = model.Email,
                UserName         = model.Username,
                FirstName        = model.FirstName,
                LastName         = model.LastName,
                TwoFactorEnabled = true
            };
            IdentityResult result = await _userManager.CreateAsync(member, model.Password);

            if (result.Succeeded)
            {
                IdentityRole memberRole = _roleManager.Roles.FirstOrDefault(r => r.Name == "Member");
                IdentityRole adminRole  = _roleManager.Roles.FirstOrDefault(r => r.Name == "Admin");
                if (memberRole == null)
                {
                    await _userManager.AddToRoleAsync(member, "Member");
                }
                await _userManager.AddToRoleAsync(member, memberRole.Name);

                if (model.Username == "Admin")
                {
                    if (adminRole == null)
                    {
                        await _userManager.AddToRoleAsync(member, "Admin");
                    }
                    await _userManager.AddToRoleAsync(member, adminRole.Name);
                }
                responseModel.Result = true;
                responseModel.Messages.Add("Thank you for registering your account.");
                return(new OkObjectResult(responseModel));
            }
            else
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Unable to create your user account.");
                return(new BadRequestObjectResult(responseModel));
            }
        }
        public async Task <ActionResult <ResponseStatusViewModel> > Put(RegisterViewModel model)
        {
            ResponseStatusViewModel responseModel = new ResponseStatusViewModel();

            responseModel.Result = true;
            if (string.IsNullOrWhiteSpace(model.FirstName))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("First Name cannot be blank!");
            }
            if (string.IsNullOrWhiteSpace(model.LastName))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Last Name cannot be blank!");
            }
            if (string.IsNullOrWhiteSpace(model.Email))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Email cannot be blank!");
            }
            if (string.IsNullOrWhiteSpace(model.Password))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Password cannot be blank!");
            }
            if (string.IsNullOrWhiteSpace(model.ConfirmPassword))
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Password cannot be blank!");
            }
            if (!responseModel.Result)
            {
                return(new BadRequestObjectResult(responseModel));
            }


            ApplicationUser user = new ApplicationUser()
            {
                Email            = model.Email,
                FirstName        = model.FirstName,
                LastName         = model.LastName,
                TwoFactorEnabled = true,
                EmailConfirmed   = true
            };



            /*
             * var user = _mapper.Map<AppUser>(model);
             *
             * var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);
             *
             * var confirmationLink = Url.Action(nameof(Project_2.Controllers.HomeController.ConfirmEmail), "Home", new { token, email = user.Email }, Request.Scheme);
             *
             * var message = new MessageService(new string[] { user.Email }, "Confirmation email link", confirmationLink, null);
             */

            IdentityResult result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                //await _mailSender.SendEmailAsync(message);

                IdentityRole userRole = _roleManager.Roles.FirstOrDefault(r => r.Name == "Admin");
                if (userRole == null)
                {
                    await _roleManager.CreateAsync(new IdentityRole("Admin"));
                }
                await _userManager.AddToRoleAsync(user, userRole.Name);

                responseModel.Result = true;
                responseModel.Messages.Add("Thank you for registering your account.");
                return(new OkObjectResult(responseModel));
            }
            else
            {
                responseModel.Result = false;
                responseModel.Messages.Add("Unable to create your user account.");
                return(new BadRequestObjectResult(responseModel));
            }
        }