diff --git a/src/modules/Projects/ProjectsEditor/MainPage.xaml b/src/modules/Projects/ProjectsEditor/MainPage.xaml index ded6b0ef43..5efcc48b42 100644 --- a/src/modules/Projects/ProjectsEditor/MainPage.xaml +++ b/src/modules/Projects/ProjectsEditor/MainPage.xaml @@ -178,8 +178,12 @@ - - + + + + + + - + @@ -259,7 +263,7 @@ BorderThickness="1" Click="LaunchButton_Click"/> - + diff --git a/src/modules/Projects/ProjectsEditor/Models/Project.cs b/src/modules/Projects/ProjectsEditor/Models/Project.cs index 0fc07d6953..b25ab4ebf7 100644 --- a/src/modules/Projects/ProjectsEditor/Models/Project.cs +++ b/src/modules/Projects/ProjectsEditor/Models/Project.cs @@ -176,7 +176,8 @@ namespace ProjectsEditor.Models { get { - return Applications.Where(x => x.IsSelected).Count().ToString(CultureInfo.InvariantCulture) + " apps"; + int count = Applications.Where(x => x.IsSelected).Count(); + return count.ToString(CultureInfo.InvariantCulture) + " " + (count == 1 ? Properties.Resources.App : Properties.Resources.Apps); } } diff --git a/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs b/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs index 87aa3c446a..807fce6024 100644 --- a/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs +++ b/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs @@ -60,6 +60,15 @@ namespace ProjectsEditor.Properties { } } + /// + /// Looks up a localized string similar to app. + /// + public static string App { + get { + return ResourceManager.GetString("App", resourceCulture); + } + } + /// /// Looks up a localized string similar to App name. /// @@ -69,6 +78,15 @@ namespace ProjectsEditor.Properties { } } + /// + /// Looks up a localized string similar to apps. + /// + public static string Apps { + get { + return ResourceManager.GetString("Apps", resourceCulture); + } + } + /// /// Looks up a localized string similar to Are you sure?. /// diff --git a/src/modules/Projects/ProjectsEditor/Properties/Resources.resx b/src/modules/Projects/ProjectsEditor/Properties/Resources.resx index f659fb83d0..fbb95e7d6e 100644 --- a/src/modules/Projects/ProjectsEditor/Properties/Resources.resx +++ b/src/modules/Projects/ProjectsEditor/Properties/Resources.resx @@ -117,6 +117,12 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + app + + + apps + App name diff --git a/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs b/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs index 536e87fe60..49d832b5b8 100644 --- a/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs +++ b/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs @@ -8,12 +8,10 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Drawing; -using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Timers; -using System.Windows.Media.Imaging; using ManagedCommon; using ProjectsEditor.Models; using ProjectsEditor.Utils; @@ -31,7 +29,7 @@ namespace ProjectsEditor.ViewModels { get { - IEnumerable projects = string.IsNullOrEmpty(_searchTerm) ? Projects : Projects.Where(x => x.Name.Contains(_searchTerm, StringComparison.InvariantCultureIgnoreCase)); + IEnumerable projects = GetFilteredProjects(); if (projects == null) { return Enumerable.Empty(); @@ -53,6 +51,30 @@ namespace ProjectsEditor.ViewModels } } + // return those projects where the project name or any of the selected apps' name contains the search term + private IEnumerable GetFilteredProjects() + { + if (string.IsNullOrEmpty(_searchTerm)) + { + return Projects; + } + + return Projects.Where(x => + { + if (x.Name.Contains(_searchTerm, StringComparison.InvariantCultureIgnoreCase)) + { + return true; + } + + if (x.Applications == null) + { + return false; + } + + return x.Applications.Any(app => app.IsSelected && app.AppName.Contains(_searchTerm, StringComparison.InvariantCultureIgnoreCase)); + }); + } + private string _searchTerm; public string SearchTerm