Example #1
0
        /// <summary>
        /// Process an applet collection
        /// </summary>
        private void ProcessApplet(ReadonlyAppletCollection appletCollection)
        {
            var bisDefinitions = appletCollection.SelectMany(o => o.Assets)
                                 .Where(o => o.Name.StartsWith("bi/") && o.Name.EndsWith(".xml"))
                                 .Select(o =>
            {
                try
                {
                    this.m_tracer.TraceVerbose("Attempting to load {0}", o.Name);

                    using (var ms = new MemoryStream(appletCollection.RenderAssetContent(o)))
                        return new { Definition = BiDefinition.Load(ms), Asset = o };
                }
                catch (Exception e)
                {
                    this.m_tracer.TraceWarning("Could not load BIS Definition: {0} : {1}", o.Name, e);
                    return(null);
                }
            })
                                 .OfType <dynamic>()
                                 .ToArray();

            // Process contents
            foreach (var itm in bisDefinitions)
            {
                this.ProcessBisDefinition(itm.Definition);
#if DEBUG
                if (itm.Definition is BiReportDefinition || itm.Definition is BiViewDefinition || itm.Definition is BiQueryDefinition)
                {
                    this.m_definitionCache[itm.Definition.GetType()][itm.Definition.Id] = itm.Asset;
                }
#endif
            }
        }
Example #2
0
 /// <summary>
 /// Local applet manager ctor
 /// </summary>
 public LocalAppletManagerService()
 {
     this.m_appletCollection         = new AppletCollection();
     this.m_readonlyAppletCollection = this.m_appletCollection.AsReadonly();
     this.m_readonlyAppletCollection.CollectionChanged += (o, e) => this.Changed?.Invoke(o, e);
 }
 /// <summary>
 /// Local applet manager ctor
 /// </summary>
 public LocalAppletManagerService()
 {
     this.m_appletCollection         = new AppletCollection();
     this.m_readonlyAppletCollection = this.m_appletCollection.AsReadonly();
 }