Beispiel #1
0
        public IEnumerable <ImageDetails> Search(string searchTerm)
        {
            var data = _imageDetailsRepository.GetAllQ().Where(x =>
                                                               x.Author.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase) ||
                                                               x.Camera.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase) ||
                                                               x.Tags.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase) ||
                                                               x.Id.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase)
                                                               );

            return(data);
        }
Beispiel #2
0
        public async Task RefreshImagesData()
        {
            var    pageNumber = 1;
            Images currentPage;

            var idsList = _imageDetailsRepository.GetAllQ().Select(x => x.Id).ToList();

            do
            {
                var imagesResponse = await Get($"{_settings.APIEndpoint}/{Constants.APIMethods.Images}", $"{Constants.APIParameters.Images.Page}={pageNumber}", typeof(Images));

                if (!imagesResponse.Success)
                {
                    break;
                }

                currentPage = imagesResponse.Response as Images;
                foreach (var image in currentPage.Pictures)
                {
                    var imageDetailsResponse = await Get($"{_settings.APIEndpoint}/{Constants.APIMethods.Images}/{image.Id}", null, typeof(ImageDetails));

                    if (!imageDetailsResponse.Success)
                    {
                        break;
                    }

                    var pictureDetails = imageDetailsResponse.Response as ImageDetails;

                    var containsEntity = idsList.Contains(image.Id);
                    if (containsEntity)
                    {
                        await _imageDetailsRepository.UpdateAsync(pictureDetails);

                        idsList.Remove(image.Id);
                    }
                    else
                    {
                        await _imageDetailsRepository.AddAsync(pictureDetails);

                        await _imageDetailsRepository.CommitAsync();
                    }
                }

                pageNumber++;
            }while (currentPage != null && currentPage.HasMore);

            foreach (var id in idsList)
            {
                _imageDetailsRepository.Delete(id);
            }
        }
Beispiel #3
0
        public IActionResult Index(string searchTerm)
        {
            if (!String.IsNullOrEmpty(searchTerm) && searchTerm.Length >= 3)
            {
                var data = _imageDetailsRepository.GetAllQ().Where(x =>
                                                                   x.Author.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase) ||
                                                                   x.Camera.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase) ||
                                                                   x.Tags.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase) ||
                                                                   x.Id.Contains(searchTerm, StringComparison.InvariantCultureIgnoreCase)
                                                                   );

                return(View(data));
            }

            return(View());
        }