コード例 #1
0
        public void EditOrder()
        {
            var orderController = UnityConfig.Resolve <OrderController>();

            BaseCriteriaDTO criteria = new BaseCriteriaDTO
            {
                Filter     = "",
                OrderAsc   = true,
                OrderBy    = "",
                PageNumber = 1
            };

            var postResult = orderController.PostGetOrders(criteria).Result;

            var listOrders = postResult as OkNegotiatedContentResult <PagedListDTO <OrderDTO> >;

            //Modify Entity
            var entity = listOrders.Content.CurrentPageItems[0];

            entity.shipAdress = "sarasa";

            entity.Details[0].Quantity = 10000;
            entity.Details[0].Discount = 10000;

            var result = orderController.PostEditOrder(entity).Result;

            var posRes = result as OkResult;

            Assert.IsNotNull(posRes);
        }
コード例 #2
0
        public Task <PagedListDTO <OrderDTO> > GetOrders(BaseCriteriaDTO criteria)
        {
            //PageSize
            int pageSize = Convert.ToInt32(ConfigurationManager.AppSettings["pageSize"].ToString());

            //filter (expression in DB)
            Expression <Func <Order, bool> > filterExpression = x => x.Id != "0";

            //Azure cosmos db not support method toString, and we use the next Workarround
            int filterAmount = 0;

            int.TryParse(criteria.Filter, out filterAmount);

            if (!string.IsNullOrWhiteSpace(criteria.Filter))
            {
                filterExpression = filterExpression.Join(
                    x =>
                    (x.OrderCustomer != null && x.OrderCustomer.ContactName.ToUpper().Contains(criteria.Filter.ToUpper())) ||
                    x.ShipAdress.ToUpper().Contains(criteria.Filter.ToUpper()) ||
                    x.ShipCity.ToUpper().Contains(criteria.Filter.ToUpper()) ||
                    x.ShipCountry.ToUpper().Contains(criteria.Filter.ToUpper()) ||
                    x.ShipPostalCode.ToUpper().Contains(criteria.Filter.ToUpper()) ||
                    x.TotalAmount == filterAmount
                    );
            }

            //order by
            Expression <Func <Order, object> >[] orderByExpressions = this.GetOrderByExpressions_Orders(criteria.OrderBy);


            Tuple <List <Order>, int> q = repositoryOrders.GetAllAsync(criteria.PageNumber,
                                                                       pageSize, filterExpression, criteria.OrderAsc, orderByExpressions);

            //get total entities
            int totalItems = q.Item2;


            //parse to DTO
            List <OrderDTO> items = q.Item1.ToList().Select(m => new OrderDTO
            {
                Id         = Convert.ToInt32(m.Id),
                Created_At = m.Created_At,
                //OrderCustomer = m.OrderCustomer,
                Details = m.OrdersDetails.Where(x => x != null).Select(a => new OrderDetailDTO
                {
                    Id = Convert.ToInt32(a.OrderDetailId), OrderId = Convert.ToInt32(m.Id), Discount = a.Discount, ProductId = a.ProductId, ProductName = (a.ProductSold != null ? a.ProductSold.Name : ""), Quantity = a.Quantity
                }).ToList(),
                shipAdress     = m.ShipAdress,
                shipCity       = m.ShipCity,
                shipCountry    = m.ShipCountry,
                shipPostalCode = m.ShipPostalCode,
                TotalAmount    = m.TotalAmount
            }).ToList();


            var res = new PagedListDTO <OrderDTO>(totalItems, pageSize, items, criteria.PageNumber);

            return(Task.FromResult(res));
        }
コード例 #3
0
        public async Task <IHttpActionResult> PostGetOrders([FromBody] BaseCriteriaDTO criteria)
        {
            if (criteria == null)
            {
                return(BadRequest());
            }
            PagedListDTO <OrderDTO> result = await orderService.GetOrders(criteria);

            return(Ok(result));
        }
コード例 #4
0
        public void GetOrdersFilterShipCity()
        {
            var orderController = UnityConfig.Resolve <OrderController>();

            BaseCriteriaDTO criteria = new BaseCriteriaDTO
            {
                Filter     = "testAddress",
                OrderAsc   = true,
                OrderBy    = "",
                PageNumber = 1
            };

            var postResult = orderController.PostGetOrders(criteria).Result;

            var listOrders = postResult as OkNegotiatedContentResult <PagedListDTO <OrderDTO> >;

            Assert.IsTrue(listOrders.Content.TotalItems > 0);
        }
コード例 #5
0
        public void GetOrdersWithoutFilter()
        {
            var repo = UnityConfig.Resolve <IDocumentDbRepository <Order> >();

            var orderController = UnityConfig.Resolve <OrderController>();

            BaseCriteriaDTO criteria = new BaseCriteriaDTO
            {
                Filter     = "",
                OrderAsc   = true,
                OrderBy    = "",
                PageNumber = 1
            };

            var postResult = orderController.PostGetOrders(criteria).Result;

            var listOrders = postResult as OkNegotiatedContentResult <PagedListDTO <OrderDTO> >;


            Assert.IsTrue(listOrders.Content.TotalItems > 0);
        }