Пример #1
0
        private List<OrderStatusSearchResult> SearchOrder(OrderStatusSearchCriteria criteria)
        {
            var results = new List<OrderStatusSearchResult>();
            var excludeStatus = new string[] { Status.Open.ToString(), Status.Closed.ToString() };

            using (var context = new TTTEntities())
            {
                var query =
                    (from a in context.trnsalesorders
                     join b in context.logpayments on a.PaymentGatewayTransID equals b.TransId
                    where !excludeStatus.Contains(a.refstatu.Name)
                        && b.Status == Settings.Default.iPay88_Status_Success
                    select new { SalesOrder = a, LogPayment = b }).AsQueryable();

                if (criteria.SalesOrderID.HasValue && criteria.SalesOrderID.Value > 0)
                    query = query.Where(a => a.SalesOrder.ID == criteria.SalesOrderID.Value);

                if (criteria.StatusID > 0)
                    query = query.Where(a => a.SalesOrder.StatusID == criteria.StatusID);

                if (criteria.PaymentSuccessDateFrom.HasValue)
                {
                    var fromDate = criteria.PaymentSuccessDateFrom.Value.Date.AddMilliseconds(-1);

                    query = query.Where(a => a.LogPayment.CreateDT > fromDate);
                }

                if (criteria.PaymentSuccessDateTo.HasValue)
                {
                    var toDate = criteria.PaymentSuccessDateTo.Value.Date.AddDays(1);

                    query = query.Where(a => a.LogPayment.CreateDT < toDate);
                }

                query = query.OrderByDescending(a => a.SalesOrder.ID)
                             .Take(50);

                results =
                    query.Select(a => new OrderStatusSearchResult
                    {
                        Email = a.SalesOrder.Email,
                        PaymentSuccessDate = a.LogPayment.CreateDT,
                        SalesOrderID = a.SalesOrder.ID,
                        Status = a.SalesOrder.refstatu.Name
                    }).ToList();
            }

            return results;
        }
Пример #2
0
 public OrderStatusViewModel()
 {
     Criteria = new OrderStatusSearchCriteria();
     UpdateModel = new OrderStatusUpdateViewModel();
 }