public IHttpActionResult ValidateStatusChangeItemRequest([FromBody] ItemRequestStatusChangeModel itemRequest) { var container = ContainerConfig.Configure(); using (var scope = container.BeginLifetimeScope()) { var app = scope.Resolve <IItemRequestFormBusinessLayer>(); var result = app.ValidateStatusChangeItemRequest(itemRequest); return(Json(result)); } }
public StandardRequestResultModel ValidateStatusChangeItemRequest(ItemRequestStatusChangeModel itemRequest) { StandardRequestResultModel result = new StandardRequestResultModel(); var selectedCodeDetail = _itemRequestFormDataAccess.GetAllTicketStatus() .CodeDetails.Where(x => x.Id == itemRequest.StatusCd) .Select(x => x.CodeValue).FirstOrDefault(); var quotationSentCd = _itemRequestFormDataAccess.GetAllTicketStatus() .CodeDetails.Where(x => x.CodeValue.Equals("Quotations Sent")) .Select(x => x.Id).FirstOrDefault(); var quotationCompleteCd = _itemRequestFormDataAccess.GetAllTicketStatus() .CodeDetails.Where(x => x.CodeValue.Equals("Completed")) .Select(x => x.Id).FirstOrDefault(); var selectedItemRequest = _itemRequestFormDataAccess.GetItemRequestFormById(itemRequest.Id); switch (selectedCodeDetail) { case "Supervisor Review": int quotationCount = selectedItemRequest.Quotations.Count; if (quotationCount > 0) { result.isSuccess = true; } else { result.isSuccess = false; result.Message = "Item Request does not have Quotations for review."; } break; case "Quotations Sent": int quotesSent = selectedItemRequest.Quotations.Where(x => x.StatusCd == quotationSentCd).Count(); if (quotesSent > 0) { result.isSuccess = true; } else { result.isSuccess = false; result.Message = "Item Request has Quotations not set to Quotations Sent status."; } break; case "Completed": int quotesComplete = selectedItemRequest.Quotations.Where(x => x.StatusCd == quotationCompleteCd).Count(); if (quotesComplete > 0) { result.isSuccess = true; } else { result.isSuccess = false; result.Message = "Item Request has Quotations not set to Completed status."; } break; case "Cancelled": var isCancelled = _itemRequestFormDataAccess.CancelItemRequest(itemRequest.Id); result.isSuccess = isCancelled; result.Message = isCancelled ? "Item Request " + itemRequest.Id + " cancelled." : "Item Request " + itemRequest.Id + " already cancelled."; break; case "Rejected": var isRejected = _itemRequestFormDataAccess.RejectItemRequest(itemRequest.Id); result.isSuccess = isRejected; result.Message = isRejected ? "Item Request " + itemRequest.Id + " set to rejected status." : "Item Request " + itemRequest.Id + " already rejected."; break; default: if (selectedCodeDetail == selectedItemRequest.CodeDetail.CodeValue) { result.isSuccess = true; result.Message = ""; } else { result.isSuccess = false; result.Message = "Unknown ticket status."; } break; } return(result); }