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.");
            }
        }
        void RunIntegracaoOrcamentos()
        {
            logToFile.Log(">>> Iniciando integração dos orçamentos...");

            //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 60 dias atrás
            var dataOrcamento = model.DtUltimoOrcamentoSincronizado.GetValueOrDefault(DateTime.UtcNow.AddDays(-1 * periodoCargaInicialOrcamentos).Date);

            //Busca os registros mais recentes que data do ultimo item sincronizado
            var lstOrcamentos = GetOrcamentos(dataOrcamento);

            //Envia os registros para API do PharmaRocket em vários pacotes menores
            if (lstOrcamentos.Any())
            {
                PushPacotes(tamanhoPacote, lstOrcamentos, (
                                lstPacote => PushOrcamentos(idFarmaciaIntegracao, lstPacote)
                                )).Wait();

                //Se der tudo certo no envio, salva a data do ultimo item sincronizado
                var dataUltimoOrcamento = lstOrcamentos
                                          .Select(s => s.DataAlteracao)
                                          .OrderByDescending(o => o)
                                          .FirstOrDefault();

                model.DtUltimoOrcamentoSincronizado = dataUltimoOrcamento;
                JsonStorageHelper.Write(jonStoragePath, model);

                logToFile.Log(">>> Integração dos orçamentos executada com sucesso.");
            }
            else
            {
                logToFile.Log(">>> Nenhum orçamento para sincronizar.");
            }
        }