public PostWarningNoteResponse PostWarningNote(PostWarningNoteRequest request) { var person = _databaseContext.Persons.FirstOrDefault(x => x.Id == request.PersonId); if (person == null) { throw new PersonNotFoundException($"Person with given id ({request.PersonId}) not found"); } var warningNote = request.ToDatabaseEntity(); _databaseContext.WarningNotes.Add(warningNote); _databaseContext.SaveChanges(); var response = new PostWarningNoteResponse { WarningNoteId = warningNote.Id }; // try // { var dt = DateTime.Now; var note = new WarningNoteCaseNote { FirstName = person.FirstName, LastName = person.LastName, MosaicId = person.Id.ToString(), Timestamp = dt.ToString("dd/MM/yyyy H:mm:ss"), Note = $"{dt.ToShortDateString()} | Warning Note | Warning note created against this person", FormNameOverall = "API_WarningNote", FormName = "Warning Note Created", WarningNoteId = warningNote.Id.ToString(), WorkerEmail = request.CreatedBy }; var caseNotesDocument = new CaseNotesDocument { CaseFormData = JsonConvert.SerializeObject(note) }; response.CaseNoteId = _processDataGateway.InsertCaseNoteDocument(caseNotesDocument).Result; // } // catch (Exception ex) // { // _databaseContext.WarningNotes.Remove(warningNote); // _databaseContext.SaveChanges(); // throw new PostWarningNoteException($"Unable to create a case note. Warning Note not created: {ex.Message}"); // } return(response); }
public void CanMapPostWarningNoteRequestToDatabaseObject() { long number = _faker.Random.Number(); var dt = DateTime.Now; var text = _faker.Random.String(); var request = new PostWarningNoteRequest { PersonId = number, StartDate = dt, EndDate = dt, DisclosedWithIndividual = true, DisclosedDetails = text, Notes = text, ReviewDate = dt, NextReviewDate = dt, NoteType = text, DisclosedDate = dt, DisclosedHow = text, WarningNarrative = text, ManagerName = text, DiscussedWithManagerDate = dt, CreatedBy = text }; var expectedResponse = new dbWarningNote { PersonId = number, StartDate = dt, EndDate = dt, DisclosedWithIndividual = true, DisclosedDetails = text, Notes = text, ReviewDate = dt, NextReviewDate = dt, NoteType = text, Status = "open", DisclosedDate = dt, DisclosedHow = text, WarningNarrative = text, ManagerName = text, DiscussedWithManagerDate = dt, CreatedBy = text }; var response = request.ToDatabaseEntity(); response.Should().BeOfType <dbWarningNote>(); response.Should().BeEquivalentTo(expectedResponse); }