Пример #1
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Press any key to start extracting process...");
            Console.ReadKey();

            try
            {
                Console.WriteLine("Starting extraction...");
                MediatedSchema finalOutput = Extractor.GetOutputFromFile("live.json", "latest.json");
                Console.WriteLine("FinalOutput object deserialized");

                Console.WriteLine("Writing to file");
                JsonDumper.DumpJsonToFile("final.json", finalOutput);

                Console.WriteLine("Extraction successful");
                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception occured. Logging details...");
                Logger.LogException("ErrorLogs.log", e);
                Console.WriteLine("Logging finished. Press any key to stop application");
                Console.ReadKey();
            }
        }
Пример #2
0
        public static void ValidateMediatedSchemaObject(MediatedSchema mediatedSchemaObject, out bool differentCurrency, out bool differentDate)
        {
            if (mediatedSchemaObject.API.@base != mediatedSchemaObject.APIV4.@base)
            {
                differentCurrency = true;
            }
            else
            {
                differentCurrency = false;
            }

            if (mediatedSchemaObject.API.date != mediatedSchemaObject.APIV4.date)
            {
                DateTime APIDT   = DateTime.Parse(mediatedSchemaObject.API.date);
                DateTime APIV4DT = DateTime.Parse(mediatedSchemaObject.APIV4.date);

                if (APIDT.AddDays(1.0) == APIV4DT)
                {
                    differentDate = false;
                }
                else
                {
                    differentDate = true;
                }
            }
            else
            {
                differentDate = false;
            }
        }
Пример #3
0
        public static MediatedSchema DeserializeToMediatedSchema(string rawApiJson, string rawAPIV4Json)
        {
            MediatedSchema finalOutput = new MediatedSchema();

            finalOutput.API   = JsonConvert.DeserializeObject <API>(rawApiJson);
            finalOutput.APIV4 = JsonConvert.DeserializeObject <APIV4>(rawAPIV4Json);

            return(finalOutput);
        }
Пример #4
0
 public static void DumpJsonToFile(string path, MediatedSchema finalJson)
 {
     try
     {
         string serialized = JsonConvert.SerializeObject(finalJson, Formatting.Indented);
         File.WriteAllText(path, serialized);
     }
     catch (Exception e)
     {
         Console.WriteLine("Error during serialization. Message: " + e.Message);
     }
 }
