Ejemplo n.º 1
0
        public async Task <IActionResult> Create(UserCreateDto user)
        {
            if (ModelState.IsValid)
            {
                AppUser createUser = user.GetUser();
                if (user.ImageFile != null)
                {
                    createUser.Image = await _fileWorker.EncodeFormFile(user.ImageFile);
                }
                var result = await _userManager.CreateAsync(createUser, user.Password);

                if (!result.Succeeded)
                {
                    foreach (var item in result.Errors)
                    {
                        ModelState.AddModelError(item.Code, item.Description);
                    }
                }
                else
                {
                    Popup.PopupModel = new Popup("افزودن کاربر", $"کاربر {user.Username} با موفقیت اضافه شد.", IconType.Success);
                    if (!string.IsNullOrEmpty(user.UserRoles))
                    {
                        result = await _userManager.AddToRolesAsync(createUser, user.UserRoles.Split(','));

                        if (!result.Succeeded)
                        {
                            Popup.PopupModel = new Popup("خطا در افزودن نقش", $"در هنگام افزودن نقش به کاربر {user.Username} خطایی رخ داد.", IconType.Error);
                            if (result.Errors.Count() > 0)
                            {
                                Popup.PopupModel.Message += result.Errors.First();
                            }
                        }
                    }
                    return(RedirectToAction("Index"));
                }
            }
            await SetRoles();

            return(View(user));
        }