Ejemplo n.º 1
0
        public async Task <AppUserViewModelinUserService> ExcecuteAsync(string id)
        {
            var user = await _userManager.FindByIdAsync(id);

            var roles = await _userManager.GetRolesAsync(user);

            AppUserViewModelinUserService userVm = new AppUserViewModelinUserService();

            userVm.Id          = user.Id;
            userVm.Avatar      = user.Avatar;
            userVm.DateCreated = user.DateCreated;
            userVm.Email       = user.Email;
            userVm.FullName    = user.FullName;
            userVm.UserName    = user.UserName;
            userVm.Token       = user.Token;
            userVm.Roles       = roles.ToList();
            return(userVm);
        }
        public async Task <AppUserViewModelinUserService> ExcecuteAsync()
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var findUser = await _userManager.FindByIdAsync(userId);

            var roles = await _userManager.GetRolesAsync(findUser);

            AppUserViewModelinUserService userVm = new AppUserViewModelinUserService();

            userVm.Id          = findUser.Id;
            userVm.Avatar      = findUser.Avatar;
            userVm.DateCreated = findUser.DateCreated;
            userVm.Email       = findUser.Email;
            userVm.FullName    = findUser.FullName;
            userVm.UserName    = findUser.UserName;
            userVm.Token       = findUser.Token;
            userVm.Roles       = roles.ToList();
            return(userVm);
        }
