Esempio n. 1
0
        /// <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;
                }
            });
        }