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 IActionResult PostWarningNote([FromBody] PostWarningNoteRequest request) { try { var result = _warningNoteUseCase.ExecutePost(request); return(CreatedAtAction("CreateAllocation", result, result)); } catch (PersonNotFoundException ex) { return(BadRequest(ex.Message)); } }
public void PostWarningNoteReturns201WhenSuccessful() { var postWarningNoteResponse = _fixture.Create <PostWarningNoteResponse>(); var postWarningNoteRequest = new PostWarningNoteRequest(); _mockWarningNoteUseCase .Setup(x => x.ExecutePost(postWarningNoteRequest)) .Returns(postWarningNoteResponse); var response = _classUnderTest.PostWarningNote(postWarningNoteRequest) as CreatedAtActionResult; response?.StatusCode.Should().Be(201); response?.Value.Should().BeEquivalentTo(postWarningNoteResponse); }
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); }
public void ExecutePostReturnsCorrectCaseNoteId() { var request = new PostWarningNoteRequest(); var expectedResponse = new PostWarningNoteResponse() { CaseNoteId = _fixture.Create <string>() }; _mockDatabaseGateway .Setup(x => x.PostWarningNote( It.Is <PostWarningNoteRequest>(r => r == request))) .Returns(expectedResponse); var response = _classUnderTest.ExecutePost(request); response.CaseNoteId.Should().BeEquivalentTo(expectedResponse.CaseNoteId); }
public static dbWarningNote ToDatabaseEntity(this PostWarningNoteRequest request) { return(new dbWarningNote { PersonId = request.PersonId, StartDate = request.StartDate, EndDate = request.EndDate, ReviewDate = request.ReviewDate, NextReviewDate = request.NextReviewDate, DisclosedWithIndividual = request.DisclosedWithIndividual, DisclosedDetails = request.DisclosedDetails, Notes = request.Notes, NoteType = request.NoteType, Status = "open", DisclosedDate = request.DisclosedDate, DisclosedHow = request.DisclosedHow, WarningNarrative = request.WarningNarrative, ManagerName = request.ManagerName, DiscussedWithManagerDate = request.DiscussedWithManagerDate, CreatedBy = request.CreatedBy }); }
public PostWarningNoteResponse ExecutePost(PostWarningNoteRequest request) { return(_databaseGateway.PostWarningNote(request)); }