Ejemplo n.º 1
0
        private void ValidateLoadedFacilities()
        {
            if (RequirementFacility == null && SubmissionFacility != null)
            {
                // I want to save the cobie here.
                var filters = new List <string>
                {
                    "COBie excel|*.xlsx",
                    "COBie binary excel|*.xls"
                };

                FileSelector.Filter = string.Join("|", filters.ToArray());
                FileSelector.Title  = "Select destination file";

                var ret = FileSelector.ShowDialog();
                if (ret != DialogResult.OK)
                {
                    return;
                }

                string msg;
                SubmissionFacility.WriteCobie(FileSelector.FileName, out msg);
                if (OpenOnExported && File.Exists(FileSelector.FileName))
                {
                    Process.Start(FileSelector.FileName);
                }
            }
            else if (RequirementFacility != null && SubmissionFacility != null)
            {
                ActivityStatus = "Validation in progress";
                var f = new cobieUKValidation.FacilityValidator();
                ValidationFacility = f.Validate(RequirementFacility, SubmissionFacility);
                ActivityStatus     = "Validation completed";
                if (ExportOnValidated)
                {
                    ExportValidatedFacility();
                }
            }
        }
Ejemplo n.º 2
0
        private void CreateWorker()
        {
            _worker = new BackgroundWorker
            {
                WorkerReportsProgress      = true,
                WorkerSupportsCancellation = true
            };
            _worker.ProgressChanged += delegate(object s, ProgressChangedEventArgs args)
            {
                ActivityProgress = args.ProgressPercentage;
                ActivityStatus   = (string)args.UserState;
                Debug.WriteLine("{0}% {1}", args.ProgressPercentage, (string)args.UserState);
            };

            _worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
            {
                if (args.Result is XbimModel) //all ok
                {
                    _model           = args.Result as XbimModel;
                    ActivityProgress = 0;
                    // prepare the facility
                    SubmissionFacility = FacilityFromIfcConverter.FacilityFromModel(_model);

                    if (SubmissionFacility == null)
                    {
                        return;
                    }
                    var jsonFileName = Path.ChangeExtension(SubmissionFileSource, "json");
                    if (!File.Exists(jsonFileName))
                    {
                        SubmissionFacility.WriteJson(jsonFileName);
                    }

                    ValidateLoadedFacilities();
                }
                else if (args.Result is Facility) //all ok; this is the model facility
                {
                    ValidateLoadedFacilities();
                }
                else //we have a problem
                {
                    var errMsg = args.Result as String;
                    if (!string.IsNullOrEmpty(errMsg))
                    {
                        ActivityStatus = "Error Opening File";
                    }
                    if (args.Result is Exception)
                    {
                        var sb     = new StringBuilder();
                        var ex     = args.Result as Exception;
                        var indent = "";
                        while (ex != null)
                        {
                            sb.AppendFormat("{0}{1}\n", indent, ex.Message);
                            ex      = ex.InnerException;
                            indent += "\t";
                        }
                        ActivityStatus = "Error Opening Ifc File\r\n\r\n" + sb;
                    }
                    ActivityProgress = 0;
                    ActivityStatus   = "Error/Ready";
                }
            };
        }