示例#1
0
        static void Main(string[] args)
        {
            string text = System.IO.File.ReadAllText(Location.ConfLocation);
            Conf   conf = JsonConvert.DeserializeObject <Conf>(text);

            Core core = new Core();

            DateTime Date    = new DateTime(conf.YearStart, conf.MonthStart, 1);
            DateTime DateEnd = new DateTime(conf.YearEnd, conf.MonthEnd, 1);

            while (DateTime.Compare(Date, DateEnd) <= 0)
            {
                foreach (Uf uf in conf.Ufs)
                {
                    // Exports

                    Console.WriteLine($"Extracting Year:{Date.Year.ToString()} Month:{Date.Month.ToString("00")} UF:{uf.Name}");

                    UrlParameters exportParameters = new UrlParameters();
                    exportParameters.ImportExport   = "1";
                    exportParameters.MonthStart     = Date.Month.ToString("00");
                    exportParameters.MonthEnd       = Date.Month.ToString("00");
                    exportParameters.YearEnd        = Date.Year.ToString();
                    exportParameters.YearStart      = Date.Year.ToString();
                    exportParameters.UfId           = uf.Id;
                    exportParameters.MonthStartName = core.Months[Date.Month];
                    exportParameters.MonthEndName   = core.Months[Date.Month];

                    string ExportUrl = conf.ApiUrl + ComexClient.BuildUrlParameters(exportParameters);

                    try
                    {
                        Root   ExportData = ComexClient.getData(ExportUrl);
                        string ExportFile = System.IO.Path.Combine(conf.ExtractFolder, "Exports", Date.Year.ToString(), Date.Month.ToString("00"), $"{uf.Name}_{Date.Year.ToString()}_{Date.Month.ToString("00")}");
                        ComexClient.SaveFile(ExportData, ExportFile);
                    }
                    catch (Exception e)
                    {
                        core.Errors.Add(new ErrorLog()
                        {
                            Year          = Date.Year.ToString(),
                            Month         = Date.Month.ToString("00"),
                            UF            = uf.Name,
                            Export_Import = "Exports",
                            ErrorMsg      = e.Message
                        });
                    }


                    // Imports

                    UrlParameters importParameters = new UrlParameters();
                    importParameters.ImportExport   = "2";
                    importParameters.MonthStart     = Date.Month.ToString("00");
                    importParameters.MonthEnd       = Date.Month.ToString("00");
                    importParameters.YearEnd        = Date.Year.ToString();
                    importParameters.YearStart      = Date.Year.ToString();
                    importParameters.UfId           = uf.Id;
                    importParameters.MonthStartName = core.Months[Date.Month];
                    importParameters.MonthEndName   = core.Months[Date.Month];

                    string ImportUrl = conf.ApiUrl + ComexClient.BuildUrlParameters(importParameters);

                    try
                    {
                        Root   ImportData = ComexClient.getData(ImportUrl);
                        string ImportFile = System.IO.Path.Combine(conf.ExtractFolder, "Imports", Date.Year.ToString(), Date.Month.ToString("00"), $"{uf.Name}_{Date.Year.ToString()}_{Date.Month.ToString("00")}");
                        ComexClient.SaveFile(ImportData, ImportFile);
                    }

                    catch (Exception e)
                    {
                        core.Errors.Add(new ErrorLog()
                        {
                            Year          = Date.Year.ToString(),
                            Month         = Date.Month.ToString("00"),
                            UF            = uf.Name,
                            Export_Import = "Imports",
                            ErrorMsg      = e.Message
                        });
                    }
                }

                Date.AddMonths(1);
            }


            core.SaveErrorLog(System.IO.Path.Combine(conf.LogFolder, "Errors.txt"));

            Console.WriteLine("Finished");
        }
 public static string BuildUrlParameters(UrlParameters urlParameters)
 {
     return($"?filter=%7B%22yearStart%22:%22{urlParameters.YearStart}%22,%22yearEnd%22:%22{urlParameters.YearEnd}%22,%22typeForm%22:{urlParameters.ImportExport},%22typeOrder%22:1,%22filterList%22:%5B%7B%22id%22:%22noUf%22,%22text%22:%22UF%20do%20Produto%22,%22route%22:%22/pt/location/states%22,%22type%22:%221%22,%22group%22:%22gerais%22,%22groupText%22:%22Gerais%22,%22hint%22:%22fieldsForm.general.noUf.description%22,%22placeholder%22:%22UFs%20do%20Produto%22%7D%5D,%22filterArray%22:%5B%7B%22item%22:%5B%22{urlParameters.UfId}%22%5D,%22idInput%22:%22noUf%22%7D%5D,%22rangeFilter%22:%5B%5D,%22detailDatabase%22:%5B%7B%22id%22:%22noPaispt%22,%22text%22:%22Pa%C3%ADs%22%7D,%7B%22id%22:%22noUf%22,%22text%22:%22UF%20do%20Produto%22%7D,%7B%22id%22:%22noSh2pt%22,%22text%22:%22Cap%C3%ADtulo%20(SH2)%22,%22parentId%22:%22coSh2%22,%22parent%22:%22Codigo%20SH2%22%7D,%7B%22id%22:%22noNcmpt%22,%22text%22:%22NCM%20-%20Nomenclatura%20Comum%20do%20Mercosul%22,%22parentId%22:%22coNcm%22,%22parent%22:%22C%C3%B3digo%20NCM%22%7D,%7B%22id%22:%22noSh4pt%22,%22text%22:%22Posi%C3%A7%C3%A3o%20(SH4)%22,%22parentId%22:%22coSh4%22,%22parent%22:%22Codigo%20SH4%22%7D,%7B%22id%22:%22noSh6pt%22,%22text%22:%22Subposi%C3%A7%C3%A3o%20(SH6)%22,%22parentId%22:%22coSh6%22,%22parent%22:%22Codigo%20SH6%22%7D,%7B%22id%22:%22noBlocopt%22,%22text%22:%22Bloco%20Econ%C3%B4mico%22%7D,%7B%22id%22:%22noUrf%22,%22text%22:%22URF%22%7D%5D,%22monthDetail%22:false,%22metricFOB%22:true,%22metricKG%22:false,%22metricStatistic%22:false,%22monthStart%22:%22{urlParameters.MonthStart}%22,%22monthEnd%22:%22{urlParameters.MonthEnd}%22,%22formQueue%22:%22general%22,%22langDefault%22:%22pt%22,%22monthStartName%22:%22{urlParameters.MonthStartName}%22,%22monthEndName%22:%22{urlParameters.MonthEndName}%22%7D");
 }