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