Пример #5
0
        public static FinalOutput TransformToOutput(MediatedSchema mediated)
        {
            FinalOutput output = new FinalOutput();

            output.Currency         = mediated.API.@base;
            output.Date             = mediated.API.date;
            output.TargetCurrencies = new RatesFinal();

            output.TargetCurrencies.CAD = Average(mediated.API.rates.CAD, mediated.APIV4.rates.CAD);
            output.TargetCurrencies.HKD = Average(mediated.API.rates.HKD, mediated.APIV4.rates.HKD);
            output.TargetCurrencies.ISK = Average(mediated.API.rates.ISK, mediated.APIV4.rates.ISK);
            output.TargetCurrencies.PHP = Average(mediated.API.rates.PHP, mediated.APIV4.rates.PHP);
            output.TargetCurrencies.DKK = Average(mediated.API.rates.DKK, mediated.APIV4.rates.DKK);
            output.TargetCurrencies.HUF = Average(mediated.API.rates.HUF, mediated.APIV4.rates.HUF);
            output.TargetCurrencies.CZK = Average(mediated.API.rates.CZK, mediated.APIV4.rates.CZK);
            output.TargetCurrencies.GBP = Average(mediated.API.rates.GBP, mediated.APIV4.rates.GBP);
            output.TargetCurrencies.RON = Average(mediated.API.rates.RON, mediated.APIV4.rates.RON);
            output.TargetCurrencies.SEK = Average(mediated.API.rates.SEK, mediated.APIV4.rates.SEK);
            output.TargetCurrencies.IDR = Average(mediated.API.rates.IDR, mediated.APIV4.rates.IDR);
            output.TargetCurrencies.INR = Average(mediated.API.rates.INR, mediated.APIV4.rates.INR);
            output.TargetCurrencies.BRL = Average(mediated.API.rates.BRL, mediated.APIV4.rates.BRL);
            output.TargetCurrencies.RUB = Average(mediated.API.rates.RUB, mediated.APIV4.rates.RUB);
            output.TargetCurrencies.HRK = Average(mediated.API.rates.HRK, mediated.APIV4.rates.HRK);
            output.TargetCurrencies.JPY = Average(mediated.API.rates.JPY, mediated.APIV4.rates.JPY);
            output.TargetCurrencies.THB = Average(mediated.API.rates.THB, mediated.APIV4.rates.THB);
            output.TargetCurrencies.CHF = Average(mediated.API.rates.CHF, mediated.APIV4.rates.CHF);
            output.TargetCurrencies.EUR = Average(mediated.API.rates.EUR, mediated.APIV4.rates.EUR);
            output.TargetCurrencies.MYR = Average(mediated.API.rates.MYR, mediated.APIV4.rates.MYR);
            output.TargetCurrencies.BGN = Average(mediated.API.rates.BGN, mediated.APIV4.rates.BGN);
            output.TargetCurrencies.TRY = Average(mediated.API.rates.TRY, mediated.APIV4.rates.TRY);
            output.TargetCurrencies.CNY = Average(mediated.API.rates.CNY, mediated.APIV4.rates.CNY);
            output.TargetCurrencies.NOK = Average(mediated.API.rates.NOK, mediated.APIV4.rates.NOK);
            output.TargetCurrencies.NZD = Average(mediated.API.rates.NZD, mediated.APIV4.rates.NZD);
            output.TargetCurrencies.ZAR = Average(mediated.API.rates.ZAR, mediated.APIV4.rates.ZAR);
            output.TargetCurrencies.USD = Average(mediated.API.rates.USD, mediated.APIV4.rates.USD);
            output.TargetCurrencies.MXN = Average(mediated.API.rates.MXN, mediated.APIV4.rates.MXN);
            output.TargetCurrencies.SGD = Average(mediated.API.rates.SGD, mediated.APIV4.rates.SGD);
            output.TargetCurrencies.AUD = Average(mediated.API.rates.AUD, mediated.APIV4.rates.AUD);
            output.TargetCurrencies.ILS = Average(mediated.API.rates.ILS, mediated.APIV4.rates.ILS);
            output.TargetCurrencies.KRW = Average(mediated.API.rates.KRW, mediated.APIV4.rates.KRW);
            output.TargetCurrencies.PLN = Average(mediated.API.rates.PLN, mediated.APIV4.rates.PLN);

            return(output);
        }
Пример #6
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Press any key to start extracting process...");
            Console.ReadKey();

            try
            {
                Console.WriteLine("Starting integration...");
                MediatedSchema mediated = Extractor.GetOutputFromWeb("EUR");
                Console.WriteLine("Mediated schema object deserialized");

                Console.WriteLine("Extraction successful");
                Console.WriteLine("Starting transformation...");

                bool differentCurrency, differentDate;
                Validator.ValidateMediatedSchemaObject(mediated, out differentCurrency, out differentDate);
                if (differentCurrency)
                {
                    Console.WriteLine("Curriencies are different. Validation failed. Stopping.");
                    Console.ReadKey();
                    return;
                }
                if (differentDate)
                {
                    Console.WriteLine("Dates are different. Validation failed. Stopping.");
                    Console.ReadKey();
                    return;
                }

                FinalOutput finalOutput = Transformator.TransformToOutput(mediated);
                string      serialized  = Serializer.SerializeFinalOutput(finalOutput);
                Console.WriteLine("Transformation completed");

                Console.ReadKey();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception occured. Logging details...");
                Logger.LogException("ErrorLogs.log", e);
                Console.WriteLine("Logging finished. Press any key to stop application");
                Console.ReadKey();
            }
        }