public async Task <IHttpActionResult> PostFEExecution(FEExecution fEExecution) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } using (var db = new FEMainDBContext()) { db.FEExecutions.Add(fEExecution); await db.SaveChangesAsync(); } return(CreatedAtRoute("DefaultApi", new { id = fEExecution.ID }, fEExecution)); }
public async Task <IHttpActionResult> SubmitResults(Results theResults) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } int baseSearchRequestID = theResults.ID; // Find the corresponding Search Request var response = await TheSReqController.GetFESearchRequest(baseSearchRequestID); if (response.GetType() == typeof(OkNegotiatedContentResult <FESearchRequest>)) { FESearchRequest searchRequest = ((OkNegotiatedContentResult <FESearchRequest>)response).Content; if (searchRequest.TheStatus != Status.Executing) { return(Ok()); } // Create the Execution object concerning the execution that was just completed, with the returned Results FEExecution newExecution = new FEExecution(baseSearchRequestID, searchRequest.LastExecutionCreatedOn, DateTime.Now); newExecution.TheResults = theResults; response = await TheExecsController.PostFEExecution(newExecution); if (response.GetType() == typeof(CreatedAtRouteNegotiatedContentResult <FEExecution>)) { FEExecution createdExecution = ((CreatedAtRouteNegotiatedContentResult <FEExecution>)response).Content; // Update the Search Request searchRequest.TheStatus = Status.Fulfilled; searchRequest.LatestExecutionID = createdExecution.ID; await TheSReqController.UpdateFESearchRequest(searchRequest.ID, searchRequest); return(Ok()); } else { return(InternalServerError()); } } else { return(InternalServerError()); } }