/// <summary> /// Henter alle nyheder til finansstyring. /// </summary> /// <param name="finansstyringRepository">Implementering af repository til finansstyring.</param> /// <returns>Nyheder til finansstyring.</returns> private static async Task <IEnumerable <INyhedModel> > FinansstyringsnyhederGetAsync(IFinansstyringRepository finansstyringRepository) { if (finansstyringRepository == null) { throw new ArgumentNullException(nameof(finansstyringRepository)); } List <INyhedModel> nyheder = new List <INyhedModel>(); try { DateTime statusDato = DateTime.Now; IFinansstyringKonfigurationRepository konfiguration = finansstyringRepository.Konfiguration; DateTime nyhederFromDate = statusDato.AddDays(konfiguration.DageForNyheder * -1); DateTime nyhederToDate = statusDato; foreach (IRegnskabModel regnskab in await finansstyringRepository.RegnskabslisteGetAsync()) { nyheder.AddRange((await finansstyringRepository.BogføringslinjerGetAsync(regnskab.Nummer, statusDato, konfiguration.AntalBogføringslinjer)).Where(m => m.Nyhedsudgivelsestidspunkt.Date.CompareTo(nyhederFromDate.Date) >= 0 && m.Nyhedsudgivelsestidspunkt.Date.CompareTo(nyhederToDate.Date) <= 0).ToList()); nyheder.AddRange((await finansstyringRepository.DebitorlisteGetAsync(regnskab.Nummer, statusDato)).Where(m => m.Nyhedsudgivelsestidspunkt.Date.CompareTo(nyhederFromDate.Date) >= 0 && m.Nyhedsudgivelsestidspunkt.Date.CompareTo(nyhederToDate.Date) <= 0).ToList()); nyheder.AddRange((await finansstyringRepository.KreditorlisteGetAsync(regnskab.Nummer, statusDato)).Where(m => m.Nyhedsudgivelsestidspunkt.Date.CompareTo(nyhederFromDate.Date) >= 0 && m.Nyhedsudgivelsestidspunkt.Date.CompareTo(nyhederToDate.Date) <= 0).ToList()); } return(nyheder); } catch (IntranetGuiOfflineRepositoryException) { throw; } catch (IntranetGuiRepositoryException) { return(nyheder); } }
/// <summary> /// Henter og opdaterer debitorlisten til et givent regnskab. /// </summary> /// <param name="viewModel">ViewModel for regnskabet, hvortil debitorlisten skal hentes og opdateres.</param> protected override void Execute(IRegnskabViewModel viewModel) { _isBusy = true; var konfiguration = _finansstyringRepository.Konfiguration; var task = _finansstyringRepository.DebitorlisteGetAsync(viewModel.Nummer, viewModel.StatusDato); ExecuteTask = task.ContinueWith(t => { try { var dageForNyheder = konfiguration.DageForNyheder; HandleResultFromTask(t, viewModel, dageForNyheder, HandleResult); } finally { _isBusy = false; } }); }