public UserController(UserManager <User> userManager, MainDbContext appDb, IContactsServices contactsServices, IAccountServices accountServices, IMapper mapper) { this.userManager = userManager; this.appDb = appDb; this.contactsServices = contactsServices; this.accountServices = accountServices; this.mapper = mapper; }
public ContactViewModel(IContactsServices contactsService = null) { _contactsService = contactsService ?? (IContactsServices)Splat.Locator.Current.GetService(typeof(IContactsServices)); var allContacts = _contactsService.GetAllContacts(); _contacts = new ObservableCollection <Contact>(allContacts); this.WhenAnyValue(vm => vm.SearchQuery) .Throttle(TimeSpan.FromSeconds(1)) .Subscribe(query => { var filteredContacts = allContacts.Where(c => c.FullaName.ToLower().Contains(query) || c.Phone.Contains(query) || c.Email.Contains(query)).ToList(); Contacts = new ObservableCollection <Contact>(filteredContacts); }); this.WhenAnyValue(vm => vm.Contacts) .Select(conacts => { if (Contacts.Count == allContacts.Count()) { return("No filters applied"); } return($"{Contacts.Count} have been found in result for '{SearchQuery}'"); }) .ToProperty(this, vm => vm.SearchResult, out _searchResult); var canExecuteClear = this.WhenAnyValue(vm => vm.SearchQuery).Select(query => { if (string.IsNullOrWhiteSpace(query)) { return(false); } else { return(true); } }); ClearCommand = ReactiveCommand.Create(ClearSearch, canExecuteClear); //Han dle the exception ClearCommand.ThrownExceptions.Subscribe(ex => { Debug.WriteLine(ex.Message); }); }