public async Task <IHttpActionResult> UpdateDepartment([FromUri] int departmentId, [FromBody] UpdateDepartmentRequest updateRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } await _departmentService.UpdateDepartment(departmentId, updateRequest); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.NoContent))); }
public DepartmentViewModel UpdateDepartment(string id, UpdateDepartmentRequest request, string updatedBy, IEnumerable <string> roles = null) { if (roles.Count() == 0 || roles == null) { return(null); } if (id.IsEmpty()) { throw new Exception(Constants.ERR_EMPTY_ID); } if (request.DepartmentName.IsEmpty()) { throw new Exception(Constants.ERR_EMPTY_DNAME); } if (request.IsDeleted == null) { throw new Exception(Constants.ERR_EMPTY_DELFLAG); } if (request.RoomNumber.IsEmpty()) { throw new Exception(Constants.ERR_EMPTY_ROOMNUM); } else if (request.RoomNumber.Length > Constants.CONSTRAINT_ROOMNUM_MAXLEN) { throw new Exception(Constants.ERR_ROOMNUM_MAXLEN); } if (request.Hotline.Length > Constants.CONSTRAINT_HOTLINE_MAXLEN) { throw new Exception(Constants.ERR_HOTLINE_MAXLEN); } var repo = _unitOfWork.Repository <Department>(); var updatingDepartment = _mapper.Map <Department>(request); var department = new Department(); try { department = repo.Get(x => x.Id.Equals(id)).FirstOrDefault(); //not found if (department == null) { return(null); } //proceed to update if (updatingDepartment.RoomNumber != null) { department.RoomNumber = updatingDepartment.RoomNumber; } if (updatingDepartment.DepartmentName != null) { department.DepartmentName = updatingDepartment.DepartmentName; } if (updatingDepartment.Hotline != null) { department.Hotline = updatingDepartment.Hotline; } if (updatingDepartment.IsDeleted != null) { department.IsDeleted = updatingDepartment.IsDeleted; } department.UpdatedBy = updatedBy; department.UpdatedAt = DateTime.Now; repo.Update(department); repo.Commit(); } catch (DbUpdateException due) { var se = due.GetBaseException() as SqlException; if (se != null) { if (se.Errors.Count > 0) { switch (se.Errors[0].Number) { case 547: // Foreign Key violation throw new Exception(Constants.ERR_ROLE_FK); case 2627: throw new Exception(Constants.ERR_UNAME_NOTAVAILABLE); default: throw; } } } } return(_mapper.Map <DepartmentViewModel>(department)); }
public async Task <IActionResult> UpdateDepartmentAsync([FromRoute] string id, [FromBody] UpdateDepartmentRequest updateUserRequest) { if (string.IsNullOrWhiteSpace(id)) { return(BadRequest("Id is null or invalid")); } if (!string.Equals(id, updateUserRequest.DepartmentId, System.StringComparison.OrdinalIgnoreCase)) { return(BadRequest("Inconsistency in departments id's")); } if (string.IsNullOrWhiteSpace(updateUserRequest.DepartmentName)) { return(BadRequest("Invalid department name")); } var model = _mapper.Map <DepartmentModel>(updateUserRequest); var result = await _departmentManager.UpdateDepartmentAsync(model); if (!result) { return(BadRequest("Department not found")); } var response = _mapper.Map <UpdateDepartmentResponse>(model); return(Ok(response)); }
/// <summary> /// 更新部门 /// 文档:https://exmail.qq.com/qy_mng_logic/doc#10009 /// </summary> /// <param name="department">部门信息</param> /// <returns>返回结果</returns> public JsonResult Update(UpdateDepartmentRequest department) { var accessToken = Client.GetToken(); return(Client.PostAsJson <JsonResult>("/department/update", new { accessToken.access_token }, department)); }
public async Task <ActionResult <BaseResponse <DepartmentViewModel> > > PutDepartment([FromRoute] string id, [FromBody] UpdateDepartmentRequest request) { try { var raw = Request.Headers.FirstOrDefault(x => x.Key.Equals("Authorization")).Value; var requester = IdentityManager.GetUsernameFromToken(raw); var roles = IdentityManager.GetRolesFromToken(raw); var department = _departmentService.UpdateDepartment(id, request, requester, roles); if (department == null) { return(NotFound()); } return(Ok(new BaseResponse <DepartmentViewModel>() { Data = department })); } catch (Exception ex) { if (ex.Message.StartsWith("ERR")) { return(BadRequest(new ErrorResponse(ex.Message))); } else { throw; } } }