Exemple #1
0
        public void Multiple_UnitofWorkCommit()
        {
            Action work1 = () =>
            {
                var t14Repo = LocalServiceLocator.GetService <IT14Repository>();
                t14Repo.Add(new T14(Guid.NewGuid().ToString("N"), "ok"));
                t14Repo.Context.Commit();
                //return t14Repo.Context;
            };

            Action work2 = () =>
            {
                var orderRepository = LocalServiceLocator.GetService <IYmtOrderRepository>();
                var order           = new YmtOrder("aacd0bc4-34e5-4c0f-a255-214d567698cd", "test_order", 77);
                order.AddOrderLine(new OrderLine(100))
                .AddOrderLine(new OrderLine(120))
                .AddOrderLine(new OrderLine(150))
                .SetAddress(new ReceiptAddress {
                    City = "A", Zip = "B", Street = "C"
                });
                var verify = order.Validator();
                Console.WriteLine(verify.Message);
                Assert.AreEqual(true, verify.Success);
                orderRepository.AddOrUpdate(e => e.Id, order);
                orderRepository.Context.Commit();
                //return orderRepository.Context;
            };

            MultipleUnitOfWorkBuilder.Instance.Commit(work1, work2);
            //using (MultipleUnitOfWorkBuilder.Instance.Append(work1).Append(work2).Commit())
            //{
            //};
        }
Exemple #2
0
        public void SaveBath_Order()
        {
            var orderRepository = LocalServiceLocator.GetService <IYmtOrderRepository>();

            //var orderList = new HashSet<Ymt_OrderLine>();
            for (var i = 0; i < 50000; i++)
            {
                //1.
                var order = new YmtOrder(Guid.NewGuid().ToString(), "ok", 20M);

                order.SetAddress(new ReceiptAddress {
                    City = "A", Street = "B", Zip = "CCC"
                });
                //2.
                //这里是DTO映射到实体
                //var order = orderDto.MapTo<OrderDto, Ymt_Order>();

                //3.
                //这里是实体验证(实体需要继承 IValidatableObject 接口),主意:如果不显示执行xx.Validatory 方法,程序会自动隐式执行实体验证
                var val = order.Validator();
                Assert.AreEqual(true, val.Success, val.Message);
                //验证的原始写法
                //var entityValidator = EntityValidatorFactory.CreateValidator();
                //Assert.AreEqual(false, entityValidator.IsValid(order));

                //3.
                //
                orderRepository.Add(order);
            }
            //4
            var result = orderRepository.Context.Commit();

            Assert.AreEqual(true, result.Success);
            Assert.AreEqual(3, result.ResultData);
        }
Exemple #3
0
        public void OneToOne_Order()
        {
            var order = new YmtOrder(Guid.NewGuid().ToString("N"), "TT", 55.78M);

            Assert.AreEqual(true, order.Validator().ResultData.Success);
            //1:1
            order.SetAddress(new ReceiptAddress {
                City = "A", Street = "C", Zip = "D"
            });
            var orderRepository = LocalServiceLocator.GetService <IYmtOrderRepository>();

            orderRepository.Add(order);
            var x = orderRepository.Context.Commit();

            Assert.AreEqual(1, x.ResultData);
        }
Exemple #4
0
        public void AddOrUpdateOrder()
        {
            var orderRepository = new YmtOrderRepository(new EFUnitOfWork("orderContext"));//LocalServiceLocator.GetService<IYmtOrderRepository>();
            var order           = new YmtOrder("0000b222-db89-4c4b-b226-1fc694d3d065", "test order", 60);

            //
            order.AddOrderLine(new OrderLine(100))
            .AddOrderLine(new OrderLine(120))
            .AddOrderLine(new OrderLine(150))
            .SetAddress(new ReceiptAddress {
                City = "A", Zip = "B", Street = "C"
            });
            var verify = order.Validator();

            Console.WriteLine(verify.Message);
            Assert.AreEqual(true, verify.Success);
            orderRepository.AddOrUpdate(e => e.Id, order);
            orderRepository.Context.Commit();
        }