Esempio n. 1
0
 public ResResultModel ExportOrderMake(OrderMakeModel model)
 {
     try
     {
         return(ResResult.Response(true, MC.M_Save_Ok, ""));
     }
     catch (Exception ex)
     {
         return(ResResult.Response(false, ex.Message, ""));
     }
 }
        public void InvokeAddMethodOnOrders_WhenCourierFoundAndUsernameExists()
        {
            // Arrange
            var mockContext = new Mock <IOnlineStoreContext>();
            var usersMock   = new List <User> {
                new User {
                    Username = "******"
                }
            }.GetQueryableMockDbSet();
            var couriersMock = new List <Courier> {
                new Courier {
                    FirstName = "Peshko", LastName = "Peshkov"
                }
            }.GetQueryableMockDbSet();
            var ordersMock = new List <Order> {
                new Order()
            }.GetQueryableMockDbSet();
            var productsMock = new List <Product> {
                new Product {
                    Name = "Testproduct", Quantity = 5
                }
            }.GetQueryableMockDbSet();
            var orderProductsMock = new List <OrderProduct> {
                new OrderProduct()
            }.GetQueryableMockDbSet();

            IDictionary <string, int> productsCounts = new Dictionary <string, int>();

            productsCounts.Add("Testproduct", 2);
            var mockDateTimeProvider = new MockDateTimeProvider();

            mockContext.Setup(x => x.Users).Returns(usersMock.Object);
            mockContext.Setup(x => x.Couriers).Returns(couriersMock.Object);
            mockContext.Setup(s => s.Orders).Returns(ordersMock.Object);
            mockContext.Setup(s => s.Products).Returns(productsMock.Object);
            mockContext.Setup(s => s.OrderProducts).Returns(orderProductsMock.Object);

            var service     = new Logic.Services.OrderService(mockContext.Object);
            var orderToMake = new OrderMakeModel
            {
                Username             = "******",
                OrderedOn            = mockDateTimeProvider.Now,
                Comment              = "Tralala",
                ProductNameAndCounts = productsCounts
            };

            // Act
            service.MakeOrder(orderToMake);

            //Assert
            ordersMock.Verify(v => v.Add(It.IsNotNull <Order>()), Times.Once);
        }
        public void ReduceTheAvailableProductQuantity_WhenOrderIsFinished()
        {
            // Arrange
            var mockContext = new Mock <IOnlineStoreContext>();
            var usersMock   = new List <User> {
                new User {
                    Username = "******"
                }
            }.GetQueryableMockDbSet();
            var couriersMock = new List <Courier> {
                new Courier {
                    FirstName = "Peshko", LastName = "Peshkov"
                }
            }.GetQueryableMockDbSet();
            var ordersMock = new List <Order> {
                new Order()
            }.GetQueryableMockDbSet();
            var productsMock = new List <Product> {
                new Product {
                    Name = "Testproduct", Quantity = 5
                }
            }.GetQueryableMockDbSet();
            var orderProductsMock = new List <OrderProduct> {
                new OrderProduct()
            }.GetQueryableMockDbSet();

            IDictionary <string, int> productsCounts = new Dictionary <string, int>();

            productsCounts.Add("Testproduct", 2);
            var mockDateTimeProvider = new MockDateTimeProvider();

            mockContext.Setup(x => x.Users).Returns(usersMock.Object);
            mockContext.Setup(x => x.Couriers).Returns(couriersMock.Object);
            mockContext.Setup(s => s.Orders).Returns(ordersMock.Object);
            mockContext.Setup(s => s.Products).Returns(productsMock.Object);
            mockContext.Setup(s => s.OrderProducts).Returns(orderProductsMock.Object);

            var service     = new Logic.Services.OrderService(mockContext.Object);
            var orderToMake = new OrderMakeModel
            {
                Username             = "******",
                OrderedOn            = mockDateTimeProvider.Now,
                Comment              = "Tralala",
                ProductNameAndCounts = productsCounts
            };

            // Act
            service.MakeOrder(orderToMake);

            //Assert
            Assert.AreEqual(3, mockContext.Object.Products.FirstOrDefault(f => f.Name == "Testproduct").Quantity);
        }
        public void ThrowArgumentException_WhenQuantityIsNotEnough()
        {
            // Arrange
            var mockContext = new Mock <IOnlineStoreContext>();
            var usersMock   = new List <User> {
                new User {
                    Username = "******"
                }
            }.GetQueryableMockDbSet();
            var couriersMock = new List <Courier> {
                new Courier {
                    FirstName = "Peshko", LastName = "Peshkov"
                }
            }.GetQueryableMockDbSet();
            var ordersMock = new List <Order> {
                new Order()
            }.GetQueryableMockDbSet();
            var productsMock = new List <Product> {
                new Product {
                    Name = "Testproduct", Quantity = 5
                }
            }.GetQueryableMockDbSet();
            var orderProductsMock = new List <OrderProduct> {
                new OrderProduct()
            }.GetQueryableMockDbSet();

            IDictionary <string, int> productsCounts = new Dictionary <string, int>();

            productsCounts.Add("Testproduct", 7);
            var mockDateTimeProvider = new MockDateTimeProvider();

            mockContext.Setup(x => x.Users).Returns(usersMock.Object);
            mockContext.Setup(x => x.Couriers).Returns(couriersMock.Object);
            mockContext.Setup(s => s.Orders).Returns(ordersMock.Object);
            mockContext.Setup(s => s.Products).Returns(productsMock.Object);
            mockContext.Setup(s => s.OrderProducts).Returns(orderProductsMock.Object);

            var service     = new Logic.Services.OrderService(mockContext.Object);
            var orderToMake = new OrderMakeModel
            {
                Username             = "******",
                OrderedOn            = mockDateTimeProvider.Now,
                Comment              = "Tralala",
                ProductNameAndCounts = productsCounts
            };

            //Act && Assert
            Assert.ThrowsException <ArgumentException>(() => service.MakeOrder(orderToMake));
        }
        public void ThrowArgumentException_WhenUserNotFound()
        {
            // Arrange
            var mockContext = new Mock <IOnlineStoreContext>();
            var usersMock   = new List <User>().GetQueryableMockDbSet();

            mockContext.Setup(x => x.Users).Returns(usersMock.Object);

            var service     = new Logic.Services.OrderService(mockContext.Object);
            var orderToMake = new OrderMakeModel
            {
                Username = "******"
            };

            // Act & Assert
            Assert.ThrowsException <ArgumentException>(() => service.MakeOrder(orderToMake));
        }
