Esempio n. 1
0
        private void PopulateErrors(ICOBieValidationTemplate ValidationTemplate = null)
        {
            try
            {
                COBieProgress progress = new COBieProgress(Context);
                progress.Initialise("Validating Workbooks", Workbook.Count, 0);
                progress.ReportMessage("Building Indices...");
                Workbook.CreateIndices();
                progress.ReportMessage("Building Indices...Finished");

                // Validate the workbook
                progress.ReportMessage("Starting Validation...");
                Workbook.Validate(Context.ErrorRowStartIndex, ValidationTemplate, (lastProcessedSheetIndex) =>
                {
                    // When each sheet has been processed, increment the progress bar
                    progress.IncrementAndUpdate();
                });
                progress.ReportMessage("Finished Validation");

                progress.Finalise();
            }
            catch (Exception)
            {
                // TODO: Handle
                throw;
            }
        }
Esempio n. 2
0
        private void GenerateCOBieData()
        {
            Initialise();
            Workbook.SetInitialHashCode();//set the initial row hash value to compare against for row changes

            PopulateErrors();

            //Role validation
            COBieProgress progress = new COBieProgress(Context);

            //check we have values in MapMergeRoles, only on federated or via test harness
            if ((Context.MapMergeRoles.Count > 0) &&
                (Context.MapMergeRoles.ContainsKey(Context.Model))
                )
            {
                progress.ReportMessage(string.Format("Starting Merge Validation for {0}...", Context.MapMergeRoles[Context.Model]));
                Workbook.ValidateRoles(Context.Model, Context.MapMergeRoles[Context.Model]);
                progress.ReportMessage("Finished Merge Validation...");
            }
        }
Esempio n. 3
0
        private void PopulateErrors(ICOBieValidationTemplate ValidationTemplate = null)
        {
            try
            {
                COBieProgress progress = new COBieProgress(Context);
                progress.Initialise("Validating Workbooks", Workbook.Count, 0);
                progress.ReportMessage("Building Indices...");
                Workbook.CreateIndices();
                progress.ReportMessage("Building Indices...Finished");
                
                // Validate the workbook
                progress.ReportMessage("Starting Validation...");
                Workbook.Validate(Context.ErrorRowStartIndex, ValidationTemplate, (lastProcessedSheetIndex) =>
                {
                    // When each sheet has been processed, increment the progress bar
                    progress.IncrementAndUpdate();
                } );
                progress.ReportMessage("Finished Validation");

                progress.Finalise();

            }
            catch (Exception)
            {
                // TODO: Handle
                throw;
            }
        }
Esempio n. 4
0
        private void GenerateCOBieData()
        {
            Initialise();
            Workbook.SetInitialHashCode();//set the initial row hash value to compare against for row changes
           
            PopulateErrors();

            //Role validation
            COBieProgress progress = new COBieProgress(Context);
            //check we have values in MapMergeRoles, only on federated or via test harness
            if ((Context.MapMergeRoles.Count > 0) &&
                (Context.MapMergeRoles.ContainsKey(Context.Model))
                )
            {
                progress.ReportMessage(string.Format("Starting Merge Validation for {0}...", Context.MapMergeRoles[Context.Model]));
                Workbook.ValidateRoles(Context.Model, Context.MapMergeRoles[Context.Model]);
                progress.ReportMessage("Finished Merge Validation...");
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Validate XLS file for COBie errors, also will swap templates if required
        /// </summary>
        /// <param name="parameters">Params</param>
        /// <returns>Created file name</returns>
        private void ValidateXLSfile(Params parameters, ICOBieValidationTemplate ValidationTemplate = null)
        {
            
            //read xls file
            LogBackground(String.Format("Reading {0}....", parameters.ModelFile));
            COBieXLSDeserialiser deSerialiser = new COBieXLSDeserialiser(parameters.ModelFile);
            COBieWorkbook Workbook = deSerialiser.Deserialise();

            //extract pick list from the template sheet and swap into workbook (US / UK)
            LogBackground("Swapping PickList from template...");
            COBieSheet<COBiePickListsRow> CobiePickLists = null;
            if ((!string.IsNullOrEmpty(parameters.TemplateFile)) &&
                File.Exists(parameters.TemplateFile)
                )
            {
                //extract the pick list sheet from template
                COBieXLSDeserialiser deSerialiserPickList = new COBieXLSDeserialiser(parameters.TemplateFile, Constants.WORKSHEET_PICKLISTS);
                COBieWorkbook wbookPickList = deSerialiserPickList.Deserialise();
                if (wbookPickList.Count > 0) CobiePickLists = (COBieSheet<COBiePickListsRow>)wbookPickList.FirstOrDefault();
                //check the workbook last sheet is a pick list
                if (Workbook.LastOrDefault() is COBieSheet<COBiePickListsRow>)
                {
                    //remove original pick list and replace with templates
                    Workbook.RemoveAt(Workbook.Count - 1);
                    Workbook.Add(CobiePickLists);
                }
                else
                {
                    LogBackground("Failed to Swap PickList from template...");
                }

            }

            COBieContext context = new COBieContext(_worker.ReportProgress);
            COBieProgress progress = new COBieProgress(context);
            context.Exclude = UserFilters;

            //Validate
            progress.Initialise("Validating Workbooks", Workbook.Count, 0);
            progress.ReportMessage("Building Indices...");
            foreach (ICOBieSheet<COBieRow> item in Workbook)
            {
                item.BuildIndices();
            }
            progress.ReportMessage("Building Indices...Finished");
                
            // Validate the workbook
            progress.ReportMessage("Starting Validation...");

            Workbook.Validate(ErrorRowIndexBase.RowTwo, null, (lastProcessedSheetIndex) =>
            {
                // When each sheet has been processed, increment the progress bar
                progress.IncrementAndUpdate();
            } );
            progress.ReportMessage("Finished Validation");
            progress.Finalise();
                
            // Export
            LogBackground(String.Format("Formatting as XLS using {0} template...", Path.GetFileName(parameters.TemplateFile)));
            COBieXLSSerialiser serialiser = new COBieXLSSerialiser(parameters.ModelFile, parameters.TemplateFile);
            serialiser.Excludes = UserFilters;
            serialiser.Serialise(Workbook, ValidationTemplate);

            LogBackground(String.Format("Export Complete: {0}", parameters.ModelFile));
            
            Process.Start(parameters.ModelFile);

            LogBackground("Finished COBie Validation");
            
            
        }