// GET: Managers/Products/Details/5
        public async Task <ActionResult> Details(Guid?id)
        {
            ProductViewModel ProductDetail = new ProductViewModel();
            Dictionary <int, Dictionary <Month, double> > TurnoverReport;

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Product product = await db.Products.FindAsync(id);

            if (product == null)
            {
                return(HttpNotFound());
            }
            else
            {
                ProductDetail.InStoreRecords       = ProductLogic.RetrieveProductInStoreRecordsForProduct(id.Value);
                ProductDetail.ToBeAuctionedRecords = ToBeAuctionedRepo.GetAll(x => x.Batch.ProductId == id.Value);
                ProductDetail.AuctionRecords       = Auctionrepo.GetAll(x => x.Batch.ProductId == id.Value);
                ProductDetail.Product = product;
                ProductDetail.Sales   = SalesLogic.GetSalesForProduct(id.Value, out TurnoverReport);
            }
            return(View(ProductDetail));
        }