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); }
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); } }
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(); } }
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); }
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(); } }
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); }
public static string SerializeFinalOutput(FinalOutput finalOutput) { return(JsonConvert.SerializeObject(finalOutput, Formatting.Indented)); }
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); } }