示例#1
0
        public async Task <IActionResult> ChangePassword(changePasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var account = await adminsService.GetAdminById(sessionService.User.Id);

                if (account != null)
                {
                    var password = hasherService.ComputeSha256Hash(model.CurrentPassword);
                    if (password == account.Password)
                    {
                        account.Password = hasherService.ComputeSha256Hash(model.NewPassword);

                        await adminsService.Update(account);

                        TempData[Constants.ChangePasswordSuccessMessage] = Messages.EditSuccess;
                        return(View());
                    }
                    else
                    {
                        TempData[Constants.ChangePasswordErrorMessage] = Messages.InCorrectPassword;
                        return(View(model));
                    }
                }
                else
                {
                    return(RedirectToAction(nameof(AccessDenied)));
                }
            }
            return(View(model));
        }
示例#2
0
        public async Task <HttpResponseMessage> PutAdmin(string id, [FromBody] PutAdminDTO updated)
        {
            string userId   = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;
            string userRole = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == ClaimTypes.Role).Value;

            logger.Info("UserId: " + userId + ": Requesting Update for Admin Id: " + id);

            if (updated.Id != id)
            {
                logger.Error("Updated Admin id " + updated.Id + " doesn't match the id " + id + " from the request (route).");
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Updated " +
                                              "Admin id " + updated.Id + " doesn't match the id " + id + " from the request (route)."));
            }

            try
            {
                Admin saved = await adminsService.Update(id, updated);

                if (saved == null)
                {
                    logger.Info("Failed!");
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, "Failed!"));
                }

                logger.Info("Success!");
                return(Request.CreateResponse(HttpStatusCode.OK, saved));
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Request.CreateResponse(HttpStatusCode.BadRequest, e));
            }
        }
示例#3
0
        public async Task <ActionResult> Edit(AdminViewModel model)
        {
            try
            {
                var _adminData = await adminsService.GetAdminById(model.Id);

                if (_adminData == null)
                {
                    return(NotFound());
                }
                ModelState.Remove("Ger_ActivationStartDate");
                ModelState.Remove("Ger_ActivationEndDate");
                if (ModelState.IsValid)
                {
                    var admin = _adminData;
                    if (await adminsService.IsNationalIdAlreadyExists(model.NationalId, admin.Id))
                    {
                        TempData[Constants.ErrorMessage] = Messages.NationalIdAlreadyExists;
                        await model.FillRolesList(adminsService);

                        return(View(model));
                    }

                    if (Request.Form.Files?.Count > 0)
                    {
                        MemoryStream ms = new MemoryStream();
                        Request.Form.Files["NewProfileImage"].CopyTo(ms);
                        model.ProfileImageData = ms.ToArray();
                        Request.Form.Files["NewSignatureImage"].CopyTo(ms);
                        model.SignatureImageData = ms.ToArray();

                        ms.Close();
                        ms.Dispose();

                        model.ProfileImage = await SaveFile(Request.Form.Files["NewProfileImage"], true, model.ProfileImage);

                        model.SignatureImage = await SaveFile(Request.Form.Files["NewSignatureImage"], true, model.SignatureImage);
                    }

                    admin.FirstName           = model.FirstName;
                    admin.SecondName          = model.SecondName;
                    admin.ThirdName           = model.ThirdName;
                    admin.LastName            = model.LastName;
                    admin.NationalId          = model.NationalId;
                    admin.EmplyeeNo           = model.EmplyeeNo;
                    admin.MobileNumber        = model.MobileNumber;
                    admin.Email               = model.Email;
                    admin.IsActive            = model.IsActive;
                    admin.ActivationStartDate = model.ActivationStartDate;
                    admin.ActivationEndDate   = model.ActivationEndDate;
                    admin.Title               = model.Title;
                    admin.CanApprove          = model.CanApprove;
                    admin.ProfileImage        = model.ProfileImage;
                    admin.SignatureImage      = model.SignatureImage;
                    admin.IsManager           = model.IsManager;
                    admin.DepartmentCode      = model.DepartmentCode;
                    admin.Roles               = model.SelectedRolesIds.Select(i => new AdminRole {
                        RoleId = i
                    }).ToList();
                    admin.ProfileImageData   = model.ProfileImageData;
                    admin.SignatureImageData = model.SignatureImageData;

                    await adminsService.Update(admin);


                    await loggingService.LogActionData <Admin>(LoggingCategory.Administrator, LoggingAction.Edit,
                                                               _adminData, admin, sessionService.User.Id, _adminData.Id.ToString());


                    TempData[Constants.SuccessMessage] = Messages.EditSuccess;

                    return(RedirectToAction("Index", "Admins"));
                }

                await model.FillRolesList(adminsService);

                return(View(model));
            }
            catch (Exception ex)
            {
                TempData[Constants.ErrorMessage] = Messages.ResourceManager.GetString(ex.Message);

                await model.FillRolesList(adminsService);

                return(View(model));
            }
        }
示例#4
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="Admins">Admins表实例</param>
 /// <returns>int</returns>
 public static int Update(Admins AdminsExample)
 {
     return(Service.Update(AdminsExample));
 }