Exemplo n.º 1
0
        /// <summary>
        /// Henter og opdaterer budgetkontoen.
        /// </summary>
        /// <param name="budgetkontoViewModel">ViewModel for budgetkontoen, der skal hentes og opdateres.</param>
        protected override void Execute(IBudgetkontoViewModel budgetkontoViewModel)
        {
            var  regnskabViewModel     = budgetkontoViewModel.Regnskab;
            Task dependencyCommandTask = null;

            if (_dependencyCommand.CanExecute(regnskabViewModel))
            {
                _dependencyCommand.Execute(regnskabViewModel);
                dependencyCommandTask = _dependencyCommand.ExecuteTask;
            }
            _isBusy = true;
            var task = _finansstyringRepository.BudgetkontoGetAsync(regnskabViewModel.Nummer, budgetkontoViewModel.Kontonummer, budgetkontoViewModel.StatusDato);

            ExecuteTask = task.ContinueWith(t =>
            {
                try
                {
                    if (dependencyCommandTask != null)
                    {
                        dependencyCommandTask.Wait();
                    }
                    HandleResultFromTask(t, budgetkontoViewModel, new List <IBudgetkontogruppeViewModel>(regnskabViewModel.Budgetkontogrupper), HandleResult);
                }
                finally
                {
                    _isBusy = false;
                }
            });
        }