示例#1
0
        public static void AddSpecialOffer(AddOfferForm form)
        {
            if (form == null || form.seatsToDiscount == null || form.slashedPrice == 0 || form.flightId == 0)
            {
                throw new Exception("BAD QUERY");
            }
            using (var _context = new DiemServiceDB())
            {
                string caller = ((ClaimsPrincipal)HttpContext.Current.User).FindFirst("username").Value;
                User   found  = _context.UserDbSet.Where(u => u.Username == caller).FirstOrDefault();
                Flight flight = _context.FlightDbSet.Where(u => u.Id == form.flightId).Include(u => u.Provider).Include(u => u.Provider.Owner).FirstOrDefault();
                if (flight == null)
                {
                    throw new Exception("BAD QUERY");
                }
                if (found.Username != flight.Provider.Owner.Username || flight.Price.Value < form.slashedPrice)
                {
                    throw new Exception("BAD QUERY");
                }

                StringBuilder sb = new StringBuilder(flight.Seats);
                foreach (int item in form.seatsToDiscount)
                {
                    if (sb[item] == '1')
                    {
                        throw new Exception("SEAT ALREADY TAKEN");
                    }
                    sb[item] = '5';
                }

                flight.Seats           = sb.ToString();
                flight.DiscountedPrice = form.slashedPrice;
                _context.SaveChanges();
            }
        }
 public HttpResponseMessage AddSpecialOffer(AddOfferForm form)
 {
     AvioCompanyDbManager.AddSpecialOffer(form);
     return(Request.CreateResponse(HttpStatusCode.OK));
 }