public async Task <IActionResult> Register(RegisterModel registerModel)
        {
            ViewBag.departments = new SelectList(_departmentService.GetAll().Where(i => i.DepartmentIsDeleted == false && i.DepartmentIsActive).ToList(), "DepartmentId", "DepartmentName");
            if (!ModelState.IsValid)
            {
                return(View(registerModel));
            }
            if (registerModel.DepartmentId == 0)
            {
                ModelState.AddModelError("", "Departman Seçiniz.");

                return(View(registerModel));
            }

            var user = new DocSysUser()
            {
                Email             = registerModel.Email,
                UserName          = registerModel.Email,
                NameSurname       = registerModel.NameSurname,
                DepartmentId      = registerModel.DepartmentId,
                ProfilePhoto      = "",
                PhoneNumber       = registerModel.Phone,
                isApprovedByAdmin = false,
                isDeleted         = false
            };
            var result = await _userManager.CreateAsync(user, registerModel.Password);

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

                TempData.Put("message", new ResultMessage()
                {
                    Title   = "Kayıt Başarılı",
                    Message = "Kullanıcı kaydınız başarılıdır. Lütfen sisteme giriş yapmak için admin onayını bekleyiniz.",
                    Css     = "warning"
                });

                return(RedirectToAction("login", "account"));
            }
            ModelState.AddModelError("", result.Errors.FirstOrDefault().Description);
            return(View(registerModel));
        }
Beispiel #2
0
        public async Task <IActionResult> EditUserAsync(UserModel model)
        {
            var roles = _roleManager.Roles;

            ViewBag.roles       = new SelectList(roles, "Name", "Name");
            ViewBag.departments = new SelectList(_departmentService.GetAll().Where(i => i.DepartmentIsDeleted == false && i.DepartmentIsActive).ToList(), "DepartmentId", "DepartmentName");
            DocSysUser user = await _userManager.FindByEmailAsync(model.Email);

            if (ModelState.IsValid)
            {
                if (user == null)
                {
                    TempData.Put("message", new ResultMessage()
                    {
                        Title   = "Kullanıcı Güncelle",
                        Message = "Kullanıcı Bulunamadı",
                        Css     = "danger"
                    });
                    return(RedirectToAction("Index"));
                }
                user.Email             = model.Email;
                user.isDeleted         = model.isDeleted;
                user.isApprovedByAdmin = model.isApprovedByAdmin;
                user.PhoneNumber       = model.Phone;
                user.NameSurname       = model.NameSurname;
                user.DepartmentId      = model.DepartmentId;

                if (!(await _userManager.IsInRoleAsync(user, model.RoleId)))
                {
                    var userrole = await _userManager.GetRolesAsync(user);

                    RoleModel models = new RoleModel()
                    {
                        RoleName = userrole.First()
                    };

                    if (await _userManager.IsInRoleAsync(user, models.RoleName))
                    {
                        await _userManager.RemoveFromRoleAsync(user, models.RoleName);
                    }
                    await _userManager.AddToRoleAsync(user, model.RoleId);
                }
                var result = await _userManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    TempData.Put("message", new ResultMessage()
                    {
                        Title   = "Kullanıcı Güncelle",
                        Message = "Kullanıcı Güncelleme Başarılı",
                        Css     = "success"
                    });
                    return(RedirectToAction("Index"));
                }
            }
            TempData.Put("message", new ResultMessage()
            {
                Title   = "Kullanıcı Güncelle",
                Message = "Kullanıcı Güncelleme Başarısız",
                Css     = "danger"
            });
            return(View(model));
        }