public ProducersPageViewModel() { ResourceManager manager = new ResourceManager("BetterThanIMDB.Resources.locale", typeof(FilmsPageViewModel).GetTypeInfo().Assembly); ExpandItemCommand = new Command(() => { if (_prevSelectedProducer == SelectedProducer) { SelectedProducer.IsVisible = !SelectedProducer.IsVisible; } else { if (_prevSelectedProducer != null) { _prevSelectedProducer.IsVisible = false; } SelectedProducer.IsVisible = true; } _prevSelectedProducer = SelectedProducer; }); DeleteItemCommand = new Command(() => { UserDialogs.Instance.Confirm(new ConfirmConfig() { Message = manager.GetString("confirm", CustomSettings.Settings.Instance.Culture), OnAction = (confirmed) => { if (confirmed) { ProducerCollection.Instance.DeleteProducer(SelectedProducer); SelectedProducer = null; } } }); }); ShowFilmsCommand = new Command(() => { ActionSheetConfig config = new ActionSheetConfig(); foreach (var film in SelectedProducer.Films) { config.Add(film.Title, async() => await App.NavigationService.NavigateAsync("EditFilmPage", film)); } config.SetCancel(); config.Title = manager.GetString("filmsList", CustomSettings.Settings.Instance.Culture); UserDialogs.Instance.ActionSheet(config); }); ShowInfoAboutProducerCommand = new Command(async() => await App.NavigationService.NavigateAsync("EditProducerPage", SelectedProducer)); AddProducerCommand = new Command(() => { ActionSheetConfig config = new ActionSheetConfig(); config.Add(manager.GetString("createProducer", CustomSettings.Settings.Instance.Culture), () => CreateNewProducer()); config.Add(manager.GetString("getProducer", CustomSettings.Settings.Instance.Culture), async() => await App.NavigationService.NavigateAsync("TMDBPersonPage", "Producer")); config.SetCancel(); UserDialogs.Instance.ActionSheet(config); }); SearchProducerCommand = new Command(async() => await App.NavigationService.NavigateAsync("SearchProducersPage", this)); UnapplyCommand = new Command(() => Producers = ProducerCollection.Instance.Producers); SortByNameCommand = new Command(() => { if (_sortedByName) { Producers = new CustomObservableCollection <Producer>(Producers.OrderByDescending(p => p.Name)); } else { Producers = new CustomObservableCollection <Producer>(Producers.OrderBy(p => p.Name)); } _sortedByName = !_sortedByName; }); SortByDateCommand = new Command(() => { if (_sortedByDate) { Producers = new CustomObservableCollection <Producer>(Producers.OrderByDescending(p => DateTime.Parse(p.DateOfBirth))); } else { Producers = new CustomObservableCollection <Producer>(Producers.OrderBy(p => DateTime.Parse(p.DateOfBirth))); } _sortedByDate = !_sortedByDate; }); SortByCountCommand = new Command(() => { if (_sortedByCount) { Producers = new CustomObservableCollection <Producer>(Producers.OrderByDescending(p => p.Films.Count)); } else { Producers = new CustomObservableCollection <Producer>(Producers.OrderBy(p => p.Films.Count)); } _sortedByCount = !_sortedByCount; }); }