public static void UpdateOTRequest(this OTRequest otRequest, OTRequestViewModel otRequestVm) { otRequest.ID = otRequestVm.ID; otRequest.Title = otRequestVm.Title; otRequest.CreatedBy = otRequestVm.CreatedBy; otRequest.OTDate = otRequestVm.OTDate; otRequest.OTDateTypeID = otRequestVm.OTDateTypeID; otRequest.OTTimeTypeID = otRequestVm.OTTimeTypeID; otRequest.StatusRequestID = otRequestVm.StatusRequestID; otRequest.UserAssignedID = otRequestVm.UserAssignedID; otRequest.CreatedDate = otRequestVm.CreatedDate; otRequest.UpdatedDate = otRequestVm.UpdatedDate; otRequest.UpdatedBy = otRequestVm.UpdatedBy; otRequest.StartTime = otRequestVm.StartTime; otRequest.EndTime = otRequestVm.EndTime; }
public async Task <HttpResponseMessage> Update(HttpRequestMessage request, OTRequestViewModel oTRequestViewModel) { return(await CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState); } var tmp = oTRequestViewModel.OTRequestUserID.ToList(); tmp.Add(oTRequestViewModel.UserID); oTRequestViewModel.OTRequestUserID = tmp.Distinct().ToArray(); DateTime?dateViewModel = oTRequestViewModel.OTDate; var model = _otrequestService.GetById(oTRequestViewModel.ID); var dateNow = DateTime.Now.Date; if (oTRequestViewModel.OTDate == dateNow) { if (_otrequestService.CheckCreateDay(model) == false) { return request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.ERROR_CREATE_OTREQUEST_IN_PAST_NOT_MSG); } } if (oTRequestViewModel.OTDate < dateNow) { return request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.ERROR_CREATE_OTREQUEST_IN_PAST_NOT_MSG); } // nomal if (oTRequestViewModel.OTDate != null && _commonService.isWorkingDay(oTRequestViewModel.OTDate.Value) && oTRequestViewModel.OTDateTypeID != CommonConstants.OTDateTypeNormal) { return request.CreateResponse(HttpStatusCode.BadRequest, oTRequestViewModel.OTDate.Value.Date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) + " is " + oTRequestViewModel.OTDate.Value.DayOfWeek + ", " + MessageSystem.ERROR_MUST_SELECT_NOMAL); } // weekend if (oTRequestViewModel.OTDate != null && _commonService.isWeekend(oTRequestViewModel.OTDate.Value) && oTRequestViewModel.OTDateTypeID != CommonConstants.OTDateTypeWeekend) { return request.CreateResponse(HttpStatusCode.BadRequest, oTRequestViewModel.OTDate.Value.Date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) + " is " + oTRequestViewModel.OTDate.Value.DayOfWeek + ", " + MessageSystem.ERROR_MUST_SELECT_WEEKEND); } //holiday if (oTRequestViewModel.OTDate != null && _commonService.isHoliday(oTRequestViewModel.OTDate.Value) && oTRequestViewModel.OTDateTypeID != CommonConstants.OTDateTypeHoliDay) { return request.CreateResponse(HttpStatusCode.BadRequest, oTRequestViewModel.OTDate.Value.Date.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) + " is " + oTRequestViewModel.OTDate.Value.DayOfWeek + ", " + MessageSystem.ERROR_MUST_SELECT_HOLIDAY); } else { if (TimeSpan.ParseExact(oTRequestViewModel.StartTime, @"hh\:mm", CultureInfo.InvariantCulture) > TimeSpan.ParseExact(oTRequestViewModel.EndTime, @"hh\:mm", CultureInfo.InvariantCulture)) { return request.CreateErrorResponse(HttpStatusCode.BadRequest, MessageSystem.StartTimeCompareEndTime); } var checkCondition = _otrequestService.CheckConditionCreate(oTRequestViewModel.OTDateTypeID, oTRequestViewModel.OTTimeTypeID, oTRequestViewModel.StartTime, oTRequestViewModel.EndTime); if (!string.IsNullOrEmpty(checkCondition)) { return request.CreateErrorResponse(HttpStatusCode.BadRequest, checkCondition); } else { if (model.OTDate == oTRequestViewModel.OTDate) { model.EditOTRequest(oTRequestViewModel); _otrequestService.UpdateOTRequest(model); response = request.CreateResponse(HttpStatusCode.OK, "done"); return response; } model.EditOTRequest(oTRequestViewModel); if (_otrequestService.CheckOtRequestUser(model, oTRequestViewModel.OTRequestUserID.ToList()) == true) { _otrequestService.UpdateOTRequest(model); response = request.CreateResponse(HttpStatusCode.OK, "done"); return response; } else { response = request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.ERROR_CANNOT_CREATE_OT_EXIST); } } } return response; })); }