public async Task <IActionResult> Create([Bind(ATTRIBUTES_TO_BIND)] SystemUserVM UpdateVm)
        {
            if (ModelState.IsValid)
            {
                var username = UserName.Create(UpdateVm.UserName);
                var password = Password.Create(UpdateVm.Password);
                var result   = Result.Combine("|", username, password);

                if (result.IsSuccess)
                {
                    TempData["javascriptMessage"] = Constants.JAVASCRIPT_SUCCESS_FUNCTION;
                    await _repository.Save(SystemUser.CreateOperational(username.Value,
                                                                        UpdateVm.FullName,
                                                                        password.Value,
                                                                        UpdateVm.IsAdministrator));

                    return(RedirectToAction("Index"));
                }
                else
                {
                    Array.ForEach(result.Error.Split('|'), x => ModelState.AddModelError(string.Empty, x));
                }
            }

            return(View(UpdateVm));
        }
Пример #2
0
        public async Task <ActionResult> Login([FromBody] SystemUserVM userVM)
        {
            if (ModelState.IsValid)
            {
                var result = await _signInManager.PasswordSignInAsync(userVM.Email, userVM.Password, false, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    var userManager = _serviceProvider.GetRequiredService <UserManager <SystemUser> >();
                    var user        = await userManager.FindByEmailAsync(userVM.Email);

                    if (user != null)
                    {
                        return(BuildLoginOkResponse(user));
                    }
                }
                else if (result.IsLockedOut)
                {
                    return(StatusCode(403));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            return(BadRequest());
        }
Пример #3
0
        public ActionResult Detail(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SystemUserVM detail = db.getUesrDetail((int)id);

            if (detail == null)
            {
                return(HttpNotFound());
            }
            return(View(detail));
        }
Пример #4
0
        public ActionResult Index()
        {
            string id = Convert.ToString(Session["UserId"]);

            if (id == null || id == "" || id == "0")
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SystemUserVM detail = db.getUesrDetail(Convert.ToInt32(id));

            if (detail == null)
            {
                return(HttpNotFound());
            }
            return(View(detail));
        }
Пример #5
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SystemUserVM detail = db.getUesrDetail((int)id);

            if (detail == null)
            {
                return(HttpNotFound());
            }
            ViewBag.DepartmentId = new SelectList(ddl.getDepartmentList(), "Id", "Name", detail.DepartmentId);
            ViewBag.UserTypeId   = new SelectList(ddl.getUserTypeList(), "Id", "Name", detail.UserType);
            return(View(detail));
        }
        public async Task <IActionResult> ChangePassword([Bind(ATTRIBUTES_TO_BIND)] SystemUserVM UpdateVm)
        {
            if (ModelState.IsValid)
            {
                var newPassword = Password.Create(UpdateVm.Password);

                if (newPassword.IsSuccess)
                {
                    TempData["javascriptMessage"] = string.Format(Constants.JAVASCRIPT_WHIT_MESSAGE_FUNCTION, "Cambio de contraseña Exitoso!!");
                    var result = await _repository.UpdatePassword(UpdateVm.Id, newPassword.Value);

                    return(result.IsSuccess ? (IActionResult)RedirectToAction("Index") : NotFound(result.Error));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, newPassword.Error);
                }
            }

            return(View(UpdateVm));
        }
Пример #7
0
        public async Task <IActionResult> Register([FromBody] SystemUserVM userVM)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var role = _userRepo.GetRoleByName(userVM.RoleName);
                    if (role == null)
                    {
                        return(BadRequest(new { message = $"Invalid role {userVM.RoleName}" }));
                    }
                    var userManager = _serviceProvider.GetRequiredService <UserManager <SystemUser> >();
                    var result      = await userManager.CreateAsync(new SystemUser { Email = userVM.Email, UserName = userVM.Email }, userVM.Password);

                    if (result.Succeeded)
                    {
                        var user = await userManager.FindByEmailAsync(userVM.Email);

                        result = await userManager.AddToRoleAsync(user, role.Name);

                        if (result.Succeeded)
                        {
                            return(Ok());
                        }
                    }
                    if (result.Errors != null && result.Errors.Count() > 0)
                    {
                        return(BadRequest(new { message = result.Errors.First().Description }));
                    }
                }
                catch (Exception e)
                {
                    return(StatusCode(500, new { message = e.Message }));
                }
            }
            return(BadRequest());
        }