Ejemplo n.º 3
0
        public async Task <CommandResult <AppUserViewModelinUserService> > ExecuteAsync(AppUserViewModelinUserService userVm)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = _userManager.FindByIdAsync(userId).Result.UserName;

            try
            {
                if (await _checkUserIsAdminQuery.ExecuteAsync(userId) ||
                    await _getPermissionActionQuery.ExecuteAsync(userId, ConstantFunctions.USER, ActionSetting.CanCreate))
                {
                    var user = new AppUser()
                    {
                        UserName    = userVm.UserName,
                        Avatar      = userVm.Avatar,
                        Email       = userVm.Email,
                        FullName    = userVm.FullName,
                        DateCreated = DateTime.Now,
                        PhoneNumber = userVm.PhoneNumber,
                        Status      = Model.Enums.Status.Active
                    };
                    //Check email and username has been available
                    var findUserName = await _userManager.FindByNameAsync(userVm.UserName);

                    if (findUserName != null)
                    {
                        return(new CommandResult <AppUserViewModelinUserService>
                        {
                            isValid = false,
                            errorMessage = "User has been available"
                        });
                    }
                    //Check email hase been available
                    var findEmail = await _userManager.FindByEmailAsync(userVm.Email);

                    if (findEmail != null)
                    {
                        return(new CommandResult <AppUserViewModelinUserService>
                        {
                            isValid = false,
                            errorMessage = "Email has been available"
                        });
                    }
                    //Add user
                    var result = await _userManager.CreateAsync(user, userVm.Password);

                    if (result.Succeeded && userVm.Roles.Count > 0)
                    {
                        var appUser = await _userManager.FindByNameAsync(user.UserName);

                        if (appUser != null)
                        {
                            await _userManager.AddToRolesAsync(appUser, userVm.Roles);
                        }
                    }
                    await Logging <AddUserAsyncCommand> .InformationAsync(ActionCommand.COMMAND_ADD, userName, JsonConvert.SerializeObject(userVm));

                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = true,
                        myModel = new AppUserViewModelinUserService
                        {
                            UserName = userVm.UserName,
                            Avatar = userVm.Avatar,
                            Email = userVm.Email,
                            FullName = userVm.FullName,
                            DateCreated = DateTime.Now,
                            PhoneNumber = userVm.PhoneNumber,
                            Id = user.Id,
                            Status = Model.Enums.Status.Active,
                            Roles = _userManager.GetRolesAsync(user).Result.ToList()
                        }
                    });
                }
                else
                {
                    await Logging <AddUserAsyncCommand> .WarningAsync(ActionCommand.COMMAND_ADD, userName, ErrorMessageConstant.ERROR_ADD_PERMISSION);

                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_ADD_PERMISSION
                    });
                }
            }
            catch (System.Exception ex)
            {
                await Logging <AddUserAsyncCommand> .ErrorAsync(ex, ActionCommand.COMMAND_ADD, userName, "Has error");

                return(new CommandResult <AppUserViewModelinUserService>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
        public async Task <CommandResult <AppUserViewModelinUserService> > ExecuteAsync(AppUserViewModelinUserService userVm)
        {
            try
            {
                var user = await _userManager.FindByNameAsync(userVm.UserName);

                if (user != null)
                {
                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = false,
                        errorMessage = "Username has existed"
                    });
                }

                //Check exist email
                var email = await _userManager.FindByEmailAsync(userVm.Email);

                if (email != null)
                {
                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = false,
                        errorMessage = "Email has existed"
                    });
                }

                if (user == null && email == null)
                {
                    await _userManager.CreateAsync(new AppUser()
                    {
                        UserName     = userVm.UserName,
                        FullName     = userVm.FullName,
                        Email        = userVm.Email,
                        DateCreated  = DateTime.Now,
                        DateModified = DateTime.Now,
                        Status       = Status.Active
                    }, userVm.Password);

                    var newUser = await _userManager.FindByNameAsync(userVm.UserName);

                    await _userManager.AddToRoleAsync(newUser, ConstantRoles.Customer);

                    await Logging <AddCustomerAsyncCommand> .
                    InformationAsync(ActionCommand.COMMAND_ADD, userVm.UserName, "New Account:" + userVm.UserName);

                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = true,
                        myModel = new AppUserViewModelinUserService
                        {
                            UserName = userVm.UserName,
                            FullName = userVm.FullName,
                            Email = userVm.Email,
                            DateCreated = DateTime.Now,
                            Status = Status.Active
                        }
                    });
                }
                return(new CommandResult <AppUserViewModelinUserService>
                {
                    isValid = false,
                    errorMessage = "Cannot create your new account"
                });
            }
            catch (System.Exception ex)
            {
                await Logging <AddCustomerAsyncCommand> .
                ErrorAsync(ex, ActionCommand.COMMAND_ADD, userVm.UserName, "Has error");

                return(new CommandResult <AppUserViewModelinUserService>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
Ejemplo n.º 5
0
        public async Task <CommandResult <AppUserViewModelinUserService> > ExecuteAsync(AppUserViewModelinUserService userVm)
        {
            var userId   = _httpContextAccessor.HttpContext.User.Identity.Name;
            var userName = _userManager.FindByIdAsync(userId).Result.UserName;

            try
            {
                if (await _checkUserIsAdminQuery.ExecuteAsync(userId) ||
                    await _getPermissionActionQuery.ExecuteAsync(userId, ConstantFunctions.USER, ActionSetting.CanUpdate))
                {
                    var user = await _userManager.FindByIdAsync(userVm.Id.ToString());

                    user.FullName    = userVm.FullName;
                    user.Status      = userVm.Status;
                    user.Email       = userVm.Email;
                    user.PhoneNumber = userVm.PhoneNumber;
                    user.Avatar      = userVm.Avatar;
                    user.UserName    = userVm.UserName;
                    var         userRoles = _userManager.GetRolesAsync(user);
                    List <Guid> roleId    = new List <Guid>();
                    foreach (var item in userRoles.Result.ToList())
                    {
                        var getId = _roleRepository.FindByNameAsync(item).Result.Id;
                        roleId.Add(getId);
                    }
                    foreach (var item in roleId)
                    {
                        _userRoleRepository.DeleteUserRole(user.Id, item);
                    }
                    var selectedRole = userVm.NewRoles.ToArray();
                    selectedRole = selectedRole ?? new string[] { };

                    await _userManager.AddToRolesAsync(user, selectedRole.Except(userRoles.Result).ToArray());

                    //var userRoles1 = await _userManager.GetRolesAsync(user);
                    await _userManager.UpdateAsync(user);

                    await Logging <UpdateUserAsyncCommand> .InformationAsync(ActionCommand.COMMAND_UPDATE, userName, JsonConvert.SerializeObject(user));

                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = true,
                        myModel = new AppUserViewModelinUserService
                        {
                            FullName = userVm.FullName,
                            Email = userVm.Email,
                            PhoneNumber = userVm.PhoneNumber,
                            Id = userVm.Id,
                            Avatar = userVm.Avatar,
                            DateCreated = user.DateCreated,
                            UserName = user.UserName,
                            Roles = userVm.Roles.ToList()
                        }
                    });
                }
                else
                {
                    await Logging <UpdateUserAsyncCommand> .
                    WarningAsync(ActionCommand.COMMAND_UPDATE, userName, ErrorMessageConstant.ERROR_UPDATE_PERMISSION);

                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = false,
                        errorMessage = ErrorMessageConstant.ERROR_UPDATE_PERMISSION
                    });
                }
            }
            catch (Exception ex)
            {
                await Logging <UpdateUserAsyncCommand> .
                ErrorAsync(ex, ActionCommand.COMMAND_UPDATE, userName, "Has error");

                return(new CommandResult <AppUserViewModelinUserService>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
Ejemplo n.º 6
0
        public async Task <CommandResult <AppUserViewModelinUserService> > ExecuteAsync(AppUserViewModelinUserService socialUserViewModel)
        {
            try
            {
                var getExistEmail = await _userManager.Users.Where(x => x.Email == socialUserViewModel.Email).FirstOrDefaultAsync();

                if (getExistEmail == null)
                {
                    var user = new AppUser
                    {
                        Email       = socialUserViewModel.Email,
                        Avatar      = socialUserViewModel.Avatar,
                        UserName    = _removeSupport.RemoveUnicode(socialUserViewModel.UserName).Replace(" ", "_"),
                        FullName    = socialUserViewModel.UserName,
                        DateCreated = DateTime.Now
                    };
                    var newPassword = _randomSupport.RandomString(12);
                    var result      = await _userManager.CreateAsync(user, newPassword);

                    if (result.Succeeded)
                    {
                        var appUser = await _userManager.FindByNameAsync(user.UserName);

                        if (appUser != null)
                        {
                            await _userManager.AddToRoleAsync(appUser, ConstantRoles.Customer);
                        }
                        //Set content for email
                        var getAllEmail = await _getAllEmailServiceQuery.ExecuteAsync();

                        var getFirstEmail = getAllEmail.Where(x => x.Name == EmailName.Reject_News).FirstOrDefault();
                        getFirstEmail.Message = getFirstEmail.Message.Replace(EmailKey.UserNameKey, user.UserName).
                                                Replace(EmailKey.PasswordKey, newPassword);

                        ContentEmail(_configEmail.Value.SendGridKey, getFirstEmail.Subject,
                                     getFirstEmail.Message, socialUserViewModel.Email).Wait();
                    }
                    var getNewEmail = await _userManager.Users.Where(x => x.Email == socialUserViewModel.Email).FirstOrDefaultAsync();

                    var getToken = SetToken(getNewEmail);
                    return(new CommandResult <AppUserViewModelinUserService>
                    {
                        isValid = true,
                        myModel = new AppUserViewModelinUserService
                        {
                            Email = getNewEmail.Email,
                            Avatar = getNewEmail.Avatar,
                            UserName = getNewEmail.UserName,
                            FullName = getNewEmail.FullName,
                            Token = getToken.Token
                        }
                    });
                }
                var getExistToken = SetToken(getExistEmail);
                return(new CommandResult <AppUserViewModelinUserService>
                {
                    isValid = true,
                    myModel = new AppUserViewModelinUserService
                    {
                        Email = getExistEmail.Email,
                        Avatar = getExistEmail.Avatar,
                        UserName = getExistEmail.UserName,
                        FullName = getExistEmail.FullName,
                        Token = getExistToken.Token
                    }
                });
            }
            catch (System.Exception ex)
            {
                return(new CommandResult <AppUserViewModelinUserService>
                {
                    isValid = false,
                    errorMessage = ex.InnerException.ToString()
                });
            }
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> UpdateUser([FromBody] AppUserViewModelinUserService userVm)
        {
            var model = await _updateUserService.ExecuteAsync(userVm);

            return(new ObjectResult(model));
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> LoginExternal([FromBody] AppUserViewModelinUserService userViewModel)
        {
            var model = await _addExternalService.ExecuteAsync(userViewModel);

            return(new ObjectResult(model));
        }