internal async Task AddNewResidentAsync(ResidentViewModel residentViewModel) { ResidentCollectionView.Add(residentViewModel); This.Residents.Add(residentViewModel); await This.WriteMetadataToFolderAsync(); }
public RankingCategoryListPageViewModel( Services.PageManager pageManager, Services.DialogService dialogService, RankingSettings rankingSettings ) : base(pageManager) { HohoemaDialogService = dialogService; RankingSettings = rankingSettings; Func <RankingCategory, bool> checkFavorite = (RankingCategory cat) => { return(RankingSettings.HighPriorityCategory.Any(x => x.Category == cat)); }; RankingCategoryItems = new ObservableCollection <RankingCategoryHostListItem>(); FavoriteRankingCategoryItems = new ObservableCollection <RankingCategoryListPageListItem>(); SelectedRankingCategory = new ReactiveProperty <RankingCategoryListPageListItem>(); AddFavRankingCategory = new DelegateCommand(async() => { var items = new AdvancedCollectionView(); items.SortDescriptions.Add(new SortDescription("IsFavorit", SortDirection.Descending)); items.SortDescriptions.Add(new SortDescription("Category", SortDirection.Ascending)); var highPriCat = RankingSettings.HighPriorityCategory; var lowPriCat = RankingSettings.LowPriorityCategory; foreach (var i in RankingSettings.HighPriorityCategory) { items.Add(new CategoryWithFav() { Category = i.Category, IsFavorit = true }); } var middleRankingCategories = Enum.GetValues(typeof(RankingCategory)).Cast <RankingCategory>() .Where(x => !highPriCat.Any(h => x == h.Category)) .Where(x => !lowPriCat.Any(l => x == l.Category)) ; foreach (var category in middleRankingCategories) { items.Add(new CategoryWithFav() { Category = category }); } items.Refresh(); var choiceItems = await HohoemaDialogService.ShowMultiChoiceDialogAsync( "優先表示にするカテゴリを選択", items.Cast <CategoryWithFav>().Select(x => new RankingCategoryInfo(x.Category)), RankingSettings.HighPriorityCategory.ToArray(), x => x.DisplayLabel ); if (choiceItems == null) { return; } // choiceItemsに含まれるカテゴリをMiddleとLowから削除 RankingSettings.ResetFavoriteCategory(); // HighにchoiceItemsを追加(重複しないよう注意) foreach (var cat in choiceItems) { RankingSettings.AddFavoritCategory(cat.Category); } await RankingSettings.Save(); ResetRankingCategoryItems(); }); AddDislikeRankingCategory = new DelegateCommand(async() => { var items = new AdvancedCollectionView(); items.SortDescriptions.Add(new SortDescription("IsFavorit", SortDirection.Descending)); items.SortDescriptions.Add(new SortDescription("Category", SortDirection.Ascending)); var highPriCat = RankingSettings.HighPriorityCategory; var lowPriCat = RankingSettings.LowPriorityCategory; foreach (var i in lowPriCat) { items.Add(new CategoryWithFav() { Category = i.Category, IsFavorit = true }); } var middleRankingCategories = Enum.GetValues(typeof(RankingCategory)).Cast <RankingCategory>() .Where(x => !highPriCat.Any(h => x == h.Category)) .Where(x => !lowPriCat.Any(l => x == l.Category)) ; foreach (var category in middleRankingCategories) { items.Add(new CategoryWithFav() { Category = category }); } items.Refresh(); var choiceItems = await HohoemaDialogService.ShowMultiChoiceDialogAsync( "非表示にするカテゴリを選択", items.Cast <CategoryWithFav>().Select(x => new RankingCategoryInfo(x.Category)), RankingSettings.LowPriorityCategory, x => x.DisplayLabel ); if (choiceItems == null) { return; } // choiceItemsに含まれるカテゴリをMiddleとLowから削除 RankingSettings.ResetDislikeCategory(); // HighにchoiceItemsを追加(重複しないよう注意) foreach (var cat in choiceItems) { RankingSettings.AddDislikeCategory(cat.Category); } await RankingSettings.Save(); ResetRankingCategoryItems(); }); ResetRankingCategoryItems(); }
internal async Task AddNewActivityAsync(ActivityViewModel activityViewModel) { ActivityCollectionView.Add(activityViewModel); This.Activities.Add(activityViewModel); await This.WriteMetadataToFolderAsync(); }
public RankingCategoryListPageViewModel(HohoemaApp hohoemaApp, PageManager pageManager, Services.HohoemaDialogService dialogService) : base(hohoemaApp, pageManager) { _HohoemaDialogService = dialogService; _RankingSettings = HohoemaApp.UserSettings.RankingSettings; Func <RankingCategory, bool> checkFavorite = (RankingCategory cat) => { return(_RankingSettings.HighPriorityCategory.Any(x => x.Category == cat)); }; RankingCategoryItems = new ObservableCollection <RankingCategoryHostListItem>(); FavoriteRankingCategoryItems = new ObservableCollection <RankingCategoryListPageListItem>(); SelectedRankingCategory = new ReactiveProperty <RankingCategoryListPageListItem>(); AddFavRankingCategory = new DelegateCommand(async() => { var items = new AdvancedCollectionView(); items.SortDescriptions.Add(new SortDescription("IsFavorit", SortDirection.Descending)); items.SortDescriptions.Add(new SortDescription("Category", SortDirection.Ascending)); foreach (var i in HohoemaApp.UserSettings.RankingSettings.HighPriorityCategory) { items.Add(new CategoryWithFav() { Category = i.Category, IsFavorit = true }); } foreach (var i in HohoemaApp.UserSettings.RankingSettings.MiddlePriorityCategory) { items.Add(new CategoryWithFav() { Category = i.Category }); } items.Refresh(); var choiceItems = await _HohoemaDialogService.ShowMultiChoiceDialogAsync( "優先表示にするカテゴリを選択", items.Cast <CategoryWithFav>().Select(x => new RankingCategoryInfo(x.Category)), _RankingSettings.HighPriorityCategory.ToArray(), x => x.DisplayLabel ); if (choiceItems == null) { return; } // choiceItemsに含まれるカテゴリをMiddleとLowから削除 _RankingSettings.ResetFavoriteCategory(); // HighにchoiceItemsを追加(重複しないよう注意) foreach (var cat in choiceItems) { _RankingSettings.AddFavoritCategory(cat.Category); } ResetRankingCategoryItems(); }); AddDislikeRankingCategory = new DelegateCommand(async() => { var items = new AdvancedCollectionView(); items.SortDescriptions.Add(new SortDescription("IsFavorit", SortDirection.Descending)); items.SortDescriptions.Add(new SortDescription("Category", SortDirection.Ascending)); foreach (var i in HohoemaApp.UserSettings.RankingSettings.LowPriorityCategory) { items.Add(new CategoryWithFav() { Category = i.Category, IsFavorit = true }); } foreach (var i in HohoemaApp.UserSettings.RankingSettings.MiddlePriorityCategory) { items.Add(new CategoryWithFav() { Category = i.Category }); } items.Refresh(); var choiceItems = await _HohoemaDialogService.ShowMultiChoiceDialogAsync( "非表示にするカテゴリを選択", items.Cast <CategoryWithFav>().Select(x => new RankingCategoryInfo(x.Category)), _RankingSettings.LowPriorityCategory, x => x.DisplayLabel ); if (choiceItems == null) { return; } // choiceItemsに含まれるカテゴリをMiddleとLowから削除 _RankingSettings.ResetDislikeCategory(); // HighにchoiceItemsを追加(重複しないよう注意) foreach (var cat in choiceItems) { _RankingSettings.AddDislikeCategory(cat.Category); } ResetRankingCategoryItems(); }); ResetRankingCategoryItems(); }