Ejemplo n.º 1
0
        } // Clone

        public static LicensedProgram MorphToProgram(this LicensedLibrary library, bool isGuiApp)
        {
            return(new LicensedProgram
            {
                Name = library.Name,
                LicenseId = library.LicenseId,
                Copyright = library.Copyright,
                Authors = library.Authors,
                Remarks = library.Remarks,
                TermsConditions = library.TermsConditions,
                Product = library.Product,
                Assembly = library.Assembly,
                IsGuiApp = isGuiApp
            });
        } // MorphToProgram LicensedLibrary
Ejemplo n.º 2
0
        }     // AddLicensesNodes

        public TreeNode LicensedItemToNode(LicensedItem item)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var image = item switch
            {
                LicensedLibrary _ => _images.LicensedLibrary,
                LicensedInstaller _ => _images.LicensedInstaller,
                LicensedProgram program => program.IsGuiApp ? _images.LicensedProgramGui : _images.LicensedProgramCli,
                _ => _images.LicensedUnknown
            };

            var node = new TreeNode(item.Name ?? Resources.NoName, image, image)
            {
                Tag = item
            };

            if (!item.TermsConditionsSpecified)
            {
                return(node);
            }

            image = _images.TermsAndConditionsNode;
            var terms = new TreeNode(Resources.TermsAndConditionsNode, image, image)
            {
                Tag = item.TermsConditions
            };

            foreach (var term in item.TermsConditions)
            {
                string name;

                try
                {
                    if (string.IsNullOrEmpty(term.Language))
                    {
                        name = "(Default)";
                    }
                    else
                    {
                        var culture = CultureInfo.GetCultureInfo(term.Language);
                        name = $"{culture.DisplayName} ({culture.NativeName})";
                    } // if-else
                }
                catch (CultureNotFoundException)
                {
                    name = $"({term.Language})";
                } // try-catch

                image = _images.TermsAndConditions;
                var termNode = new TreeNode(name, image, image)
                {
                    Tag = term
                };
                terms.Nodes.Add(termNode);
            } // foreach term

            node.Nodes.Add(terms);
            return(node);
        } // LicensedItemToNode