public IActionResult Get([FromRoute] int event_id, [FromRoute] int sold_item_id)
        {
            Events e = db.Events.Where(r => r.Id == event_id).FirstOrDefault();

            if (e == null)
            {
                return(StatusCode(404, ErrorMessageHelper.GenerateResponse(404, "Event not found")));
            }

            SoldItems s = db.SoldItems.Where(r => r.EventId == event_id && r.Id == sold_item_id).FirstOrDefault();

            if (s == null)
            {
                return(StatusCode(404, ErrorMessageHelper.GenerateResponse(404, "Sold Item not found")));
            }

            if (!(DateTime.Now >= e.EndTime))
            {
                return(StatusCode(400, ErrorMessageHelper.GenerateResponse(400, "Event is not yet complete to generate the winning bid")));
            }

            List <Bids> b_l         = db.Bids.Where(r => r.SoldItemId == s.Id).ToList();
            int         winning_bid = (b_l.Count == 0) ? 0 : WinningBidService.GenerateWinningBid(b_l, s);

            return(Ok(new JObject {
                { "winning_bid", winning_bid }
            }));
        }
        public IActionResult Post([FromRoute] int event_id, [FromRoute] int sold_item_id, [FromBody] BidRequestRoot b_r)
        {
            //could avoid redundancy in this check
            Events e = db.Events.Where(r => r.Id == event_id).FirstOrDefault();

            if (e == null)
            {
                return(StatusCode(404, ErrorMessageHelper.GenerateResponse(404, "Event not found")));
            }

            SoldItems s = db.SoldItems.Where(r => r.EventId == event_id && r.Id == sold_item_id).FirstOrDefault();

            if (s == null)
            {
                return(StatusCode(404, ErrorMessageHelper.GenerateResponse(404, "Sold Item not found")));
            }

            if (!(DateTime.Now >= e.StartTime && DateTime.Now <= e.EndTime))
            {
                return(StatusCode(400, ErrorMessageHelper.GenerateResponse(400, "Event is not active to receive bids")));
            }

            Bids previous_bid = db.Bids.Where(r => r.SoldItemId == s.Id).FirstOrDefault();

            if (previous_bid != null)
            {
                return(StatusCode(400, ErrorMessageHelper.GenerateResponse(400, "Bid found already")));
            }

            Bids b = b_r.createBid(s.Id);

            db.Bids.Add(b);
            db.SaveChanges();
            return(Ok(new JObject {
                { "success", true }
            }));
        }