Ejemplo n.º 1
0
        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);
                }
            }));
        }