} // 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
} // 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