Esempio n. 1
0
        public async Task <IdentityResult> AddAsync(AppUserlCreateViewMode userVm)
        {
            var user = new AppUser();

            user.FullName     = userVm.FullName;
            user.Email        = userVm.Email;
            user.PhoneNumber  = userVm.PhoneNumber;
            user.UserName     = userVm.UserName;
            user.Avatar       = userVm.Avatar;
            user.PasswordHash = userVm.PasswordHash;
            user.DateCreated  = DateTime.Now;
            user.DateModified = DateTime.Now;
            var data = await _userManager.CreateAsync(user, userVm.PasswordHash);

            SaveChanges();

            if (!data.Succeeded)
            {
                return(data);
            }

            var createdUser = await _userManager.FindByNameAsync(user.UserName);

            foreach (var roleId in userVm.RoleIds)
            {
                _dbContext.UserRole.Add(new UserRole {
                    UserId = createdUser.Id, RoleId = roleId
                });
            }
            SaveChanges();

            return(data);
        }
        //[AppAuthorize(PermissionTypes.Any, PermissionRule.update_user)]
        public async Task <IActionResult> Add([FromBody] AppUserlCreateViewMode Vm)
        {
            if (!ModelState.IsValid)
            {
                var allErrors = ModelState.Values.SelectMany(v => v.Errors);
                return(new BadRequestObjectResult(new GenericResult(false, allErrors)));
            }
            else
            {
                try
                {
                    IdentityResult data = await _appUserService.AddAsync(Vm);

                    if (data.Succeeded)
                    {
                        return(new OkObjectResult(new GenericResult(true)));
                    }
                    else
                    {
                        return(new OkObjectResult(new GenericResult(false, data.Errors)));
                    }
                }
                catch (Exception ex)
                {
                    return(new OkObjectResult(new GenericResult(false, ex.Message)));
                }
            }
        }