Esempio n. 1
0
        public bool LoadTaxonomyDocument(string filepath, XbrlTaxonomyDocument parent)
        {
            //if (filepath.Contains("header-rend.xml"))
            //{

            //}
            var result = true;

            MarkupPath = filepath;
            var sourcepath = filepath;

            if (parent != null)
            {
                if (Utilities.Strings.IsRelativePath(MarkupPath))
                {
                    sourcepath = Utilities.Strings.ResolveRelativePath(parent.SourceFolder, MarkupPath);
                }
            }

            var localpath = Utilities.Strings.GetLocalPath(XbrlEngine.LocalFolder, sourcepath);

            SetLocalPath(localpath);
            SetSourcePath(sourcepath);
            //moved to FileManager.cs
            try
            {
                Utilities.Strings.CopyToLocal(sourcepath, localpath, false);
                LoadDocument();
                XbrlTaxonomy.SetTargetNamespace(this);
            }
            catch (Exception ex)
            {
                Logger.WriteLine(String.Format("Can't get source file {0}. Error: {1}", sourcepath, ex));
                result = false;
            }


            return(result);
        }
Esempio n. 2
0
 public XbrlTaxonomyDocument(XbrlTaxonomy taxonomy, string filepath)
 {
     this.Taxonomy = taxonomy;
     AddHandlers();
     LoadTaxonomyDocument(filepath, null);
 }
Esempio n. 3
0
        public override bool LoadTaxonomy(string filepath)
        {
            if (string.IsNullOrEmpty(filepath))
            {
                return(false);
            }
            TaxLoadStartDate = DateTime.Now;
            if (CurrentTaxonomy != null)
            {
                CurrentXbrlTaxonomy.ClearObjects();
                CurrentTaxonomy = null;
            }
            var isloaded = false;

            Logger.WriteLine("Loading Taxonomy " + filepath);
            var taxonomydocument = new XbrlTaxonomyDocument();

            if (taxonomydocument.LoadTaxonomyDocument(filepath, null))
            {
                var processedfolder = taxonomydocument.LocalPath.Remove(taxonomydocument.LocalPath.LastIndexOf("."));
                Logger.WriteLine("Processed Taxonomy Folder: " + processedfolder);

                taxonomydocument.ClearDocument();
                Trigger_TaxonomyLoad(filepath);

                CurrentTaxonomy = new XbrlTaxonomy(filepath);
                CurrentTaxonomy.TaxonomyToUI();
                LogicalModel.Helpers.FileManager.Clear();

                ////Test
                //LogicalModel.Settings.Current.ReloadFullTaxonomy = true;
                //LogicalModel.Settings.Current.ReDownloadFiles= true;
                ////End test
                CurrentTaxonomy.FactsManager.maxdictnr  = 1000;
                CurrentTaxonomy.FactsManager.SaveToFile = true;
                CurrentTaxonomy.FactsManager.DataFolder = CurrentTaxonomy.TaxonomyFactsFolder;
                //CurrentTaxonomy.FactsManager.ManageLoadedFacts = CurrentTaxonomy.ManageLoadedFacts;
                CurrentTaxonomy.LoadAllReferences();

                CheckMapping();

                /*
                 * var metdoc = CurrentXbrlTaxonomy.TaxonomyDocuments.FirstOrDefault(i => i.FileName == "met.xsd");
                 * CurrentTaxonomy.ConceptNameSpace = metdoc.TargetNamespacePrefix;
                 * */
                //CurrentTaxonomy.Prefix = CurrentTaxonomy.ConceptNameSpace.Remove(CurrentTaxonomy.ConceptNameSpace.LastIndexOf("_")) + "_";

                CurrentTaxonomy.LoadLabels();
                CurrentTaxonomy.LoadSchemaElements();
                CurrentTaxonomy.LoadConcepts();
                CurrentTaxonomy.LoadDimensions();
                CurrentTaxonomy.LoadHierarchy();
                CurrentTaxonomy.LoadTables();
                CurrentXbrlTaxonomy.ClearXmlObjects();
                CurrentTaxonomy.LoadFacts();
                //CurrentTaxonomy.LoadHierarchy();
                CurrentTaxonomy.LoadUnits();
                CurrentTaxonomy.LoadValidationFunctions();


                CurrentXbrlTaxonomy.ClearXmlObjects();

                CurrentTaxonomy.TaxonomyToUI();
                isloaded = true;
                Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstancePath);
                Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstanceValidationResultPath);
                if (!IsInstanceLoading)
                {
                    this.CurrentInstance = (XbrlInstance)this.CurrentTaxonomy.GetNewInstance();
                    Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstancePath);
                    Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstanceValidationResultPath);
                    //Utilities.FS.DeleteFile(CurrentTaxonomy.CurrentInstancePath);
                    this.CurrentInstance.SaveToJson();
                }
                Logger.WriteLine(String.Format("Loading Taxonomy finished in {0:0.0}s", DateTime.Now.Subtract(TaxLoadStartDate.Value).TotalSeconds));
                Logger.Flush();

                Trigger_TaxonomyLoaded(filepath);
            }
            else
            {
                Logger.WriteLine("Can't Load Taxonomy " + filepath);
                Trigger_TaxonomyLoadFailed(filepath);
            }
            return(isloaded);
        }