public void DeleteTest()
        {
            SaleOutput v = new SaleOutput();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.CustomerId  = AddCustomer();
                v.GoodsInfoId = AddGoodsInfo();
                v.SaleNumber  = 25;
                v.SalePrice   = 19;
                context.Set <SaleOutput>().Add(v);
                context.SaveChanges();
            }

            PartialViewResult rv = (PartialViewResult)_controller.Delete(v.ID.ToString());

            Assert.IsInstanceOfType(rv.Model, typeof(SaleOutputVM));

            SaleOutputVM vm = rv.Model as SaleOutputVM;

            v         = new SaleOutput();
            v.ID      = vm.Entity.ID;
            vm.Entity = v;
            _controller.Delete(v.ID.ToString(), null);

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                Assert.AreEqual(context.Set <SaleOutput>().Count(), 1);
            }
        }
        public void CreateTest()
        {
            PartialViewResult rv = (PartialViewResult)_controller.Create();

            Assert.IsInstanceOfType(rv.Model, typeof(SaleOutputVM));

            SaleOutputVM vm = rv.Model as SaleOutputVM;
            SaleOutput   v  = new SaleOutput();

            v.CustomerId  = AddCustomer();
            v.GoodsInfoId = AddGoodsInfo();
            v.SaleNumber  = 25;
            v.SalePrice   = 19;
            vm.Entity     = v;
            _controller.Create(vm);

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                var data = context.Set <SaleOutput>().FirstOrDefault();

                Assert.AreEqual(data.SaleNumber, 25);
                Assert.AreEqual(data.SalePrice, 19);
                Assert.AreEqual(data.CreateBy, "user");
                Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10);
            }
        }
        public void EditTest()
        {
            SaleOutput v = new SaleOutput();

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                v.CustomerId  = AddCustomer();
                v.GoodsInfoId = AddGoodsInfo();
                v.SaleNumber  = 25;
                v.SalePrice   = 19;
                context.Set <SaleOutput>().Add(v);
                context.SaveChanges();
            }

            PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString());

            Assert.IsInstanceOfType(rv.Model, typeof(SaleOutputVM));

            SaleOutputVM vm = rv.Model as SaleOutputVM;

            v    = new SaleOutput();
            v.ID = vm.Entity.ID;

            v.SaleNumber = 51;
            v.SalePrice  = 79;
            vm.Entity    = v;
            vm.FC        = new Dictionary <string, object>();

            vm.FC.Add("Entity.CustomerId", "");
            vm.FC.Add("Entity.GoodsInfoId", "");
            vm.FC.Add("Entity.SaleNumber", "");
            vm.FC.Add("Entity.SalePrice", "");
            _controller.Edit(vm);

            using (var context = new DataContext(_seed, DBTypeEnum.Memory))
            {
                var data = context.Set <SaleOutput>().FirstOrDefault();

                Assert.AreEqual(data.SaleNumber, 51);
                Assert.AreEqual(data.SalePrice, 79);
                Assert.AreEqual(data.UpdateBy, "user");
                Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10);
            }
        }
        public ActionResult Create(SaleOutputVM vm)
        {
            string sql = "SELECT * FROM GoodsInfos WHERE ID='{0}'";

            sql = string.Format(sql, vm.Entity.GoodsInfoId);
            DataTable dt        = DC.RunSQL(sql);
            decimal   oldNumber = new decimal();

            if (dt.Rows.Count > 0)
            {
                oldNumber = Convert.ToDecimal(dt.Rows[0]["InputNumber"].ToString());
            }

            decimal newNumber = oldNumber - vm.Entity.SaleNumber;

            if (!ModelState.IsValid)
            {
                return(PartialView(vm));
            }
            else
            {
                sql = "UPDATE GoodsInfos SET InputNumber='{0}' WHERE ID='{1}'";
                sql = string.Format(sql, newNumber, vm.Entity.GoodsInfoId);
                var cmd = DC.Database.GetDbConnection().CreateCommand();
                cmd.CommandText = sql;
                cmd.CommandType = CommandType.Text;
                cmd.Connection.Open();
                cmd.ExecuteReader();
                cmd.Connection.Close();

                vm.DoAdd();
                if (!ModelState.IsValid)
                {
                    vm.DoReInit();
                    return(PartialView(vm));
                }
                else
                {
                    return(FFResult().CloseDialog().RefreshGrid());
                }
            }
        }