Beispiel #1
0
        private List <DisplayDetailHelper> MapToHelper(List <Offering> offeringIQ)
        {
            DisplayDetailHelper = new List <DisplayDetailHelper>();
            foreach (var offering in offeringIQ)
            {
                DisplayDetailHelper listItem = new DisplayDetailHelper();
                listItem.VendorName     = offering.Vendor.VendorName;
                listItem.VendorAddress  = offering.Vendor.VendorAddress1;
                listItem.VendorAddress2 = offering.Vendor.VendorAddress2;
                listItem.PricePerUnit   = offering.ProductPricePerWeight;

                List <double> archivedprices = GetPricesFromArchives(offering.OfferingID);
                double        average        = 0;
                if (archivedprices.Count > 0)
                {
                    average          = ReturnAverage(archivedprices);
                    average          = Math.Round(average, 2);
                    listItem.Average = average;
                }
                else
                {
                    listItem.Average = null;
                }

                listItem.asOfDate = offering.AsOfDate;

                DisplayDetailHelper.Add(listItem);
            }
            return(DisplayDetailHelper);
        }
Beispiel #2
0
        public async Task <IActionResult> OnGetAsync(Guid?productId, string sortOrder)
        {
            CurrentSort = sortOrder;
            PriceSort   = String.IsNullOrEmpty(sortOrder) ? "price_desc" : "";
            AverageSort = sortOrder == "Average" ? "average_desc" : "Average";

            IQueryable <Offering> offeringIQ = from o in _context.Offering.Where(o => o.ProductID == productId).Include(v => v.Vendor)
                                               select o;

            Offerings = await offeringIQ.AsNoTracking().ToListAsync();

            DisplayDetailHelper = MapToHelper(Offerings);

            switch (sortOrder)
            {
            case "price_desc":
                DisplayDetailHelper = DisplayDetailHelper.OrderByDescending(d => d.PricePerUnit).ToList();
                break;

            case "Average":
                DisplayDetailHelper = DisplayDetailHelper.OrderBy(d => d.Average).ToList();
                break;

            case "average_desc":
                DisplayDetailHelper = DisplayDetailHelper.OrderByDescending(d => d.Average).ToList();
                break;

            default:
                DisplayDetailHelper = DisplayDetailHelper.OrderBy(d => d.PricePerUnit).ToList();
                break;
            }

            if (productId == null)
            {
                return(NotFound());
            }

            Product = await _context.Product
                      .Include(p => p.ProductCategory)
                      .Include(o => o.Offering)
                      .ThenInclude(v => v.Vendor)
                      .AsNoTracking()
                      .FirstOrDefaultAsync(m => m.ProductID == productId);

            if (Product == null)
            {
                return(NotFound());
            }
            return(Page());
        }