public static CaseSubmissionResponse ToResponse(this CaseSubmission caseSubmission) { return(new CaseSubmissionResponse { SubmissionId = caseSubmission.SubmissionId, FormId = caseSubmission.FormId, Residents = caseSubmission.Residents, Workers = caseSubmission.Workers.Select(w => w.ToResponse()).ToList(), CreatedAt = caseSubmission.CreatedAt.ToString("O"), DateOfEvent = caseSubmission.DateOfEvent?.ToString("O"), CreatedBy = caseSubmission.CreatedBy.ToResponse(), SubmittedAt = caseSubmission.SubmittedAt?.ToString("O"), SubmittedBy = caseSubmission.SubmittedBy?.ToResponse(), ApprovedAt = caseSubmission.ApprovedAt?.ToString("O"), PanelApprovedAt = caseSubmission.PanelApprovedAt?.ToString("O"), PanelApprovedBy = caseSubmission.PanelApprovedBy?.ToResponse(), ApprovedBy = caseSubmission.ApprovedBy?.ToResponse(), RejectionReason = caseSubmission.RejectionReason, EditHistory = caseSubmission.EditHistory?.Select(e => new EditHistory <WorkerResponse> { EditTime = e.EditTime, Worker = e.Worker.ToResponse() }).ToList(), SubmissionState = caseSubmission.SubmissionState, FormAnswers = caseSubmission.FormAnswers, Title = caseSubmission.Title, LastEdited = caseSubmission.LastEdited?.ToString("O"), CompletedSteps = caseSubmission.CompletedSteps, Deleted = caseSubmission.Deleted, DeletionDetails = caseSubmission.DeletionDetails }); }
public void CanMapCaseSubmissionFromDatabaseObjectToDomainObject() { var databaseCaseSubmission1 = TestHelpers.CreateCaseSubmission(SubmissionState.InProgress, title: null, deleted: true); var domainCaseSubmission1 = new DomainCaseSubmission() { SubmissionId = databaseCaseSubmission1.SubmissionId.ToString(), FormId = databaseCaseSubmission1.FormId, Residents = databaseCaseSubmission1.Residents, Workers = databaseCaseSubmission1.Workers.Select(w => w.ToDomain(false)).ToList(), CreatedAt = databaseCaseSubmission1.CreatedAt, CreatedBy = databaseCaseSubmission1.CreatedBy.ToDomain(false), EditHistory = databaseCaseSubmission1.EditHistory.Select(e => new EditHistory <Worker> { EditTime = e.EditTime, Worker = e.Worker.ToDomain(false) }).ToList(), SubmissionState = "In progress", FormAnswers = databaseCaseSubmission1.FormAnswers, Title = null, LastEdited = databaseCaseSubmission1.EditHistory.Last().EditTime, CompletedSteps = 1, Deleted = true, DeletionDetails = databaseCaseSubmission1.DeletionDetails }; var databaseCaseSubmission2 = TestHelpers.CreateCaseSubmission(SubmissionState.Submitted, title: "test-title", deleted: false); var domainCaseSubmission2 = new DomainCaseSubmission() { SubmissionId = databaseCaseSubmission2.SubmissionId.ToString(), FormId = databaseCaseSubmission2.FormId, Residents = databaseCaseSubmission2.Residents, Workers = databaseCaseSubmission2.Workers.Select(w => w.ToDomain(false)).ToList(), CreatedAt = databaseCaseSubmission2.CreatedAt, CreatedBy = databaseCaseSubmission2.CreatedBy.ToDomain(false), EditHistory = databaseCaseSubmission2.EditHistory.Select(e => new EditHistory <Worker> { EditTime = e.EditTime, Worker = e.Worker.ToDomain(false) }).ToList(), SubmissionState = "Submitted", FormAnswers = databaseCaseSubmission2.FormAnswers, Title = "test-title", LastEdited = databaseCaseSubmission2.EditHistory.Last().EditTime, CompletedSteps = 1, Deleted = false, DeletionDetails = null }; databaseCaseSubmission1.ToDomain().Should().BeEquivalentTo(domainCaseSubmission1); databaseCaseSubmission2.ToDomain().Should().BeEquivalentTo(domainCaseSubmission2); }