public async Task <List <EasSubmissionValues> > GetEasSubmissionValuesAsync(IReportServiceContext reportServiceContext, CancellationToken cancellationToken) { await _getLastEastUpdateLock.WaitAsync(cancellationToken); string UkPrn = reportServiceContext.Ukprn.ToString(); var allPaymentTypes = GetAllPaymentTypes(); try { cancellationToken.ThrowIfCancellationRequested(); List <EasSubmissionValues> easSubmissionValues = new List <EasSubmissionValues>(); var easDbContext = new EasdbContext(_easConfiguration.EasConnectionString); var easSubmission = easDbContext.EasSubmission.Where(x => x.Ukprn == UkPrn) .OrderByDescending(x => x.UpdatedOn).FirstOrDefault(); if (easSubmission != null) { var easSubmissionValuesList = easDbContext.EasSubmissionValues.Where(x => x.SubmissionId == easSubmission.SubmissionId).ToList(); easSubmissionValues = easSubmissionValuesList.Select(x => new EasSubmissionValues() { PaymentTypeName = GetPaymentNameById(x.PaymentId, allPaymentTypes), PaymentId = x.PaymentId, CollectionPeriod = x.CollectionPeriod, PaymentValue = x.PaymentValue }).ToList(); } _loadedEasSubmissionValuesList = easSubmissionValues; } finally { _getLastEastUpdateLock.Release(); } return(_loadedEasSubmissionValuesList); }
public async Task <DateTime> GetLastEasUpdate(int ukprn, CancellationToken cancellationToken) { await _getLastEastUpdateLock.WaitAsync(cancellationToken); try { cancellationToken.ThrowIfCancellationRequested(); if (!_loadedLastEasUpdate.ContainsKey(ukprn)) { _loadedLastEasUpdate[ukprn] = DateTime.MinValue; } var easDbContext = new EasdbContext(_easConfiguration.EasConnectionString); var easSubmission = easDbContext.EasSubmission.Where(x => x.Ukprn == ukprn.ToString()) .OrderByDescending(x => x.UpdatedOn).FirstOrDefault(); _loadedLastEasUpdate[ukprn] = easSubmission?.UpdatedOn ?? DateTime.MinValue; } finally { _getLastEastUpdateLock.Release(); } return(_loadedLastEasUpdate[ukprn]); }
public List <EasPaymentType> GetAllPaymentTypes() { var easDbContext = new EasdbContext(_easConfiguration.EasConnectionString); var paymentTypesList = easDbContext.PaymentTypes.OrderBy(s => s.PaymentId).ThenBy(s => s.PaymentName).ToList(); List <EasPaymentType> easPaymentTypeList = paymentTypesList.Select(x => x.ToEasPaymentTypes()).ToList(); return(easPaymentTypeList); }