public async Task <IEnumerable <NotificationAttentionSummary> > GetByCompetentAuthority(UKCompetentAuthority competentAuthority) { var result = await context.NotificationAssessments .Where(x => x.Status == NotificationStatus.DecisionRequiredBy || x.Status == NotificationStatus.Unlocked || x.Status == NotificationStatus.Reassessment) .Join(context.NotificationApplications, assessment => assessment.NotificationApplicationId, notification => notification.Id, (a, n) => new { Assessment = a, Notification = n }) .Where(x => x.Notification.CompetentAuthority == competentAuthority && x.Assessment.Dates.AcknowledgedDate.HasValue == true) .Select(x => new { x.Notification.Id, x.Notification.NotificationNumber, x.Assessment.Dates.NameOfOfficer, x.Assessment.Dates.AcknowledgedDate }).ToArrayAsync(); return(result.Select(x => NotificationAttentionSummary.Load(x.Id, x.NotificationNumber, x.NameOfOfficer, x.AcknowledgedDate.Value))); }
private async Task <NotificationAttentionSummaryTableData> GetTableDataFromSummary(NotificationAttentionSummary summary) { var assessment = await notificationAssessmentRepository.GetByNotificationId(summary.NotificationId); var notification = await notificationApplicationRepository.GetById(summary.NotificationId); var decisionRequiredBy = await decisionRequiredByCalculator.GetDecisionRequiredByDate(notification, assessment); var daysRemaining = daysRemainingCalculator.Calculate(decisionRequiredBy.Value); return(new NotificationAttentionSummaryTableData { NotificationId = summary.NotificationId, NotificationNumber = summary.NotificationNumber, Officer = summary.Officer, AcknowledgedDate = summary.AcknowledgedDate, DecisionRequiredDate = decisionRequiredBy.Value, DaysRemaining = daysRemaining }); }