protected override void OnStart(string[] args) { var version = System.Configuration.ConfigurationManager.AppSettings["version"]; logToFile.Log($"OnStart {version}"); timer.Start(); //Run the first time on start Timer_Elapsed(this, null); }
public void RunIntegracaoFormulas() { logToFile.Log(">>> Iniciando integração das formulas..."); //Faz a leitura da data do ultimo item sincronizado var jonStoragePath = System.Configuration.ConfigurationManager.AppSettings["jonStoragePath"]; var model = JsonStorageHelper.Read <StorageModel>(jonStoragePath); //Se nao tiver data do ultimo item sincronizado, utiliza a data de 1 ano atrás var dataFormula = model.DtUltimaFormulaSincronizada.GetValueOrDefault(DateTime.UtcNow.AddDays(-1 * periodoCargaInicialFormulas).Date); //Obtem as formulas var lstFormulas = GetFormulas(dataFormula, model.IdsFormulaSincronizadasDoDia); if (lstFormulas.Any()) { //Envia as formulas para API do PharmaRocket em varios pacotes menores PushPacotes(tamanhoPacote, lstFormulas, ( lstPacote => PushFormulas(idFarmaciaIntegracao, lstPacote) )).Wait(); //Se der tudo certo no envio, salva a data do ultimo item sincronizado var dataUltimaFormula = lstFormulas .Select(s => s.DataAlteracao) .OrderByDescending(o => o) .FirstOrDefault(); //Como a data das formulas não possuem hora, armazena o ids das formulas sincronizadas no dia para não ficar enviando toda hora para a API var ids = lstFormulas .Where(w => w.DataAlteracao.GetValueOrDefault().Date == dataUltimaFormula.GetValueOrDefault().Date) .Select(s => s.Id.ToString()) .ToList(); model.IdsFormulaSincronizadasDoDia = ids; model.DtUltimaFormulaSincronizada = dataUltimaFormula; JsonStorageHelper.Write(jonStoragePath, model); logToFile.Log(">>> Integração das formulas executada com sucesso."); } else { logToFile.Log(">>> Nenhuma formula para sincronizar."); } }