コード例 #1
0
        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)));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
ファイル: DepartmentApi.cs プロジェクト: zxz19/WeixinSDK
        /// <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));
        }
コード例 #5
0
        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;
                }
            }
        }