Ejemplo n.º 1
0
        public async Task <bool> Import(string login, string password, int userId)
        {
            bool retVal = false;

            if (string.IsNullOrWhiteSpace(login) || string.IsNullOrWhiteSpace(password))
            {
                return(retVal);
            }
            _repository.Login    = login;
            _repository.Password = password;
            _logger.Info(string.Format("Import starts at {0}", DateTime.Now));
            try
            {
                var accounts = await _repository.GetAccounts(userId);

                if (accounts.Count() > 0)
                {
                    _accounts.Create(accounts);
                    accounts = _accounts.ItemsList.Where(x => accounts.Any(y => y.Number == x.Number)).ToList();
                    OnProgressChanged(4, "Загружены данные о квартирах");
                    decimal currProc = 5;
                    await foreach ((var bill, var count, var curr) in _repository.GetBills(accounts, _services.ItemsList))
                    {
                        _bills.Create(new List <Common.Bill>()
                        {
                            bill
                        });
                        OnProgressChanged(currProc, bill.Name);
                        currProc += (decimal)96 / count;
                    }
                    retVal = true;
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex.Message, ex);
                return(false);
            }
            _logger.Info(string.Format("Import finish at {0}", DateTime.Now));
            return(retVal);
        }