/// <summary> /// Call it from ShowWindows /// </summary> /// <returns></returns> private bool ValidateInputSchema() { if (!IsConnected()) { MessageService.ShowError("Data Connection Error", "Data Filter module input node is not connected with any other module"); return(false); } string prevModName = InputModule.DisplayName; var workFlow = InputModule.GetState(InputModule); var state = ((OutputNode)this.InputNode.Connector).State; var schema = ((OutputNode)this.InputNode.Connector).GetSchema(); if (state == null) { MessageService.ShowError("Data Connection Error", $"In Module {prevModName} passed invalid state object"); return(false); } /* * if (!File.Exists(state.InputPath)) * { * MessageService.ShowError("Data Connection Error", $"In Module {prevModName} Sate has invalid input path"); * return false; * } */ if (state.Schema == null) { MessageService.ShowError("Data Connection Error", $"In Module {prevModName} Sate has invalid Schema"); return(false); } return(true); }
private bool ValidateSchemaPass() { if (InputNode.IsConnected() == false) { MessageService.ShowError("DataSorter Data Connection Error", "Data Sorter module input node is not connected with any other module"); return(false); } string prevModName = InputModule.DisplayName; var workFlow = InputModule.GetState(InputModule); var state = ((OutputNode)this.InputNode.Connector).State; var schema = ((OutputNode)this.InputNode.Connector).GetSchema(); if (state == null) { MessageService.ShowError("DataSorter Data Connection Error", $"In Module {prevModName} passed invalid state object"); return(false); } if (state.Schema == null) { MessageService.ShowError("DataSorter Data Connection Error", $"In Module {prevModName} Sate has invalid Schema"); return(false); } return(true); }
/// <summary> /// View data menu workflow /// </summary> private void ShowParameterWindow() { if (!ValidateInputSchema()) { return; } ModulePageBorder.BorderBrush = System.Windows.Media.Brushes.Blue; ModuleState state1 = null; try { var workFlow = InputModule.GetState(InputModule); state1 = ((OutputNode)this.InputNode.Connector).State; var schema = ((OutputNode)this.InputNode.Connector).GetSchema(); MainWindow mainWindowClass = new MainWindow(); mainWindowClass.DFModule = this; //1. Load Schema mainWindowClass.LoadSchema(state1.Schema); //2.Load Filter Fields foreach (var item in FilterFields) { mainWindowClass.AddFilterField(item); } //3. Show dialog var result = mainWindowClass.ShowDialog(); //4. Sync back dialog changes if (result.HasValue && result.Value) { //Sync back Filter fields this.FilterFields.Clear(); this.FilterFields.AddRange(mainWindowClass.FilterFields); ParameterCount = this.FilterFields.Count; } this.InputNode.State = state1; var outputFile = DataDir + "DataFilter_" + DisplayName + "_" + DateTime.Now.ToString("yyMMddHHmmssfff") + ".xml"; this.OutputNode.State.DataFilePath = outputFile; this.OutputNode.State.Schema = state1.Schema; this.OutputNode.State.TextEncoding = state1.TextEncoding; this.OutputNode.State.InputIsSchema = state1.InputIsSchema; if (this.OutputNode2 != null) { var outputFile2 = DataDir + "DataFilter_" + DisplayName + "_" + DateTime.Now.ToString("yyMMddHHmmssff") + ".xml"; this.OutputNode2.State.DataFilePath = outputFile2; this.OutputNode2.State.Schema = state1.Schema; this.OutputNode2.State.TextEncoding = state1.TextEncoding; this.OutputNode2.State.InputIsSchema = state1.InputIsSchema; } } catch (Exception ex) { if (state1 == null) { logger.Error(ex, $"Data loading error in module class"); } else { logger.Error(ex, $"XML Loading Error {state1.DataFilePath}"); } } }
/// <summary> /// View data menu workflow /// </summary> private void ShowParameterWindow() { if (!ValidateSchemaPass()) { return; } ModulePageBorder.BorderBrush = System.Windows.Media.Brushes.Blue; ModuleState state = null; try { var workFlow = InputModule.GetState(InputModule); state = ((OutputNode)this.InputNode.Connector).State; var schema = ((OutputNode)this.InputNode.Connector).GetSchema(); MainWindow mainWindowClass = new MainWindow(); //1. Load Schema mainWindowClass.LoadSchema(state.Schema); logger.Info("Loading data from xml file {0}", state.DataFilePath); //2. Set Input Data file mainWindowClass.WindowViewModel.InputDataFile = state.DataFilePath; var outputFile = DataDir + "DataSorter_" + DisplayName + "_" + DateTime.Now.ToString("MMddHHmmssfff") + ".xml"; //3. mainWindowClass.WindowViewModel.OutputDataFile = outputFile; // Enabling panel if needed: if (SortingFields.Any()) { mainWindowClass.WindowViewModel.IsAnyFieldSorted = true; } //4.Load Sorting Fields foreach (var item in SortingFields) { mainWindowClass.WindowViewModel.SortingFields.Add(item); } mainWindowClass.ShowDialog(); //Sync back sorting fields this.SortingFields.Clear(); this.SortingFields.AddRange(mainWindowClass.WindowViewModel.SortingFields.ToList()); ParameterCount = this.SortingFields.Count; this.InputNode.State = state; this.OutputNode.State.DataFilePath = mainWindowClass.WindowViewModel.OutputDataFile; this.OutputNode.State.Schema = state.Schema; this.OutputNode.State.TextEncoding = state.TextEncoding; this.OutputNode.State.InputIsSchema = state.InputIsSchema; } catch (Exception ex) { if (state == null) { logger.Error(ex, $"Data loading error in module class"); } else { logger.Error(ex, $"XML Loading Error {state.DataFilePath}"); } } }