public async Task <FullDeltaReportModel> GetAllAsync() { logger.LogInformation("Loading SOC delta"); var fullDeltaReportModel = new FullDeltaReportModel { Id = Guid.NewGuid() }; var draftSummaries = await draftJobGroupApiConnector.GetSummaryAsync().ConfigureAwait(false) ?? new List <JobGroupSummaryItemModel>(); var publishedSummaries = await publishedJobGroupApiConnector.GetSummaryAsync().ConfigureAwait(false) ?? new List <JobGroupSummaryItemModel>(); var draftSocs = (from a in draftSummaries select a.Soc).ToList(); var publishedSocs = (from a in publishedSummaries select a.Soc).ToList(); var allSocs = draftSocs.Union(publishedSocs).Distinct().ToList(); fullDeltaReportModel.DeltaReportSocs = (from soc in allSocs select new DeltaReportSocModel { Soc = soc, }).ToList(); foreach (var deltaReportSocModel in fullDeltaReportModel.DeltaReportSocs) { deltaReportSocModel.DraftJobGroup = await draftJobGroupApiConnector.GetDetailAsync(deltaReportSocModel.Soc).ConfigureAwait(false); deltaReportSocModel.PublishedJobGroup = await publishedJobGroupApiConnector.GetDetailAsync(deltaReportSocModel.Soc).ConfigureAwait(false); } SetState(fullDeltaReportModel.Id.Value, fullDeltaReportModel.DeltaReportSocs); return(fullDeltaReportModel); }
public async Task <FullDeltaReportModel?> GetSocAsync(Guid?socId) { _ = socId ?? throw new ArgumentNullException(nameof(socId)); logger.LogInformation($"Loading individual SOC data for: {socId}"); var deltaReportSocModel = new DeltaReportSocModel { DraftJobGroup = await draftJobGroupApiConnector.GetDetailAsync(socId.Value).ConfigureAwait(false), }; if (deltaReportSocModel.DraftJobGroup == null) { logger.LogInformation($"Failed to load individual draft SOC for: {socId}"); return(null); } deltaReportSocModel.PublishedJobGroup = await publishedJobGroupApiConnector.GetDetailAsync(deltaReportSocModel.DraftJobGroup.Soc).ConfigureAwait(false); deltaReportSocModel.Soc = deltaReportSocModel.DraftJobGroup.Soc; var fullDeltaReportModel = new FullDeltaReportModel { Id = Guid.NewGuid(), DeltaReportSocs = new List <DeltaReportSocModel> { deltaReportSocModel }, }; SetState(fullDeltaReportModel.Id.Value, fullDeltaReportModel.DeltaReportSocs); return(fullDeltaReportModel); }
public JobGroupDataServiceTests() { jobGroupDataService = new JobGroupDataService(fakeLogger, fakeDraftJobGroupApiConnector, fakePublishedJobGroupApiConnector); draftJobGroupSummaryItemModels = new List <JobGroupSummaryItemModel> { new JobGroupSummaryItemModel { Soc = Soc1111, }, new JobGroupSummaryItemModel { Soc = Soc2222, }, }; publishedJobGroupSummaryItemModels = new List <JobGroupSummaryItemModel> { new JobGroupSummaryItemModel { Soc = Soc2222, }, new JobGroupSummaryItemModel { Soc = Soc3333, }, }; dummyDraftJobGroupModel01 = new JobGroupModel { Soc = Soc1111, }; dummyDraftJobGroupModel02 = new JobGroupModel { Soc = Soc2222, }; dummyPublishedJobGroupModel02 = new JobGroupModel { Soc = Soc2222, }; dummyPublishedJobGroupModel03 = new JobGroupModel { Soc = Soc3333, }; dummyDraftJobGroupModels = new[] { dummyDraftJobGroupModel01, dummyDraftJobGroupModel02 }; dummyPublishedJobGroupModels = new[] { dummyPublishedJobGroupModel02, dummyPublishedJobGroupModel03 }; expectedGetAllResult = new FullDeltaReportModel { DeltaReportSocs = new List <DeltaReportSocModel> { new DeltaReportSocModel { Soc = Soc1111, DraftJobGroup = dummyDraftJobGroupModel01, PublishedJobGroup = null, }, new DeltaReportSocModel { Soc = Soc2222, DraftJobGroup = dummyDraftJobGroupModel02, PublishedJobGroup = dummyPublishedJobGroupModel02, }, new DeltaReportSocModel { Soc = Soc3333, DraftJobGroup = null, PublishedJobGroup = dummyPublishedJobGroupModel03, }, }, }; expectedGetSocResult = new FullDeltaReportModel { DeltaReportSocs = new List <DeltaReportSocModel> { new DeltaReportSocModel { Soc = Soc2222, DraftJobGroup = dummyDraftJobGroupModel02, PublishedJobGroup = dummyPublishedJobGroupModel02, }, }, }; }
public void SocDeltaServiceTestsDetermineDeltaIsSuccessful() { // Arrange const int expectedSocAdditionCount = 3; const int expectedSocUpdateCount = 1; const int expectedSocDeletionCount = 2; var fullDeltaReportModel = new FullDeltaReportModel { DeltaReportSocs = new List <DeltaReportSocModel> { new DeltaReportSocModel { Soc = 1234, State = DeltaReportState.Updated, PublishedJobGroup = new JobGroupModel(), DraftJobGroup = new JobGroupModel(), }, new DeltaReportSocModel { Soc = 1111, State = DeltaReportState.Addition, PublishedJobGroup = null, DraftJobGroup = new JobGroupModel(), }, new DeltaReportSocModel { Soc = 1112, State = DeltaReportState.Addition, PublishedJobGroup = null, DraftJobGroup = new JobGroupModel(), }, new DeltaReportSocModel { Soc = 1113, State = DeltaReportState.Addition, PublishedJobGroup = null, DraftJobGroup = new JobGroupModel(), }, new DeltaReportSocModel { Soc = 2221, State = DeltaReportState.Unchanged, PublishedJobGroup = new JobGroupModel(), DraftJobGroup = new JobGroupModel(), }, new DeltaReportSocModel { Soc = 3331, State = DeltaReportState.Deletion, PublishedJobGroup = new JobGroupModel(), DraftJobGroup = null, }, new DeltaReportSocModel { Soc = 3332, State = DeltaReportState.Deletion, PublishedJobGroup = new JobGroupModel(), DraftJobGroup = null, }, }, }; var publishedJobGroupToDeltaModel = new JobGroupToDeltaModel { Description = "this is the published description", }; var draftJobGroupToDelta = new JobGroupToDeltaModel { Description = "this is the draft description", }; A.CallTo(() => fakeMapper.Map <JobGroupToDeltaModel>(fullDeltaReportModel.DeltaReportSocs.First().PublishedJobGroup)).Returns(publishedJobGroupToDeltaModel); A.CallTo(() => fakeMapper.Map <JobGroupToDeltaModel>(fullDeltaReportModel.DeltaReportSocs.First().DraftJobGroup)).Returns(draftJobGroupToDelta); // Act socDeltaService.DetermineDelta(fullDeltaReportModel); // Assert A.CallTo(() => fakeMapper.Map <JobGroupToDeltaModel>(fullDeltaReportModel.DeltaReportSocs.First().PublishedJobGroup)).MustHaveHappenedOnceExactly(); A.CallTo(() => fakeMapper.Map <JobGroupToDeltaModel>(fullDeltaReportModel.DeltaReportSocs.First().DraftJobGroup)).MustHaveHappenedOnceExactly(); Assert.Equal(fullDeltaReportModel.DeltaReportSocs.Count, fullDeltaReportModel.SocImportedCount); Assert.Equal(expectedSocAdditionCount, fullDeltaReportModel.SocAdditionCount); Assert.Equal(expectedSocUpdateCount, fullDeltaReportModel.SocUpdateCount); Assert.Equal(expectedSocDeletionCount, fullDeltaReportModel.SocDeletionCount); }