예제 #1
0
        public async Task <ActionResult <IEnumerable <AddressBook> > > SearchAddressBook(string search)
        {
            try
            {
                var result = CacheManager <List <AddressBook> > .Get(_memoryCache, cacheKey);

                if (result == null || result.Count == 0)
                {
                    var addressBooks = await _addressBookRepository.GetAddressBookList();

                    if (addressBooks == null)
                    {
                        return(NotFound());
                    }
                    var searchResults = addressBooks.Where(s => s.FirstName.Contains(search) || s.LastName.Contains(search) || s.MobileNumber.Contains(search) || s.HomeNumber.Contains(search) || s.OfficeNumber.Contains(search) || s.EmailAddress.Contains(search)).ToList();
                    return(Ok(searchResults));
                }
                var searchResult = result.Where(s => s.FirstName.Contains(search) || s.LastName.Contains(search) || s.MobileNumber.Contains(search) || s.HomeNumber.Contains(search) || s.OfficeNumber.Contains(search) || s.EmailAddress.Contains(search)).ToList();
                return(Ok(searchResult));
            }
            catch (Exception ex)
            {
                //Logging TO DO
                return(BadRequest());
            }
        }