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;
            }
        }
Exemple #2
0
 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
     });