Esempio n. 6
0
        public ResResultModel GetOrderMakeList(OrderMakeModel model)
        {
            try
            {
                if (model.PageIndex < 1)
                {
                    model.PageIndex = 1;
                }
                if (model.PageSize < 1)
                {
                    model.PageSize = 10;
                }
                int           totalRecord = 0;
                var           bll         = new OrderMake();
                StringBuilder sqlWhere    = null;
                ParamsHelper  parms       = null;

                #region 构造查询条件

                new Auth().CreateSearchItem(ref sqlWhere, ref parms);

                if (!string.IsNullOrWhiteSpace(model.OrderCode))
                {
                    if (sqlWhere == null)
                    {
                        sqlWhere = new StringBuilder(500);
                    }
                    if (parms == null)
                    {
                        parms = new ParamsHelper();
                    }
                    sqlWhere.Append("and OrderCode like @OrderCode ");
                    var parm = new SqlParameter("@OrderCode", SqlDbType.VarChar, 36);
                    parm.Value = "%" + model.OrderCode + "%";
                    parms.Add(parm);
                }
                if (!string.IsNullOrWhiteSpace(model.CustomerCode))
                {
                    if (sqlWhere == null)
                    {
                        sqlWhere = new StringBuilder(400);
                    }
                    if (parms == null)
                    {
                        parms = new ParamsHelper();
                    }
                    sqlWhere.Append("and CustomerCode like @CustomerCode ");
                    var parm = new SqlParameter("@CustomerCode", SqlDbType.VarChar, 36);
                    parm.Value = "%" + model.CustomerCode + "%";
                    parms.Add(parm);
                }
                if (!string.IsNullOrWhiteSpace(model.StaffCode))
                {
                    if (sqlWhere == null)
                    {
                        sqlWhere = new StringBuilder(300);
                    }
                    if (parms == null)
                    {
                        parms = new ParamsHelper();
                    }
                    sqlWhere.Append("and StaffCode like @StaffCode ");
                    var parm = new SqlParameter("@StaffCode", SqlDbType.VarChar, 36);
                    parm.Value = "%" + model.StaffCode + "%";
                    parms.Add(parm);
                }
                if (!string.IsNullOrWhiteSpace(model.PayWay))
                {
                    if (sqlWhere == null)
                    {
                        sqlWhere = new StringBuilder(200);
                    }
                    if (parms == null)
                    {
                        parms = new ParamsHelper();
                    }
                    sqlWhere.Append("and PayWay like @PayWay ");
                    var parm = new SqlParameter("@PayWay", SqlDbType.VarChar, 36);
                    parm.Value = "%" + model.PayWay + "%";
                    parms.Add(parm);
                }
                if (!string.IsNullOrWhiteSpace(model.ServiceProduct))
                {
                    if (sqlWhere == null)
                    {
                        sqlWhere = new StringBuilder(100);
                    }
                    if (parms == null)
                    {
                        parms = new ParamsHelper();
                    }
                    sqlWhere.Append("and ServiceProduct like @ServiceProduct ");
                    var parm = new SqlParameter("@ServiceProduct", SqlDbType.VarChar, 36);
                    parm.Value = "%" + model.ServiceProduct + "%";
                    parms.Add(parm);
                }

                #region 开始与结束日期段

                DateTime startDate = DateTime.MinValue;
                DateTime endDate   = DateTime.MinValue;
                if (!string.IsNullOrWhiteSpace(model.StartDate))
                {
                    DateTime.TryParse(model.StartDate, out startDate);
                }
                if (!string.IsNullOrWhiteSpace(model.EndDate))
                {
                    DateTime.TryParse(model.EndDate, out endDate);
                }
                if (startDate != DateTime.MinValue && endDate != DateTime.MinValue)
                {
                    if (sqlWhere == null)
                    {
                        sqlWhere = new StringBuilder(300);
                    }
                    if (parms == null)
                    {
                        parms = new ParamsHelper();
                    }

                    sqlWhere.Append(@"and (RecordDate between @StartDate and @EndDate) ");
                    var parm = new SqlParameter("@StartDate", SqlDbType.DateTime);
                    parm.Value = startDate;
                    parms.Add(parm);
                    parm       = new SqlParameter("@EndDate", SqlDbType.DateTime);
                    parm.Value = DateTime.Parse(endDate.ToString("yyyy-MM-dd") + " 23:59:59");
                    parms.Add(parm);
                }
                else
                {
                    if (startDate != DateTime.MinValue)
                    {
                        if (sqlWhere == null)
                        {
                            sqlWhere = new StringBuilder(300);
                        }
                        if (parms == null)
                        {
                            parms = new ParamsHelper();
                        }

                        sqlWhere.Append(@"and (RecordDate >= @StartDate) ");
                        var parm = new SqlParameter("@StartDate", SqlDbType.DateTime);
                        parm.Value = startDate;
                        parms.Add(parm);
                    }
                    if (endDate != DateTime.MinValue)
                    {
                        if (sqlWhere == null)
                        {
                            sqlWhere = new StringBuilder(300);
                        }
                        if (parms == null)
                        {
                            parms = new ParamsHelper();
                        }

                        sqlWhere.Append(@"and (RecordDate <= @EndDate) ");
                        var parm = new SqlParameter("@EndDate", SqlDbType.DateTime);
                        parm.Value = DateTime.Parse(endDate.ToString("yyyy-MM-dd") + " 23:59:59");
                        parms.Add(parm);
                    }
                }

                #endregion

                #endregion

                var list = bll.GetListByJoin(model.PageIndex, model.PageSize, out totalRecord, sqlWhere == null ? null : sqlWhere.ToString(), parms == null ? null : parms.ToArray());

                return(ResResult.Response(true, "", "{\"total\":" + totalRecord + ",\"rows\":" + JsonConvert.SerializeObject(list) + "}"));
            }
            catch (Exception ex)
            {
                return(ResResult.Response(false, ex.Message, ""));
            }
        }