コード例 #1
0
        public static FinalOutput DeserializeToFinalOutput(string rawApiLayer, string rawExChangeRates)
        {
            FinalOutput finalOutput = new FinalOutput();

            finalOutput.ApiLayerAPI       = JsonConvert.DeserializeObject <ApiLayerAPI>(rawApiLayer);
            finalOutput.ExChangesRatesAPI = JsonConvert.DeserializeObject <ExChangeRatesAPI>(rawExChangeRates);

            return(finalOutput);
        }
コード例 #2
0
 public static void DumpJsonToFile(string path, FinalOutput finalJson)
 {
     try
     {
         string serialized = JsonConvert.SerializeObject(finalJson, Formatting.Indented);
         File.WriteAllText(path, serialized);
     }
     catch(Exception e)
     {
         Console.WriteLine("Error during serialization. Message: " + e.Message);
     }
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: ogendogen/GAV-Currency-Own
        public static void Main(string[] args)
        {
            Console.WriteLine("Press any key to start extracting process...");
            Console.ReadKey();

            try
            {
                Console.WriteLine("Starting integration");
                Console.WriteLine("Extraction started");
                Console.WriteLine("Establishing connection...");
                List <MediatedSchema> mediatedSchemas = Extractor.GetAllFromWeb().ToList();
                Console.WriteLine("Mediated schema objects deserialized");

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

                bool differentCurrency, differentDate;
                foreach (var mediated in mediatedSchemas)
                {
                    Validator.ValidateMediatedSchemaObject(mediated, out differentCurrency, out differentDate);
                    if (differentCurrency)
                    {
                        Console.WriteLine("Curriencies are different. Removing data");
                        continue;
                    }
                    if (differentDate)
                    {
                        Console.WriteLine("Dates are different. Removing data");
                        continue;
                    }

                    FinalOutput finalOutput = Transformator.TransformToOutput(mediated);
                    string      serialized  = Serializer.SerializeFinalOutput(finalOutput);
                    File.WriteAllText("../loader/transformed-" + mediated.API.@base + ".json", serialized);
                }

                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();
            }
        }
コード例 #4
0
        public static FinalOutput TransformToOutput(CurrencyExtractor.Models.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);
        }
コード例 #5
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();
            }
        }
