public async Task <HttpResponseMessage> ChangeStatus(HttpRequestMessage request, int explanationId, string statusName, string delegateId) { return(await CreateHttpResponse(request, () => { var dateNow = DateTime.Now.Date; var explanationEntity = _explanationRequestService.GetExplanationDetail(explanationId); var DateExRequestInPast = _commonService.GetDateExRequestInPast(explanationEntity.CreatedDate.Value); if (DateExRequestInPast.Date < dateNow) { return request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.ERROR_CHANGESTATUS_EXREQUEST_IN_PAST_NOT_MSG); } //Check if explanation request in aboutime set delegate default and status is Delegated,will not set delegate if (explanationEntity != null && statusName.Equals(CommonConstants.StatusDelegation)) { var group = __groupService.GetGroupById(explanationEntity.AppUserCreatedBy.GroupId.ToString()); if (group.EndDate != null && explanationEntity.CreatedDate != null) { if (group.EndDate.Value.Date < DateTime.Now.Date && group.StartDate <= explanationEntity.CreatedDate.Value.Date && group.EndDate >= explanationEntity.CreatedDate.Value.Date) { return request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.ERROR_CHANGESTATUS_REQUEST_NOT_IN_DELEGATEDEFAULT_TIME_MSG); } } } string error; bool rs = _explanationRequestService.ChangeStatus(explanationId, statusName, delegateId, out error); if (rs == true) { _explanationRequestService.Save(); return request.CreateErrorResponse(HttpStatusCode.OK, MessageSystem.Change_Explanation_Status_Success); } else { return request.CreateErrorResponse(HttpStatusCode.BadRequest, error); } })); }