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); } } }