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; }
public OrderStatusViewModel() { Criteria = new OrderStatusSearchCriteria(); UpdateModel = new OrderStatusUpdateViewModel(); }