Ejemplo n.º 1
0
        public ActionResult Buy(string Address)
        {
            if (IsLogon())
            {
                try
                {
                    var basket   = (List <Models.i.BasketModels>)Session["Basket"];
                    var guid     = new Guid(Address);
                    var _address = context.Addresses.FirstOrDefault(x => x.Id == guid);
                    //Sipariş Verildi = SV
                    //Ödeme Bildirimi = OB
                    //Ödeme Onaylandı = OO

                    var order = new DB.Orders()
                    {
                        AddedDate = DateTime.Now,
                        Address   = _address.AdresDescription,
                        Member_Id = CurrentUserId(),
                        Status    = "SV",
                        Id        = Guid.NewGuid()
                    };
                    //5
                    //ahmet 5
                    //mehmet 5
                    foreach (Models.i.BasketModels item in basket)
                    {
                        var oDetail = new DB.OrderDetails();
                        oDetail.AddedDate  = DateTime.Now;
                        oDetail.Price      = item.Product.Price * item.Count;
                        oDetail.Product_Id = item.Product.Id;
                        oDetail.Quantity   = item.Count;
                        oDetail.Id         = Guid.NewGuid();

                        order.OrderDetails.Add(oDetail);

                        var _product = context.Products.FirstOrDefault(x => x.Id == item.Product.Id);
                        if (_product != null && _product.UnitsInStock >= item.Count)
                        {
                            _product.UnitsInStock = _product.UnitsInStock - item.Count;
                        }
                        else
                        {
                            throw new Exception(string.Format("{0} ürünü için yeterli stok yoktur veya silinmiş bir ürünü almaya çalışıyorsunuz.", item.Product.Name));
                        }
                    }
                    context.Orders.Add(order);
                    context.SaveChanges();
                    Session["Basket"] = null;
                }
                catch (Exception ex)
                {
                    TempData["MyError"] = ex.Message;
                }
                return(RedirectToAction("Buy", "i"));
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
Ejemplo n.º 2
0
        public ActionResult Buy(string Address)
        {
            if (IsLogon())
            {
                try
                {
                    var basket   = (List <Models.i.BasketModels>)Session["Basket"];
                    int id       = int.Parse(Address);
                    var _address = context.Addresses.FirstOrDefault(X => X.Id == id);
                    //Sipariş Verildi. SV
                    //Ödeme Bildirimi. ÖB
                    //Ödeme Onaylandı. OO
                    var order = new DB.Orders()
                    {
                        AddedDate = DateTime.Now,
                        Address   = _address.Description,
                        Member_Id = CurrentUserId(),
                        Status    = "SV"
                    };
                    foreach (Models.i.BasketModels item in basket)
                    {
                        var oDetail = new DB.OrderDetails();
                        oDetail.AddedDate  = DateTime.Now;
                        oDetail.Price      = item.Product.Price * item.Count;
                        oDetail.Product_Id = item.Product.Id;
                        oDetail.Quantity   = item.Count;

                        order.OrderDetails.Add(oDetail);

                        var _product = context.Products.FirstOrDefault(x => x.Id == item.Product.Id);
                        if (_product != null && _product.UnitsInStock >= item.Count)
                        {
                            _product.UnitsInStock = _product.UnitsInStock - item.Count;
                        }
                        else
                        {
                            throw new Exception(string.Format("{0} Ürünü İçin Yeterli Stok Yoktur.", item.Product.Name));
                        }
                    }
                    context.Orders.Add(order);
                    context.SaveChanges();
                    Session["Basket"] = null;
                }
                catch (Exception ex)
                {
                    TempData["MyError"] = ex.Message;
                }
                return(RedirectToAction("Buy", "i"));
            }
            else
            {
                return(RedirectToAction("Login", "Account"));
            }
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Buy(string Address)
        {
            var currentuser = (UsKirtasiye.DB.Members)Session["LogonUser"];

            if (Session["LogonUser"] == null)
            {
                return(RedirectToAction("Index", "Index"));
            }
            else if (Address == null)
            {
                TempData["MyError"] = "Lutfen profilinizden adres bilgilerinizi giriniz";
            }
            else
            {
                try
                {
                    var basket       = (List <Models.Product_Detail.ProductBasketModels>)Session["Basket"];
                    var adresçevirme = Int64.Parse(Address);
                    var adress       = context.Addresses.FirstOrDefault(x => x.Id == adresçevirme);
                    // Ödeme bildilrimi yapıldı
                    // Spariş verildi
                    // Ödeme Onaylandı
                    var order = new DB.Orders()
                    {
                        AddedDate = DateTime.Now,
                        Address   = adress.AdresDescription,
                        Member_Id = currentuser.Id,
                        Id        = Guid.NewGuid(),
                        Status    = "SV",
                    };
                    foreach (Models.Product_Detail.ProductBasketModels item in basket)
                    {
                        var orderdetail = new DB.OrderDetails();
                        orderdetail.AddedDate  = DateTime.Now;
                        orderdetail.Price      = item.Products.Price * item.Count;
                        orderdetail.Product_Id = item.Products.Id;
                        orderdetail.Quantity   = item.Count;
                        orderdetail.Id         = Guid.NewGuid();
                        order.OrderDetails.Add(orderdetail);
                        var product = context.Products.FirstOrDefault(x => x.Id == item.Products.Id);
                        if (product != null && product.UnitsInStock >= item.Count)
                        {
                            product.UnitsInStock = product.UnitsInStock - item.Count;
                        }
                        else
                        {
                            throw new Exception(string.Format("{0} ürünü için yeterli stok yoktur veya silinmiş bir ürünü almaya çalışıyorsunuz", item.Products.Name));
                        }
                    }
                    context.Orders.Add(order);
                    context.SaveChanges();
                    await SendMail(currentuser, basket, order);
                }
                catch (Exception ex)
                {
                    ViewBag.MyError = ex.Message;
                    throw;
                }
            }

            return(RedirectToAction("Buy", "Buy"));
        }
Ejemplo n.º 4
0
        [HttpPost]  /*Basket.cshtml den satın al butonuyla dropdownlistteki adres id mizi aldık.Sepet bilgileride Sessiondan çekicez.*/
        public ActionResult BuyPro(string Address, string OrderDescription)
        {
            if (CurrentUser() == null)
            {
                return(RedirectToAction("Login", "Account"));
            }
            else
            {
                try
                {
                    var basket    = (List <Models.i.BasketModelssip>)Session["Basket"];
                    var guid      = new Guid(Address);
                    var orderdesc = OrderDescription;
                    var myaddress = context.Addresses.FirstOrDefault(x => x.Id == guid);
                    var order     = new DB.Orders()
                    {
                        AddedDate = DateTime.Now,
                        Address   = myaddress.AdresDescription,
                        Member_Id = CurrentUserId(),
                        //status:Siparis verildi=SV-Ödeme bildirimi=OB-Ödeme onaylandı=OO
                        Status      = "SV",
                        Description = orderdesc,
                        Id          = Guid.NewGuid() //Guid Id yi atadım.
                    };
                    foreach (Models.i.BasketModelssip item in basket)
                    {
                        var orderdetail = new DB.OrderDetails()
                        {
                            AddedDate = DateTime.Now,
                            //  Order_Id = order.Id,
                            Product_Id = item.Product.Id,
                            Price      = item.Product.Price * item.Count,
                            Quantity   = item.Count,
                            Id         = Guid.NewGuid()
                        };
                        order.OrderDetails.Add(orderdetail); //Direk içerisine eklendiğinden OrderId si otomatikmen Ordere bağlanıcak
                        var updateproduct = context.Products.FirstOrDefault(x => x.Id == item.Product.Id);


                        if (updateproduct.UnitsInStock >= item.Count && updateproduct.UnitsInStock >= 0 && updateproduct != null && updateproduct.IsContinued == true) //Ürün kontrolü
                        {
                            updateproduct.UnitsInStock = updateproduct.UnitsInStock - item.Count;                                                                      //Satıştan sonra ürünümüzün stoğunu güncelledim.
                        }
                        else  //Ürün kontrolünde aksilik çıkarsa ürün stok bitmesi satıştan kaldırılma vb.
                        {
                            throw new Exception(string.Format("{0} ürününde yeterli stok kalmamıştır yada satıştan kaldırılmıştır.Siparişiniz iptal ediliyor anlayışınız için teşekkürler.", item.Product.Name));
                        }
                    }
                    context.Orders.Add(order);  //Orderi ekledik ki order details de etkilensin
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    ViewBag.Error = e.Message;
                }
                int memberid   = CurrentUserId();
                var userorders = context.Orders.Where(x => x.Member_Id == memberid).ToList().OrderByDescending(x => x.AddedDate);

                return(View(userorders));
            }
        }