/// <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);
        }
Example #2
0
        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}");
                }
            }
        }
Example #4
0
        /// <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}");
                }
            }
        }