Example #1
0
        /// <summary>
        /// Describes the unit via specified loger
        /// </summary>
        /// <param name="loger">The loger.</param>
        public void describe(ILogBuilder loger)
        {
            //            loger.log("deliveryUnit describe() call started");

            loger.AppendHeading("Delivery unit (" + GetType().Name + ")", 2);

            loger.AppendLine("Logical name: " + name);

            loger.open("items", "Delivery items", "List of all deliveryUnit items contained here");
            foreach (IDeliveryUnitItem item in items)
            {
                //loger.AppendHeading(this.name + " (" + this.GetType().Name + ")", 3);

                loger.AppendLine(" > " + item.name + ":" + item.itemType.ToString());
                loger.AppendLine(" > > Location: " + item.location.ToString());
                loger.AppendLine(" > > Description: " + item.description);
            }
            loger.close();

            loger.open("items", "Items by level", "Showing items triggered by scope level");
            reportElementLevel lev = reportElementLevel.none;

            foreach (KeyValuePair <reportElementLevel, List <deliveryUnitItem> > pair in itemByLevel)
            {
                lev = pair.Key;
                foreach (deliveryUnitItem it in pair.Value)
                {
                    loger.AppendLine(lev.ToString() + " --> " + it.name + " (" + it.GetType().Name + ")");
                }
            }
            loger.close();

            loger.open("items", "Output by level", "Showing items designated as output items and triggered by scope level");
            foreach (KeyValuePair <reportElementLevel, List <deliveryUnitItem> > pair in outputByLevel)
            {
                lev = pair.Key;
                foreach (deliveryUnitItem it in pair.Value)
                {
                    loger.AppendLine(lev.ToString() + " --> " + it.name + " (" + it.GetType().Name + ")");
                }
            }
            loger.close();

            //  loger.log("deliveryUnit describe() call finished");
        }
Example #2
0
 public void reportLink(ILogBuilder output)
 {
     output.open(nameof(htmlTagName.div));
     output.AppendPair(tag.ToString(), "[" + nature.ToString() + "] [" + scope.ToString() + "]");
     output.AppendPair("Url:", url + " [original: " + originalUrl + "]");
     output.AppendPair("Shema:", shema.ToString());
     output.AppendPair("Domain:", domain);
     output.AppendPair("Path:", path);
     output.AppendPair("Query:", query);
     output.AppendPair("Query pairs:", queryPairs.Count.ToString());
     output.close();
 }
Example #3
0
        /// <summary>
        /// Describes the sample group to <c>output</c>
        /// </summary>
        /// <param name="output">The output object</param>
        public void describe(ILogBuilder output = null)
        {
            if (output == null)
            {
                return;
            }
            //output.log();
            int tl = output.tabLevel;

            output.rootTabLevel();

            //  output.AppendHeading("SampleGroup description", 1);

            output.open("desc", name, "");

            //  output.AppendHeading(name, 2);
            // output.AppendHorizontalLine();

            int ci = 1;

            foreach (sampleGroupItem item in this)
            {
                item.parent = this;
                output.open("group", item.groupTitle, item.groupDescription);
                //output.AppendHeading(, 3);


//                output.AppendPair("Description", );

                output.AppendPair("ID", ci);
                output.AppendPair("Tag", item.groupTag);
                if (item.groupSizeLimit == -1)
                {
                    output.AppendPair("Size (ratio)", item.weight + " / " + totalWeight.ToString());
                }
                else
                {
                    output.AppendPair("Size (limit)", item.groupSizeLimit);
                }

                output.AppendPair("Count", item.count);
                output.AppendPair("Border", item.groupBorder);
                if (item.isClosed)
                {
                    output.AppendLine("The group is closed for new members");
                }
                else
                {
                    output.AppendLine("The group may receive new members");
                }
                ci++;

                output.close();
            }

            output.AppendHorizontalLine();

            output.open("info", "Info", "");
            output.AppendPair("Counted collection", countedCollectionName);
            output.AppendPair("Items with group tag/s", countHasGroup);
            output.AppendPair("Items without group tag", countNoGroup);
            output.close();

            output.log("-- end");

            output.close();

            output.tabLevel = tl;
        }
        /// <summary>
        /// Loads all external plug-ins from the <see cref="folderNode"/> specified
        /// </summary>
        /// <param name="output">The log builder to output info to</param>
        /// <param name="altFolder">Alternative folder with plugins to load from, at the end of the process it will set back to the existing one (if there was no existing folder, it will set this as default)</param>
        public void loadPlugins(ILogBuilder output, folderNode altFolder = null)
        {
            folderNode old = folderWithPlugins;

            if (altFolder != null)
            {
                folderWithPlugins = altFolder;
                if (output != null)
                {
                    output.log("Loading from alternative directory: " + folderWithPlugins.path);
                }
            }

            dllFileNames.AddRange(folderWithPlugins.findFiles("*.dll", System.IO.SearchOption.AllDirectories));

            ICollection <Assembly> assemblies = new List <Assembly>(dllFileNames.Count);

            foreach (string dllFile in dllFileNames)
            {
                AssemblyName an = AssemblyName.GetAssemblyName(dllFile);

                try
                {
                    Assembly assembly = Assembly.Load(an);
                    //assemblies.Add(assembly);

                    Type pluginType = typeof(IAcePluginBase);
                    ICollection <Type> pluginTypes = new List <Type>();
                    //foreach (Assembly ass in assemblies)
                    //{
                    if (assembly != null)
                    {
                        Type[] types = assembly.GetTypes();
                        foreach (Type type in types)
                        {
                            if (type.IsInterface || type.IsAbstract)
                            {
                                continue;
                            }
                            else
                            {
                                if (type.GetInterface(pluginType.FullName) != null)
                                {
                                    registerPlugin(type, dllFile, output);
                                }
                            }
                        }
                    }
                    //}
                }
                catch (IOException ex)
                {
                    if (output != null)
                    {
                        output.log("Assembly load failed - [" + dllFile + "] - consider removing the file from the plugin directory. [" + ex.Message + "] ");
                    }
                }
                catch (BadImageFormatException ex)
                {
                    if (output != null)
                    {
                        output.log("Invalid assembly detected: remove dll file [" + dllFile + "] from the plugin directory. [" + ex.Message + "] ");
                        output.open("fussion-log", "Assembly load failure log:", dllFile);

                        output.Append(ex.FusionLog, imbSCI.Data.enums.appends.appendType.comment, true);

                        output.close();
                    }
                }
                catch (Exception ex)
                {
                    output.log("Plugin assembly import failed [" + dllFile + "] [" + ex.Message + "] ");
                }

                if (output != null)
                {
                    output.log("Plugin assembly loaded: " + an.Name);
                }
            }
            if (old != null)
            {
                folderWithPlugins = old;
            }
        }