public ProjectViewModel(IProjectConfiguration model, IConfiguration configuration) { _configuration = configuration; Model = model; Name = new TextOptionViewModel(model.ProjectName, StringLocalizer.ProjectName); IsEnabled = new BooleanOptionViewModel(model.IsEnabled, StringLocalizer.IsEnabled); PullRequestDisplayMode = new EnumOptionViewModel <PullRequestDisplayMode>(StringLocalizer.ShowPullRequests, model.PullRequestDisplay); DefaultCompareBranch = new TextOptionViewModel(model.DefaultCompareBranch, StringLocalizer.DefaultCompareBranch); HideCompletedPullRequests = new BooleanOptionViewModel(model.HideCompletedPullRequests, StringLocalizer.HideCompletedPullRequests); BranchBlacklist = new StringCollectionOptionViewModel(StringLocalizer.BranchBlacklist, model.BranchBlacklist); BranchWhitelist = new StringCollectionOptionViewModel(StringLocalizer.BranchWhitelist, model.BranchWhitelist); BuildDefinitionBlacklist = new StringCollectionOptionViewModel(StringLocalizer.BuildDefinitionBlacklist, model.BuildDefinitionBlacklist); BuildDefinitionWhitelist = new StringCollectionOptionViewModel(StringLocalizer.BuildDefinitionWhitelist, model.BuildDefinitionWhitelist); var connections = configuration.Connections.Where(c => c.ConnectionType == ConnectionPluginType.SourceControl).ToList(); var connection = connections.FirstOrDefault(c => c.Name == model.SourceControlConnectionName) ?? new ConnectionData(); SourceControlConnection = new ConnectionOptionViewModel(StringLocalizer.SourceControlConnectionNames, connections, connection); connections = configuration.Connections.Where(c => c.ConnectionType == ConnectionPluginType.Build).ToList(); connection = connections.FirstOrDefault(c => c.Name == model.BuildConnectionNames.FirstOrDefault()) ?? new ConnectionData(); BuildConnection = new ConnectionOptionViewModel(StringLocalizer.BuildConnectionNames, connections, connection); foreach (var option in Options) { option.ValueChanged += Option_ValueChanged; } }
private DataTemplate?TryFindTemplateSimple(object item, FrameworkElement?element) { return(item switch { BooleanOptionViewModel _ => BooleanOptionTemplate(element), NumberOptionViewModel _ => NumberOptionTemplate(element), TextOptionViewModel _ => TextOptionTemplate(element), PluginEncryptedTextOptionViewModel _ => PluginEncryptedTextOptionTemplate(element), StringCollectionOptionViewModel _ => StringCollectionOptionTemplate(element), PluginCommandOptionViewModel _ => PluginCommandOptionTemplate(element), PluginDisplayOptionViewModel _ => PluginDisplayOptionTemplate(element), _ => null });