public List<DesignRequestBO> GetDesignRequests(DesignRequestSearch searchObj) { using (var context = new InThuDoEntities()) { var query = (from dr in context.DesignRequests join od in context.OrderItems on dr.OrderItemId equals od.OrderItemId join o in context.Orders on od.OrderId equals o.OrderId where (dr.Deleted == null || dr.Deleted == false) && (searchObj.CustomerId == 0 || o.CustomerId == searchObj.CustomerId) && (searchObj.ProductId == 0 || od.ProductId == searchObj.ProductId) && (searchObj.DesignerId == 0 || dr.DesignerId == searchObj.DesignerId) && (searchObj.RequestFrom == null || dr.BeginDate >= searchObj.RequestFrom) && (searchObj.RequestTo == null || dr.EndDate <= searchObj.RequestTo) select new DesignRequestBO() { DesignRequestId = dr.DesignRequestId, Description = dr.Description, DesignerId = dr.DesignerId, BeginDate = dr.BeginDate, EndDate = dr.EndDate, Cost = dr.Cost, CreatedBy = dr.CreatedBy, CreatedOn = dr.CreatedOn, LastEditedBy = dr.LastEditedBy, LastEditedOn = dr.LastEditedOn, OrderItemId = dr.OrderItemId, ApprovedByCustomer = dr.ApprovedByCustomer, Note = dr.Note, ApprovedDate = dr.ApprovedDate, OrderId = o.OrderId, OrderDate = o.OrderDate, ProductName = od.Product.Name, OrderItem = new OrderItemlBO() { OrderItemId = od.OrderItemId } }).Distinct().ToList(); var orders = from o in context.Orders join od in context.OrderItems on o.OrderId equals od.OrderId join dr in context.DesignRequests on od.OrderItemId equals dr.OrderItemId select o; var orderDetails = (from od in context.OrderItems join o in orders on od.OrderId equals o.OrderId where (od.Deleted == false || od.Deleted == null) select new OrderItemlBO() { OrderItemId = od.OrderItemId, }).Distinct().ToList(); foreach (OrderItemlBO od in orderDetails) { od.OrderItemStatus = this.GetOrderItemStatusIncludedOverDue(od.OrderItemId); } if (searchObj.DesignRequestStatus != 0) { query = (from q in query where q.DesignRequestStatus == searchObj.DesignRequestStatus select q).ToList(); } foreach (DesignRequestBO dr in query) { dr.OrderItem.OrderItemStatus = this.GetOrderItemStatusIncludedOverDue(dr.OrderItem.OrderItemId); } return query; } }
public List<DesignRequestBO> GetDesignRequests(DesignRequestSearch searchObj) { return orderDao.GetDesignRequests(searchObj); }
protected void btFind_Click(object sender, EventArgs e) { DateTime? requestFrom = ctrlDatePickerFrom.SelectedDate; DateTime? requestTo = ctrlDatePickerTo.SelectedDate; int custId = 0; int.TryParse(ctrlCustomerSelect.CustomerId, out custId); int productId = 0; int.TryParse(ddlProducts.SelectedValue, out productId); int designRequestStatus = 0; int.TryParse(ddlDesignRequestStatus.SelectedValue, out designRequestStatus); int designerId = 0; int.TryParse(ddlDesigner.SelectedValue, out designerId); DesignRequestSearch searchObj = new DesignRequestSearch() { RequestFrom = requestFrom, RequestTo = requestTo, CustomerId = custId, ProductId = productId, DesignRequestStatus = (DesignRequestStatusEnum)designRequestStatus, DesignerId = designerId }; List<DesignRequestBO> designRequests = this.OrderService.GetDesignRequests(searchObj); grvDesignRequest.DataSource = designRequests; grvDesignRequest.DataBind(); List<OrderItemlBO> orderDetail = new List<OrderItemlBO>(); foreach(DesignRequestBO dr in designRequests) { orderDetail.Add(this.OrderService.GetOrderDetailById(dr.OrderItemId)); } lbTotalRequest.Text = designRequests.Count.ToString(); lbTotalDesignRequestCreated.Text = designRequests.Where(od => od.DesignRequestStatus == DesignRequestStatusEnum.DesignRequestCreated).Count().ToString(); lbTotalDesignRequestDesigning.Text = designRequests.Where(od => od.DesignRequestStatus == DesignRequestStatusEnum.Designing).Count().ToString(); lbTotalDesignRequestWaitForApproved.Text = designRequests.Where(od => od.DesignRequestStatus == DesignRequestStatusEnum.DesignCopmleted).Count().ToString(); lbTotalDesignRequestApproved.Text = designRequests.Where(od => od.DesignRequestStatus == DesignRequestStatusEnum.DesignApprovedByCustomer).Count().ToString(); lbTotalDesignRequestNOTApproved.Text = designRequests.Where(od => od.DesignRequestStatus == DesignRequestStatusEnum.DesignNotApproved).Count().ToString(); }