示例#1
0
        public async Task <IActionResult> Index(int?ofs)
        {
            var _books = await BookService.GetAsync();

            var _page = _books.Skip(ofs ?? 0).Take(AppSettings.ItemsPerPage);

            var books  = Mapper.Map <BookModel[]>(_page);
            var offset = new PageOffset(ofs ?? 0, AppSettings.ItemsPerPage, _books.Count());

            var view = new BookViewAllContainer
            {
                Books      = books,
                PageOffset = offset
            };

            return(View(view));
        }
        public async Task <IActionResult> View(string id, int?ofs)
        {
            var _books = await BookService.GetByTagAsync(id ?? String.Empty);

            var _page = _books.Skip(ofs ?? 0).Take(AppSettings.ItemsPerPage);

            var books  = Mapper.Map <BookModel[]>(_page);
            var offset = new PageOffset(ofs ?? 0, AppSettings.ItemsPerPage, _books.Count());

            var view = new BookViewTagContainer
            {
                Books      = books,
                Tag        = id,
                PageOffset = offset
            };

            return(View(view));
        }
示例#3
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Paginate != false)
            {
                hash ^= Paginate.GetHashCode();
            }
            if (PageOffset != 0)
            {
                hash ^= PageOffset.GetHashCode();
            }
            if (PageTimestamp != 0UL)
            {
                hash ^= PageTimestamp.GetHashCode();
            }
            return(hash);
        }
示例#4
0
        public async Task <IActionResult> Search(string q, int?ofs)
        {
            var _books = await SearchService.SearchAsync(q ?? String.Empty);

            var _page = _books.Skip(ofs ?? 0).Take(AppSettings.ItemsPerPage);

            var books  = Mapper.Map <BookModel[]>(_page);
            var offset = new PageOffset(ofs ?? 0, AppSettings.ItemsPerPage, _books.Count());

            var view = new BookViewSearchContainer
            {
                Books      = books,
                Query      = q,
                PageOffset = offset
            };

            return(View(view));
        }
        public DocumentId SearchMovies(string query, PageOffset pageOffset)
        {
            Guard.ArgumentNotNull(query, "query");

            var parameters = new Dictionary <string, string>
            {
                { "q", query },
                { "page_limit", pageOffset.Size.ToString(CultureInfo.InvariantCulture) },
                { "page", (pageOffset.Index + 1).ToString(CultureInfo.InvariantCulture) }
            };

            string requestUri = GetRequestUri("movies.json", parameters);

            return(new DocumentId
            {
                Type = DocumentType.RottenTomatoesApiMovieSearch,
                TypeId = requestUri
            });
        }
        public async Task <Page <T> > SearchMovieReleaseEventsAsync(string query, PageOffset pageOffset)
        {
            // check for a recent search
            DocumentId documentId = _externalDocumentClient.SearchMovies(query, pageOffset);
            IEnumerable <DocumentMetadata> documentMetadataList = await _documentStore.ListDocumentMetadataAsync(documentId, DateTimeOffset.UtcNow.Subtract(_documentCacheDuration));

            DocumentMetadata[] documentMetadataArray = documentMetadataList.ToArray();

            // get the document from the cache or from the external source
            Document document;

            if (documentMetadataArray.Any())
            {
                // get the latest document from the cache
                DocumentMetadata documentMetadata = documentMetadataArray.OrderByDescending(m => m.Created).First();
                document = await _documentStore.GetDocumentAsync(documentId, documentMetadata.Id);
            }
            else
            {
                // query Rotten Tomatoes API
                document = await _externalDocumentClient.GetDocumentAsync(documentId);

                // persist the document
                DocumentMetadata documentMetadata = await _documentStore.SaveDocumentAsync(document);

                // enqueue the process queue message if the document is new
                if (!documentMetadata.Duplicate)
                {
                    await _queue.AddMessageAsync(new ProcessDocumentMessage { DocumentMetadata = documentMetadata }, TimeSpan.Zero);
                }
            }

            // extract the events
            T[] entries = _eventExtractor.Extract(document.Content).ToArray();

            return(new Page <T>
            {
                Offset = pageOffset,
                Entries = entries,
                HasNextPage = entries.Length >= pageOffset.Size
            });
        }
示例#7
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Platform != 0)
            {
                hash ^= Platform.GetHashCode();
            }
            if (DeviceManufacturer.Length != 0)
            {
                hash ^= DeviceManufacturer.GetHashCode();
            }
            if (DeviceModel.Length != 0)
            {
                hash ^= DeviceModel.GetHashCode();
            }
            if (Locale.Length != 0)
            {
                hash ^= Locale.GetHashCode();
            }
            if (AppVersion != 0)
            {
                hash ^= AppVersion.GetHashCode();
            }
            if (Paginate != false)
            {
                hash ^= Paginate.GetHashCode();
            }
            if (PageOffset != 0)
            {
                hash ^= PageOffset.GetHashCode();
            }
            if (PageTimestamp != 0UL)
            {
                hash ^= PageTimestamp.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
示例#8
0
        private void InitData()
        {
            invoiceBindingSource.CurrentChanged -= new EventHandler(bindingSource1_CurrentChanged);

            invoiceData = invoiceRepo.GetAllSorted();
            invoiceBindingSource.DataSource = invoiceData;
            productBindingSource.DataSource = productRepo.GetAll();
            outletBindingSource.DataSource  = outletRepo.GetAll();

            SetDataSource(invoiceData);

            pageOffset              = new PageOffset();
            pageOffset.PageSize     = 10;
            pageOffset.TotalRecords = invoiceData.Count;
            totalRecords            = invoiceData.Count;

            bindingNavigator1.BindingSource      = invoiceBindingSource;
            invoiceBindingSource.CurrentChanged += new EventHandler(bindingSource1_CurrentChanged);
            invoiceBindingSource.DataSource      = pageOffset;

            //Miscellanacious
            totalLbl.Text = GetTotalValue().ToString("N03", Program.ci);
        }