Example #1
0
        public void UpdateAccounts(EventLog log)
        {
            var configuredClients = ConfigurationManager.AppSettings as NameValueCollection;

            if (configuredClients == null)
            {
                log.WriteEntry("Unable to load the configuration file.", EventLogEntryType.Warning, 13, 1);
                return;
            }

            if (configuredClients.Count == 0)
            {
                log.WriteEntry("No keys detected in configuration file.", EventLogEntryType.Warning, 14, 1);
                return;
            }

            foreach (var key in configuredClients.AllKeys)
            {
                string            configuredClient = configuredClients.GetValues(key).FirstOrDefault();
                EnterpriseSection clientConfig     = (EnterpriseSection)System.Configuration.ConfigurationManager.GetSection("Empresas/" + configuredClient);

                if (clientConfig == null)
                {
                    log.WriteEntry("Client configuration not found for Empresas/" + configuredClient + ".", EventLogEntryType.Warning, 15, 1);
                    continue;
                }

                Empresa empresa = PgDbCollector.GetCompanyByName(clientConfig.NombreEmpresa);
                log.WriteEntry("Client configuration found in database: " + clientConfig.NombreEmpresa + "; " + empresa.Ruta);

                if (empresa != null)
                {
                    log.WriteEntry("Payment codes found for " + clientConfig.NombreEmpresa + " as [" + clientConfig.CodigosPago + "]", EventLogEntryType.Information, 17, 1);
                    string[] abonos = clientConfig.CodigosPago.Split(',');


                    List <int> accounts = PgDbCollector.GetAccointIds(empresa.Id);
                    log.WriteEntry("Updating " + accounts.Count + " Accounts", EventLogEntryType.Information, 19, 1);

                    int connection = AdminPaqLib.dbLogIn("", empresa.Ruta);
                    if (connection == 0)
                    {
                        throw new Exception("No fue posible establecer la conexión con la base de datos de la empresa en la ruta: " + empresa.Ruta);
                    }

                    foreach (int accountId in accounts)
                    {
                        Account account = PgDbCollector.GetAccountById(accountId);
                        AdminPaqImpl.DownloadCollectable(account, abonos, connection);
                    }
                    accounts.Clear();
                    accounts = null;

                    AdminPaqLib.dbLogOut(connection);
                }
            }
        }