public Response AddCompleteCase(CompleteCase Case) { try { var faultCourtServiceClients = GetFaultCourtService(Case.Court_ID); if (faultCourtServiceClients != null && faultCourtServiceClients.Count > 0) { return(faultCourtServiceClients.First().AddCompleteCase(Case)); } return(new Response { ErrorCodes = new List <int> { ErrorCode.CourtIDNotRegistered } }); } catch (Exception ex) { logger.LogException(ex); return(Response.Failed); } }
/// <summary> /// Save a complete Case to the System /// </summary> /// <param name="Case">All Case MetaData</param> /// <returns>Response if Saved or Not with error codes</returns> public Response AddCompleteCase(CompleteCase Case) { try { using (var Transaction = databaseRepository.BeginTransaction()) { //Validate Pros Data //This will Be our big player //if any thing passes this validation //Data could be wrong if (!completeCaseValidator.CValidate(Case, out List <int> ErrorCodes)) { return(ReturnErrorResponse(ErrorCodes)); } //Save Basic Data First Base.Views.vw_FaultCaseBasicData vw_FaultCaseBasicData = Case.MapToBasicData(); var caseSaveStatus = caseService.AddBasicData(vw_FaultCaseBasicData); if (caseSaveStatus != CaseSaveStatus.Saved) { return(ReturnErrorResponse(caseSaveStatus)); } //Save Case Description if (!caseService.AddCaseDescription(Case.MapCaseDescription(vw_FaultCaseBasicData.CaseID))) { return(Response.Failed); } //Save First Session Date long SessionID = GetSessionID(Case.FinalSession); if (!CaseConfiguration.AddCaseConfiguration(Case.MapCaseSessionConfiguration(SessionID, vw_FaultCaseBasicData.CaseID))) { return(Response.Failed); } //Todo Save CaseParty Data foreach (var CaseParty in Case.CaseParties) { var PersonSaveStatus = personService.AddPerson(CaseParty.MapPersonData(), out long PersonID); if (PersonSaveStatus != PersonStatus.SuccefullSave) { return(ReturnErrorResponse(PersonSaveStatus)); } SaveDefectsStatus caseDefectSaveStatus = this.defectsService.AddCaseDefect(CaseParty.MapCaseDefectData(vw_FaultCaseBasicData.CaseID, PersonID)); if (caseDefectSaveStatus != SaveDefectsStatus.Saved) { return(ReturnErrorResponse(caseDefectSaveStatus)); } //Todo Save Decision } //Todo Save Attachments Transaction.Commit(); return(Response.Success); } } catch (Exception ex) { logger.LogException(ex); return(Response.Failed); } }