Esempio n. 1
0
        public async Task <ActionResult> Create([Bind(Include = "SelectedGoodID,OrderID,Quantity,Price,CustomerID")] NewOrderedGoodViewModel neworderedGood)
        {
            if (Session["CurrentUserID"] == null)
            {
                RedirectToAction("Login", "Home");
            }
            int CurrentUserID = (int)Session["CurrentUserID"];


            if (ModelState.IsValid)
            {
                OrderedGood orderedGood = new OrderedGood
                {
                    UserID     = CurrentUserID,
                    CustomerID = neworderedGood.CustomerID,
                    GoodID     = neworderedGood.SelectedGoodID,
                    Quantity   = neworderedGood.Quantity,
                    OrderID    = neworderedGood.OrderID,
                    Price      = neworderedGood.Price,
                    TotalPrice = neworderedGood.Price * neworderedGood.Quantity
                };
                db.OrderedGoods.Add(orderedGood);
                await db.SaveChangesAsync();
            }

            return(RedirectToAction("ProcessOrder", "Orders", new { id = neworderedGood.OrderID }));
        }
Esempio n. 2
0
        // GET: Storages/avaiable/5&3
        public async Task <ActionResult> MatchGoods(int?id)
        {
            int         CurrentUserID = (int)Session["CurrentUserID"];
            OrderedGood orderedGood   = await db.OrderedGoods.FindAsync(id);

            OrderedGoodViewModel orderedgood = new OrderedGoodViewModel
            {
                OrderedGoodInfo = orderedGood,
                GoodName        = db.GoodInfoes.Find(orderedGood.GoodID).Name
            };
            List <StorageGoodViewModel> AvaiavleGoodsInStorage = new List <StorageGoodViewModel>();

            foreach (Storage storagegood in db.Storages.Where(d => d.OrderID == null && d.GoodID == orderedGood.GoodID && d.UserID == CurrentUserID))
            {
                AvaiavleGoodsInStorage.Add(new StorageGoodViewModel
                {
                    StorageGoodInfo = storagegood,
                    GoodName        = db.GoodInfoes.Find(storagegood.GoodID).Name
                });
            }
            MatchGoodViewModel MatchGoodinStorage = new MatchGoodViewModel
            {
                OrderedGood = orderedgood,
                //OrderInfoView = await GetOrderViewModelData(OrderID),
                AvailableGoodsInStorage = AvaiavleGoodsInStorage
            };

            return(View(MatchGoodinStorage));
        }
Esempio n. 3
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            OrderedGood orderedGood = await db.OrderedGoods.FindAsync(id);

            db.OrderedGoods.Remove(orderedGood);
            await db.SaveChangesAsync();

            return(RedirectToAction("ProcessOrder", "Orders", new { id = orderedGood.OrderID }));
        }
Esempio n. 4
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,GoodID,Quantity,OrderID,SellPrice")] OrderedGood orderedGood)
        {
            if (ModelState.IsValid)
            {
                db.Entry(orderedGood).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(orderedGood));
        }
Esempio n. 5
0
        public async Task <ActionResult> Assign([Bind(Include = "SelectedStorageID,SelectedOrderedGoodID")] MatchGoodViewModel AssignedGoodInStorage)
        {
            if (AssignedGoodInStorage == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Storage storage = await db.Storages.FindAsync(AssignedGoodInStorage.SelectedStorageID);

            int         orderedgoodID = AssignedGoodInStorage.SelectedOrderedGoodID;
            OrderedGood orderedgood   = await db.OrderedGoods.FindAsync(orderedgoodID);

            int GoodID = orderedgood.GoodID;

            if (storage == null)
            {
                return(HttpNotFound());
            }
            int avaiableamount = storage.Quantity;
            int selectedamount = orderedgood.Quantity;

            if (selectedamount > avaiableamount)
            {
                return(HttpNotFound());
            }
            int restofgoodamount = avaiableamount - selectedamount;

            if (restofgoodamount == 0)
            {
                storage.OrderID         = orderedgood.OrderID;
                db.Entry(storage).State = EntityState.Modified;
                await db.SaveChangesAsync();
            }
            else
            {
                storage.OrderID         = orderedgood.OrderID;
                storage.Quantity        = selectedamount;
                db.Entry(storage).State = EntityState.Modified;
                await db.SaveChangesAsync();

                //add new record for rest
                Storage newstorage = new Storage
                {
                    GoodID    = storage.GoodID,
                    Cost      = storage.Cost,
                    Quantity  = restofgoodamount,
                    TotalCost = storage.Cost * restofgoodamount,
                };
                db.Storages.Add(newstorage);
                await db.SaveChangesAsync();
            }
            return(RedirectToAction("MatchGoods", "Orders", new { id = orderedgoodID }));
        }
Esempio n. 6
0
        // GET: OrderedGoods/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderedGood orderedGood = await db.OrderedGoods.FindAsync(id);

            if (orderedGood == null)
            {
                return(HttpNotFound());
            }
            return(View(orderedGood));
        }
Esempio n. 7
0
        // GET: OrderedGoods/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrderedGood orderedGood = await db.OrderedGoods.FindAsync(id);

            if (orderedGood == null)
            {
                return(HttpNotFound());
            }
            OrderedGoodViewModel orderedgoodVM = new OrderedGoodViewModel
            {
                OrderedGoodInfo = orderedGood,
                GoodName        = db.GoodInfoes.Find(orderedGood.GoodID).Name
            };

            return(View(orderedgoodVM));
        }
        public static async Task <OrderedGoodDto> AddToOrderedGood(int goodId, int amount, int buyerId, int orderId, decimal totalPrice)
        {
            using (var dbContext = new ApplicationDbContext())
            {
                var orderedGood = await dbContext.PurchaseGoods.Where(p => p.GoodsID.Equals(goodId) && p.OrderID.Equals(orderId)).FirstOrDefaultAsync();

                if (orderedGood == null)
                {
                    orderedGood = new OrderedGood
                    {
                        GoodsID      = goodId,
                        Amount       = amount,
                        CurrentPrice = totalPrice,
                        OrderID      = orderId
                    };

                    dbContext.PurchaseGoods.Add(orderedGood);
                    await dbContext.SaveChangesAsync();
                }
                else
                {
                    orderedGood.Amount += amount;
                    dbContext.PurchaseGoods.AddOrUpdate(orderedGood);
                    await dbContext.SaveChangesAsync();
                }

                return(new OrderedGoodDto
                {
                    ID = orderedGood.ID,
                    Amount = orderedGood.Amount,
                    CurrentPrice = orderedGood.CurrentPrice,
                    GoodsID = orderedGood.GoodsID,
                    OrderID = orderedGood.OrderID
                });
            }
        }