public OperationResponse <CaseDto> Post(CreateCase request) { OperationResponse <CaseDto> operationResponse = new OperationResponse <CaseDto>(); ClientValidator clientValidator = new ClientValidator(); CaseInformationValidator caseInformationValidator = new CaseInformationValidator(); NotesValidator notesValidator = new NotesValidator(); CaseInformationDto caseInformation = request.CaseDto.CaseInformation; ClientDto client = request.CaseDto.Client; NotesDto notes = request.CaseDto.Notes; CaseStatusDto caseStatus = request.CaseDto.CaseStatus; List <CaseReferenceDto> references = request.CaseDto.References; List <string> errors = new List <string>(); ValidationResult validationResult = clientValidator.Validate(client); if (!validationResult.IsValid) { ; foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } } validationResult = caseInformationValidator.Validate(caseInformation); if (!validationResult.IsValid) { foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } } validationResult = notesValidator.Validate(notes); if (!validationResult.IsValid) { foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } } if (errors.Count != 0) { operationResponse.OnError("Invalid input data", errors); return(operationResponse); } try { CaseDto caseDto = CaseBusinessLogic.AddNewCase(client, caseInformation, notes, caseStatus, references); operationResponse.OnSuccess(caseDto, "Added successfully"); return(operationResponse); } catch (Exception e) { Log.Error(e.Message); operationResponse.OnException(e.Message); return(operationResponse); } }
public OperationResponse <CaseDto> Put(EditCase request) { OperationResponse <CaseDto> operationResponse = new OperationResponse <CaseDto>(); ClientValidator clientValidator = new ClientValidator(); CaseInformationValidator caseInformationValidator = new CaseInformationValidator(); NotesValidator notesValidator = new NotesValidator(); CaseInformationDto caseInformation = request.CaseDto.CaseInformation; ClientDto client = request.CaseDto.Client; NotesDto notes = request.CaseDto.Notes; CaseStatusDto caseStatus = request.CaseDto.CaseStatus; List <CaseReferenceDto> references = request.CaseDto.References; ValidationResult validationResult = clientValidator.Validate(client); if (!validationResult.IsValid) { List <string> errors = new List <string>(); foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } operationResponse.OnError("Invalid client data", errors); return(operationResponse); } validationResult = caseInformationValidator.Validate(caseInformation); if (!validationResult.IsValid) { List <string> errors = new List <string>(); foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } operationResponse.OnError("Invalid case-information data", errors); return(operationResponse); } validationResult = notesValidator.Validate(notes); if (!validationResult.IsValid) { List <string> errors = new List <string>(); foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } operationResponse.OnError("Invalid case-information data", errors); return(operationResponse); } try { CaseDto caseDto = this.CaseBusinessLogic.EditCase(client.CaseId, client, caseInformation, notes, caseStatus, references); operationResponse.OnSuccess(caseDto, "Saved successfully"); return(operationResponse); } catch (Exception e) { Log.Error(e.Message + " " + e.StackTrace); operationResponse.OnException(e.Message); return(operationResponse); } }