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