public void PopulateGameWinCoupons()
        {
            var c = new Coupon();
            var newItem = new Item { ProductId = 1, CreatedDateTime = DateTime.UtcNow, Status = "pending"};
            newItem.ItemSelectedOptions.Add(new ItemSelectedOption { OptionChoiceId = 3 });
            newItem.ItemSelectedOptions.Add(new ItemSelectedOption { OptionChoiceId = 7 });
            newItem.ItemSelectedOptions.Add(new ItemSelectedOption { OptionChoiceId = 10 });

            c.Items.Add(newItem);
            c.ReferenceCode = "ABCDEF";

            var aUser = _dbContext.Users.First();

            c.ReceiverUserId = Guid.Parse("A9A7996A-2D09-4F0A-9FB2-2F1247E14477");
            c.SponsorName = "Nike";
            c.Price = 20;
            c.CreatedDateTime = DateTime.UtcNow;
            c.RedeemedDateTime = DateTime.MaxValue;

            _dbContext.Coupons.Add(c);
            _dbContext.SaveChanges();
        }
 public Coupon SubmitNewCoupon(Coupon newCoupon)
 {
     throw new NotImplementedException();
 }
        public Coupon SubmitNewCoupon(Coupon newCoupon)
        {
            if (_userId == Guid.Empty)
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                return null;
            }

            if (newCoupon.ReceiverUserId == Guid.Empty)
            {
                HttpContext.Current.Response.StatusCode = (int) HttpStatusCode.BadRequest;
                return null;
            }

            if (!newCoupon.SenderUserId.HasValue || newCoupon.SenderUserId == Guid.Empty)
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return null;
            }

            newCoupon.CreatedDateTime = DateTime.UtcNow;
            newCoupon.RedeemedDateTime = DateTime.MaxValue;
            newCoupon.ReferenceCode = ReferenceCodeGenerator();

            _dbContext.Coupons.Add(newCoupon);
            _dbContext.SaveChanges();

            var dbCoupon = _dbContext.Coupons.FirstOrDefault(c => c.ReferenceCode == newCoupon.ReferenceCode);

            if (dbCoupon == null)
            {
                // Log Error
            }

            return dbCoupon;
        }