Пример #1
0
        public async Task AddPurchase_WithPriceMismatch_ShouldThrow()
        {
            var product = await GenerateValidProduct(_categoryRepo);

            var dbProduct = new Product
            {
                CategoryId   = product.CategoryId,
                Title        = product.Title,
                Model        = product.Model,
                Manufacturer = product.Manufacturer,
                Price        = product.Price,
                Discount     = product.Discount,
                Quantity     = product.Quantity,
            };

            _productRepo.Add(dbProduct);

            var productToPurchase = new List <PurchaseProduct>
            {
                new PurchaseProduct
                {
                    Id = dbProduct.Id,
                    PriceAfterDiscount = (decimal) new Random().Next(23, 2323),
                },
            };

            await Assert.ThrowsAsync <InvalidOperationException>(async() => await _purchaseService.AddPurchase(productToPurchase, UserName, TestAddress));
        }
Пример #2
0
        public IActionResult Buy(PurchaseBindingModel model, HttpResponse response)
        {
            PurchaseService service = new PurchaseService(Data.Data.Context);

            service.AddPurchase(model);
            Redirect(response, "/home/index");
            return(null);
        }
Пример #3
0
        public ActionResult saveorderdetail()
        {
            string      no         = WebRequest.GetString("no", true);
            string      type       = WebRequest.GetString("type", true);
            string      supplier   = WebRequest.GetString("supplier", true);
            int         i_supplier = Convert.ToInt32(supplier);
            string      remark     = WebRequest.GetString("remark", true);
            ReturnValue r          = new ReturnValue()
            {
                status = false
            };
            List <PurchaseDetailModel> temp = (List <PurchaseDetailModel>)SessionHelper.GetSession("PO" + no + Masterpage.CurrUser.staffid);

            if (temp == null || temp.Count < 1)
            {
                r.message = "不存在申请明细";
            }
            else
            {
                if (type == "add")
                {
                    string backno = purchaseService.AddPurchase("", Masterpage.CurrUser.staffid, Masterpage.CurrUser.depId, i_supplier, 0, 0, remark);
                    if (backno == "")
                    {
                        r.message = "申请单生成失败";
                    }
                    else
                    {
                        r = purchaseService.SavePurchaseDetail(backno, temp, i_supplier, remark);
                    }
                }
                else if (type == "edit")
                {
                    r = purchaseService.SavePurchaseDetail(no, temp, i_supplier, remark);
                }
            }
            SessionHelper.Del("PO" + no + Masterpage.CurrUser.staffid);
            return(Json(r, JsonRequestBehavior.AllowGet));
        }
        static void Main(string[] args)
        {
            using (var context = new EntityModel.EntityModel())
            {
                PurchaseService service = new PurchaseService(context);

                //Category clothes = new Category() { Name = "Clothes" };
                //Category shoes = new Category() { Name = "Shoes" };

                //service.AddCategory(clothes);
                //service.AddCategory(shoes);

                //Goods skirt = new Goods()
                //{
                //    Name = "Skirt",
                //    Description = "good decision during the heat",
                //    Price = 5.56M,
                //    Category = clothes
                //};

                //Goods sandals = new Goods()
                //{
                //    Name = "Sandals",
                //    Description = "good decision during the heat",
                //    Price = 5.56M,
                //    Category = shoes
                //};

                //service.AddGoods(skirt);
                //service.AddGoods(sandals);

                //Category product = new Category() { Name = "Product" };
                //context.Categories.Add(product);

                //Goods apple = new Goods() { Name = "Graspe", Category = product, Description = "taste fruit", Price = 1.23M };
                //context.Goods.Add(apple);

                //Goods apple2 = new Goods() { Name = "FRuita", Category = product, Description = "taste fruit", Price = 3.23M };
                //context.Goods.Add(apple2);

                //context.SaveChanges();

                //////////////foreach (var item in context.Goods)
                //////////////{
                //////////////    Console.WriteLine(item.Name);
                //////////////}

                //////////////Console.WriteLine(context.Goods.First().Name);

                //Purchase p = new Purchase() { Date = DateTime.Now };
                //Order o1 = new Order() { Goods = context.Goods.First(), Count = 2, Purchase = p };
                //Order o2 = new Order() { Goods = context.Goods.Where(i=>i.Price>3M).First(), Count = 1, Purchase = p };
                ////////p.OrdersList.Add(o1);
                ////////p.OrdersList.Add(o2);

                //context.Orders.Add(o1);
                //context.Orders.Add(o2);

                //context.Purchases.Add(p);
                //context.SaveChanges();

                //foreach (var item in context.Purchases)
                //{
                //    Console.WriteLine(item.Date);
                //    foreach (var item2 in item.OrdersList)
                //    {
                //        Console.WriteLine($"\t {item2.Goods.Name} {item2.Count}");
                //    }
                //}

                //Purchase p = context.Purchases.First();
                //Console.WriteLine(p.Date);
                //foreach (var item in p.OrdersList)
                //{
                //    Console.WriteLine(item.GoodsId);
                //}

                //context.SaveChanges();

                //foreach (var item in context.Categories)
                //{
                //    Console.WriteLine(item.Name);
                //}

                //service.GetAllGoods().First().Name = "Grapes";

                //Goods g = service.GetByPredicate(i => i.Price > 5);
                //Console.WriteLine(g.Name);

                //service.ChangePrice(service.GetFirstOrDefaultGoodsByPredicate(i => i.GoodsId == 3), 7.34M);
                //service.DeleteGoods(service.GetFirstOrDefaultGoodsByPredicate(i => i.GoodsId == 1));

                //foreach (var item in service.GetAllGoodsByPredicate(i=>i.Price>1))
                //
                //    Console.WriteLine($"{item.Name} {item.Price:C}");
                //}

                // Order o = new Order() { Goods = service.GetFirstOrDefaultGoodsByPredicate(i => i.GoodsId == 4), Count = 3 };
                //Order o = context.Orders.Find(3);

                //Purchase p = service.GetAllPurchase().First();
                //service.AddOrdersToPurchase(p, o);

                //foreach (var item in service.GetAllPurchase())
                //{
                //    Console.WriteLine(item.Date);
                //    foreach (var item2 in item.OrdersList)
                //    {
                //        Console.WriteLine($"{item2.Count} {item2.Goods.Name}");
                //    }
                //}

                Purchase p = new Purchase()
                {
                    Date = DateTime.Now
                };
                Order o = new Order()
                {
                    Goods = service.GetFirstOrDefaultGoodsByPredicate(i => i.GoodsId == 3), Count = 1
                };
                Order o2 = new Order()
                {
                    Goods = service.GetFirstOrDefaultGoodsByPredicate(i => i.GoodsId == 4), Count = 1
                };
                service.AddPurchase(p, o, o2);

                foreach (var item in service.GetAllPurchase())
                {
                    Console.WriteLine(item.Date);
                    foreach (var item2 in item.OrdersList)
                    {
                        Console.WriteLine($"{item2.Count} {item2.Goods.Name}");
                    }
                }

                Console.ReadKey();
            }
        }