using System; using System.Collections.Generic; using System.Linq; using Katteker; using Semver; namespace KattekerCreator { public partial class SetupTmpl { public string AppName { get => string.IsNullOrWhiteSpace(ReleaseChannel) ? _appName : $"{_appName}_{ReleaseChannel}"; set => _appName = value; } public string Executable { get; set; } public string CompanyName { get; set; } public string Description { get; set; } public SemVersion Version { get; set; } public Version LegacyVersion => Version.ToSystemVersion(); public string HelpUrl { get; set; } public long InstallSize { get; set; } public bool IsManaged { get; set; } public string IconPath { get; set; } public string SourcePath { get; set; } = string.Empty; public List Files { get; set; } = new List(); private IEnumerable Directories => DirectoriesToCreate(); public string UserInterface { get; set; } public string OutFile { get; set; } public string UninstallIcon { get; set; } public string ReleaseChannel { get; set; } private readonly List _directoriesList = new List(); private string _appName; private IEnumerable DirectoriesToCreate() { foreach (var physicalFile in Files) { var dirSplit = new PathFragments(physicalFile.Target); if (dirSplit.FragmentLength > 1 && !_directoriesList.Contains(dirSplit)) { _directoriesList.Add(dirSplit); } } return _directoriesList.Select(x => x.ToString()); } } }