public Task <string> Execute(CreateCaseNoteRequest request) { CaseNotesDocument doc = request.ToEntity(); return(_processDataGateway.InsertCaseNoteDocument(doc)); }
//Handle case note creation exception like below for now public AddNewResidentResponse AddNewResident(AddNewResidentRequest request) { Address address = null; List <PersonOtherName> names = null; Person resident; List <dbPhoneNumber> phoneNumbers = null; try { resident = AddNewPerson(request); if (request.Address != null) { address = AddResidentAddress(request.Address, resident.Id, request.CreatedBy); resident.Addresses = new List <Address> { address }; } if (request.OtherNames?.Count > 0) { names = AddOtherNames(request.OtherNames, resident.Id, request.CreatedBy); resident.OtherNames = new List <PersonOtherName>(); resident.OtherNames.AddRange(names); } if (request.PhoneNumbers?.Count > 0) { phoneNumbers = AddPhoneNumbers(request.PhoneNumbers, resident.Id, request.CreatedBy); resident.PhoneNumbers = new List <dbPhoneNumber>(); resident.PhoneNumbers.AddRange(phoneNumbers); } _databaseContext.Persons.Add(resident); _databaseContext.SaveChanges(); } catch (DbUpdateException ex) { throw new ResidentCouldNotBeinsertedException( $"Error with inserting resident record has occurred - {ex.Message}"); } string caseNoteId = null; string caseNoteErrorMessage = null; //Add note try { DateTime dt = DateTime.Now; CreatePersonCaseNote note = new CreatePersonCaseNote() { FirstName = resident.FirstName, LastName = resident.LastName, MosaicId = resident.Id.ToString(), Timestamp = dt.ToString("dd/MM/yyyy H:mm:ss"), //in line with imported form data WorkerEmail = request.CreatedBy, Note = $"{dt.ToShortDateString()} Person added - by {request.CreatedBy}.", FormNameOverall = "API_Create_Person", FormName = "Person added", CreatedBy = request.CreatedBy }; CaseNotesDocument caseNotesDocument = new CaseNotesDocument() { CaseFormData = JsonConvert.SerializeObject(note) }; //TODO: refactor to appropriate pattern when using base API caseNoteId = _processDataGateway.InsertCaseNoteDocument(caseNotesDocument).Result; } catch (Exception ex) { caseNoteErrorMessage = $"Unable to create a case note for creating a person {resident.Id}: {ex.Message}"; } return(resident.ToResponse(address, names, phoneNumbers, caseNoteId, caseNoteErrorMessage)); }