public override void Execute(Task task)
        {
            try
            {
                if (_settings.IsDemo == false)
                {
                    base.Execute(task);
                    return;
                }

                foreach (Client client in _clientDataService.GetAllClients())
                {
                    List <Transaction> transactions = _transactionsDataService.GetTransactions(client.ID);
                    foreach (Transaction transaction in transactions)
                    {
                        if (transaction.Owner == "User")
                        {
                            _transactionsDataService.DeleteTransaction(transaction.ID, client.ID);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Serilog.Log.Logger?.Error(ex, "Demo Clean Down Failed with error: {ex.Message}");
            }

            base.Execute(task);
        }
        public void Load()
        {
            var clients = _clientDataService.GetAllClients();

            Clients.Clear();

            foreach (var client in clients)
            {
                Clients.Add(client);
            }
        }
        public void Run(string clientId = null, string accountId = null)
        {
            try
            {
                foreach (Client client in _clientDataService.GetAllClients())
                {
                    if (!string.IsNullOrEmpty(clientId) && clientId != client.ID)
                    {
                        continue;
                    }

                    List <Transaction> transactions = string.IsNullOrEmpty(accountId) ? _transactionsDataService.GetTransactions(client.ID) : _transactionsDataService.GetTransactions(client.ID).Where(t => t.AccountID == accountId).ToList();
                    Parallel.ForEach(transactions, t => CalculateLogo(ref t));
                    transactions.Where(t => !string.IsNullOrEmpty(t.Logo)).ToList().ForEach(t => _transactionsDataService.UpdateTransactionLogo(t.ID, t.Logo));
                }
            }
            catch (Exception ex)
            {
                Serilog.Log.Logger?.Error(ex, "Logo Calculator Failed with error: {ex.Message}");
            }
        }