public async Task <ActionResult <ArticleSearchResults> > GetOftenOrderedItems(int affiliateId, int customerId)
        {
            const int MAX_RESULTS = 20;

            ArticleSearchResults returnModel = new ArticleSearchResults();

            if (affiliateId == 0 ||
                customerId == 0)
            {
                //returnModel.Articles = new List<Article>();
            }
            else
            {
                DateTime start = DateTime.Now;
                returnModel.Articles.AddRange(await Data.GetOftenOrderedItems(affiliateId, customerId).ConfigureAwait(false));
                ViewData["QueryRunTime"] = (DateTime.Now - start).TotalMilliseconds.ToString("0", System.Globalization.CultureInfo.InvariantCulture);
            }

            returnModel.NoResults     = (returnModel.Articles.Count == 0);
            returnModel.ToManyResults = (returnModel.Articles.Count >= MAX_RESULTS);

            return(PartialView("InvoiceArticleSearchResults", returnModel));
        }
        public async Task <ActionResult <ArticleSearchResults> > PznSearchResults(int affiliateId, string searchField)
        {
            const int MAX_RESULTS = 20;

            ArticleSearchResults returnModel = new ArticleSearchResults();

            if (string.IsNullOrEmpty(searchField))
            {
                //returnModel.Articles = new List<Article>();
            }
            else
            {
                int pzn;
                if (int.TryParse(searchField.Trim(), out pzn))
                {
                    DateTime start = DateTime.Now;
                    returnModel.Articles.AddRange(await Data.PznSearch(affiliateId, pzn, limit: 1).ConfigureAwait(false));
                    ViewData["QueryRunTime"] = (DateTime.Now - start).TotalMilliseconds.ToString("0", System.Globalization.CultureInfo.InvariantCulture);
                }
                else
                {
                    DateTime start = DateTime.Now;
                    returnModel.Articles.AddRange(
                        (await Data.PznSearch(affiliateId, name: searchField, limit: MAX_RESULTS).ConfigureAwait(false))
                        .OrderBy(x => x.IsLocked || !x.IsOnline || x.AvailabilityType == 0 || x.AvailabilityType == 4 || x.AvailabilityType == 6)
                        .ThenBy(y => y.DisplayName)
                        );
                    ViewData["QueryRunTime"] = (DateTime.Now - start).TotalMilliseconds.ToString("0", System.Globalization.CultureInfo.InvariantCulture);
                }
            }

            returnModel.NoResults     = (returnModel.Articles.Count == 0);
            returnModel.ToManyResults = (returnModel.Articles.Count >= MAX_RESULTS);

            return(PartialView("InvoiceArticleSearchResults", returnModel));
        }