コード例 #6
0
ファイル: BLogic.cs プロジェクト: asta96/FetchReceipients
        public string ProcessConfigJson(ConfigJson json, IOrganizationService service, string RegardinId)
        {
            Itracing.Trace("Inside processConfigJson");
            var _from    = json.From;
            var _to      = json.To;
            var _cc      = json.CC;
            var _bcc     = json.BCC;
            var template = json.Template;
            //from list
            List <ActivityPartyObj> fromactivityPartyObjs = new List <ActivityPartyObj>();

            foreach (var item in _from)
            {
                // output.FROM.list.AddRange()

                if (!string.IsNullOrEmpty(item.ActivityPartyRecordId))
                {
                    List <Guid>   recordIDlist = new List <Guid>();
                    Guid          UniqueId     = Guid.Empty;
                    List <string> IDstrings    = new List <string>();
                    IDstrings.AddRange(item.ActivityPartyRecordId.Split(','));
                    IDstrings.ForEach(IdString =>
                    {
                        if (Guid.TryParse(IdString, out UniqueId))
                        {
                            recordIDlist.Add(UniqueId);
                        }
                    });
                    fromactivityPartyObjs.AddRange(PopulateListActivityObj(recordIDlist, item.ActivityPartyEntityLogicalName, service));
                }

                else
                {
                    fromactivityPartyObjs.AddRange(PopulateListActivityObj(ExecuteFetchXml(item.FetchXML, service, RegardinId), item.ActivityPartyEntityLogicalName, service));
                }
            }

            //to list
            List <ActivityPartyObj> toactivityPartyObjs = new List <ActivityPartyObj>();

            foreach (var item in _to)
            {
                // output.FROM.list.AddRange()
                if (!string.IsNullOrEmpty(item.ActivityPartyRecordId))
                {
                    List <Guid> recordIDlist = new List <Guid>();
                    Guid        UniqueId     = Guid.Empty;

                    List <string> IDstrings = new List <string>();
                    IDstrings.AddRange(item.ActivityPartyRecordId.Split(','));
                    IDstrings.ForEach(IdString =>
                    {
                        if (Guid.TryParse(IdString, out UniqueId))
                        {
                            recordIDlist.Add(UniqueId);
                        }
                    });
                    toactivityPartyObjs.AddRange(PopulateListActivityObj(recordIDlist, item.ActivityPartyEntityLogicalName, service));
                }

                else
                {
                    toactivityPartyObjs.AddRange(PopulateListActivityObj(ExecuteFetchXml(item.FetchXML, service, RegardinId), item.ActivityPartyEntityLogicalName, service));
                }
            }
            //cc list
            List <ActivityPartyObj> ccactivityPartyObjs = new List <ActivityPartyObj>();

            foreach (var item in _cc)
            {
                // output.FROM.list.AddRange()
                if (!string.IsNullOrEmpty(item.ActivityPartyRecordId))
                {
                    List <Guid> recordIDlist = new List <Guid>();
                    Guid        UniqueId     = Guid.Empty;

                    List <string> IDstrings = new List <string>();
                    IDstrings.AddRange(item.ActivityPartyRecordId.Split(','));
                    IDstrings.ForEach(IdString =>
                    {
                        if (Guid.TryParse(IdString, out UniqueId))
                        {
                            recordIDlist.Add(UniqueId);
                        }
                    });
                    ccactivityPartyObjs.AddRange(PopulateListActivityObj(recordIDlist, item.ActivityPartyEntityLogicalName, service));
                }

                else
                {
                    ccactivityPartyObjs.AddRange(PopulateListActivityObj(ExecuteFetchXml(item.FetchXML, service, RegardinId), item.ActivityPartyEntityLogicalName, service));
                }
            }

            //bcc list
            List <ActivityPartyObj> bccactivityPartyObjs = new List <ActivityPartyObj>();

            foreach (var item in _bcc)
            {
                // output.FROM.list.AddRange()
                if (!string.IsNullOrEmpty(item.ActivityPartyRecordId))
                {
                    List <Guid> recordIDlist = new List <Guid>();
                    Guid        UniqueId     = Guid.Empty;

                    List <string> IDstrings = new List <string>();
                    IDstrings.AddRange(item.ActivityPartyRecordId.Split(','));
                    IDstrings.ForEach(IdString =>
                    {
                        if (Guid.TryParse(IdString, out UniqueId))
                        {
                            recordIDlist.Add(UniqueId);
                        }
                    });
                    bccactivityPartyObjs.AddRange(PopulateListActivityObj(recordIDlist, item.ActivityPartyEntityLogicalName, service));
                }

                else
                {
                    bccactivityPartyObjs.AddRange(PopulateListActivityObj(ExecuteFetchXml(item.FetchXML, service, RegardinId), item.ActivityPartyEntityLogicalName, service));
                }
            }


            List <Guid> TemplateIds = new List <Guid>();

            foreach (var id in template)
            {
                Guid itemId = Guid.Empty;
                if (Guid.TryParse(id.TemplateId, out itemId))
                {
                    TemplateIds.Add(itemId);
                }
            }
            FinalOutput output = new FinalOutput()
            {
                TEMPLATE = TemplateIds,
                FROM     = fromactivityPartyObjs,
                TO       = toactivityPartyObjs,
                CC       = ccactivityPartyObjs,
                BCC      = bccactivityPartyObjs
            };
            string x = Serializer.SerializeToJson(output);

            Itracing.Trace("x" + x);
            return(x);
        }
コード例 #7
0
 public static string SerializeFinalOutput(FinalOutput finalOutput)
 {
     return(JsonConvert.SerializeObject(finalOutput, Formatting.Indented));
 }
コード例 #8
0
        private async void button_Click(object sender, RoutedEventArgs e)
        {
            if (!Directory.Exists(textBox1.Text))
            {
                MessageBox.Show("Output directory does not exist!", "Warning", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            if (!IsRunning)
            {
                SaveConfig();
                IsRunning  = true;
                outputPath = textBox1.Text;
                await Task.Run(() =>
                {
                    try
                    {
                        AppendLog("Starting integration");
                        AppendLog("Extraction started");
                        AppendLog("Establishing connection...");
                        var progress = new Progress <string>(value => AppendLog(value));
                        List <MediatedSchema> mediatedSchemas = Extractor.GetAllFromWeb(progress).ToList();
                        AppendLog("Mediated schema objects deserialized");

                        AppendLog("Extraction successful");
                        AppendLog("Starting transformation...");

                        bool differentCurrency, differentDate;
                        foreach (var mediated in mediatedSchemas)
                        {
                            Validator.ValidateMediatedSchemaObject(mediated, out differentCurrency, out differentDate);
                            if (differentCurrency)
                            {
                                AppendLog("Curriencies are different. Removing data");
                                continue;
                            }
                            if (differentDate)
                            {
                                AppendLog("Dates are different. Removing data");
                                continue;
                            }

                            FinalOutput finalOutput = Transformator.TransformToOutput(mediated);
                            string serialized       = Serializer.SerializeFinalOutput(finalOutput);
                            File.WriteAllText(outputPath + "\\transformed-" + mediated.API.@base + ".json", serialized);
                        }

                        AppendLog("Transformation completed");
                        AppendLog("Integration finished successfully");
                    }
                    catch (Exception ex)
                    {
                        AppendLog("Exception occured. Logging details...");
                        Logger.LogException("ErrorLogs.log", ex);
                        AppendLog("Logging finished. Press any key to stop application");
                    }
                    IsRunning = false;
                });
            }
            else
            {
                MessageBox.Show("Process already running! Please wait.", "Warning", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }