Beispiel #1
0
        } // MorphToProgram LicensedLibrary

        public static LicensedLibrary MorphToLibrary(this LicensedProgram program)
        {
            return(new LicensedLibrary
            {
                Name = program.Name,
                LicenseId = program.LicenseId,
                Copyright = program.Copyright,
                Authors = program.Authors,
                Remarks = program.Remarks,
                TermsConditions = program.TermsConditions,
                Product = program.Product,
                Assembly = program.Assembly,
            });
        } // MorphToLibrary LicensedProgram
Beispiel #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