コード例 #1
0
        public async Task <IHttpActionResult> PutSauce(int id, Sauce sauce)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != sauce.Id)
            {
                return(BadRequest());
            }

            db.Entry(sauce).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SauceExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #2
0
 public static async Task SaveChanges()
 {
     using (BeeftecheeDb context = new BeeftecheeDb())
     {
         await context.SaveChangesAsync();
     }
 }
コード例 #3
0
 public static async Task AddDrinkAsync(Drink drink)
 {
     using (BeeftecheeDb context = new BeeftecheeDb())
     {
         context.Drinks.Add(drink);
         await context.SaveChangesAsync();
     }
 }
コード例 #4
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            Order order = await db.Orders.FindAsync(id);

            db.Orders.Remove(order);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
コード例 #5
0
        public async Task <ActionResult> Create([Bind(Include = "Id,Name,BreadId,MeatId,CheeseId,SauceId,VeggieId")] Burger burger, HttpPostedFileBase ImageUrl)
        {
            if (ModelState.IsValid)
            {
                //Find and place the objects into the burger by their id
                burger.Meat   = db.Meats.Find(burger.MeatId);
                burger.Bread  = db.Breads.Find(burger.BreadId);
                burger.Sauce  = db.Sauces.Find(burger.SauceId);
                burger.Veggie = db.Veggies.Find(burger.VeggieId);
                burger.Cheese = db.Cheeses.Find(burger.CheeseId);

                //Calculate the Total Price of the burger

                burger.Price = GetTotalPrice(burger);


                //Get the photo
                if (ImageUrl != null)
                {
                    ImageUrl.SaveAs(Server.MapPath("~/Content/BurgerImages/" + ImageUrl.FileName));
                    burger.ImageUrl = ImageUrl.FileName;
                }



                //Save the Burger into the database
                db.Burgers.Add(burger);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.BreadId  = new SelectList(db.Breads, "Id", "Name", burger.BreadId);
            ViewBag.CheeseId = new SelectList(db.Cheeses, "Id", "Name", burger.CheeseId);
            ViewBag.MeatId   = new SelectList(db.Meats, "Id", "Name", burger.MeatId);
            ViewBag.SauceId  = new SelectList(db.Sauces, "Id", "Name", burger.SauceId);
            ViewBag.VeggieId = new SelectList(db.Veggies, "Id", "Name", burger.VeggieId);
            return(View(burger));
        }
コード例 #6
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,Name,Litre,Price")] Drink drink, HttpPostedFileBase ImageUrl)
        {
            if (ModelState.IsValid)
            {
                //Get the photo
                if (ImageUrl != null)
                {
                    ImageUrl.SaveAs(Server.MapPath("~/Content/DrinkImages/" + ImageUrl.FileName));
                    drink.ImageUrl = ImageUrl.FileName;
                }

                db.Entry(drink).State = EntityState.Modified;

                if (ImageUrl == null)
                {
                    db.Entry(drink).Property(m => m.ImageUrl).IsModified = false;
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(drink));
        }
コード例 #7
0
 public async Task DeleteAsync <T>(T entity) where T : class
 {
     try
     {
         using (BeeftecheeDb context = new BeeftecheeDb())
         {
             context.Entry(entity).State = EntityState.Deleted;
             await context.SaveChangesAsync();
         }
     }
     catch (Exception ex)
     {
         throw new ArgumentException("Invalid Entity", ex);
     }
 }
コード例 #8
0
        public async Task <ActionResult> Checkout()
        {
            var cart = CreateOrGetCart();

            Entities.Order  order = new Entities.Order();
            ApplicationUser user  = await System.Web.HttpContext.Current.GetOwinContext()
                                    .GetUserManager <ApplicationUserManager>()
                                    .FindByIdAsync(User.Identity.GetUserId());


            order.UserName     = user.UserName;
            order.Address      = user.Address;
            order.PostalCode   = user.PostalCode;
            order.City         = user.City;
            order.ContactPhone = user.PhoneNumber;
            order.OrderDate    = DateTime.Now;
            order.TotalPrice   = cart.GetTotalPrice();
            var stringArrayPrice   = order.TotalPrice.ToString("#.##").Split(',');
            var StringPriceWithDot = String.Join(".", stringArrayPrice);



            if (cart.CartBurgers.Any() || cart.CartDrinks.Any())
            {
                try
                {
                    var    apiContext = PayPalConfiguration.GetAPIContext();
                    string payerId    = Request.Params["PayerID"];
                    if (string.IsNullOrEmpty(payerId))
                    {
                        var itemList = new ItemList()
                        {
                            items = new List <Item>()
                            {
                                new Item()
                                {
                                    name     = order.UserName + "'s Order",
                                    currency = "USD",
                                    price    = StringPriceWithDot,
                                    quantity = "1",
                                    sku      = "Burgers&Drinks"
                                }
                            }
                        };

                        var payer = new Payer()
                        {
                            payment_method = "paypal"
                        };

                        var baseURI     = Request.Url.Scheme + "://" + Request.Url.Authority + "/Cart/Checkout?";
                        var guid        = Convert.ToString((new Random()).Next(100000));
                        var redirectUrl = baseURI + "guid=" + guid;
                        var redirUrls   = new RedirectUrls()
                        {
                            cancel_url = redirectUrl + "&cancel=true",
                            return_url = redirectUrl
                        };

                        var details = new Details()
                        {
                            subtotal = StringPriceWithDot
                        };

                        var amount = new Amount()
                        {
                            currency = "USD",
                            total    = StringPriceWithDot, // Total must be equal to sum of shipping, tax and subtotal.
                            details  = details
                        };

                        var transactionList = new List <Transaction>();
                        transactionList.Add(new Transaction()
                        {
                            description    = "Transaction description.",
                            invoice_number = CommonPayPal.GetRandomInvoiceNumber(),
                            amount         = amount,
                            item_list      = itemList,
                            payee          = new Payee
                            {
                                email = "*****@*****.**"
                            }
                        });

                        var payment = new Payment()
                        {
                            intent        = "sale",
                            payer         = payer,
                            transactions  = transactionList,
                            redirect_urls = redirUrls
                        };
                        var createdPayment = payment.Create(apiContext);
                        var links          = createdPayment.links.GetEnumerator();

                        string paypalRedirectUrl = null;

                        while (links.MoveNext())
                        {
                            Links lnk = links.Current;

                            if (lnk.rel.ToLower().Trim().Equals("approval_url"))
                            {
                                //saving the payapalredirect URL to which user will be redirected for payment
                                paypalRedirectUrl = lnk.href;
                            }
                        }

                        // saving the paymentID in the key guid
                        Session.Add(guid, createdPayment.id);

                        return(Redirect(paypalRedirectUrl));
                    }
                    else
                    {
                        // This function exectues after receving all parameters for the payment

                        var guid             = Request.Params["guid"];
                        var paymentId        = Session[guid] as string;
                        var paymentExecution = new PaymentExecution()
                        {
                            payer_id = payerId
                        };
                        var payment = new Payment()
                        {
                            id = paymentId
                        };

                        var executedPayment = payment.Execute(apiContext, paymentExecution);

                        //If executed payment failed then we will show payment failure message to user
                        if (executedPayment.state.ToLower() != "approved")
                        {
                            return(View("FailureView"));
                        }
                    }
                }
                catch (PayPal.PaymentsException ex)
                {
                    Debug.WriteLine(ex.InnerException);
                    Debug.WriteLine("----------------------");
                    Debug.WriteLine(ex.Data);
                    Debug.WriteLine("----------------------");
                    Debug.WriteLine(ex.Details);
                    Debug.WriteLine("----------------------");

                    Debug.WriteLine(ex.Response);
                }
                catch (Exception ex)
                {
                    return(View("FailureView"));
                }
                if (cart.CartBurgers.Any())
                {
                    foreach (var burger in cart.CartBurgers)
                    {
                        order.OrderBurgers.Add(new OrderBurger
                        {
                            Name       = burger.Name,
                            Price      = burger.Price,
                            Quantity   = burger.Quantity,
                            MeatName   = burger.MeatName,
                            BreadName  = burger.BreadName,
                            CheeseName = burger.CheeseName,
                            SauceName  = burger.SauceName,
                            VeggieName = burger.VeggieName
                        });
                    }
                }

                if (cart.CartDrinks.Any())
                {
                    foreach (var drink in cart.CartDrinks)
                    {
                        order.OrderDrinks.Add(new OrderDrink
                        {
                            Name     = drink.Name,
                            Litre    = drink.Litre,
                            Quantity = drink.Quantity,
                            Price    = drink.Price
                        });
                    }
                }

                db.Orders.Add(order);
                await db.SaveChangesAsync();

                //on successful payment, show success page to user.
                Session["count"] = 0;
                ClearCart();
                return(View("SuccessView", order));
            }


            return(RedirectToAction("Index", "Cart"));
        }