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
            });
        }