public ActionResult Index() { FiltersDetails.LastOrder.DefaultColumn = DVSUserDashboardColumn.LastActionDate.ToString(); var filter = new DVSUserDashboardFilter { ColumnName = FiltersDetails.LastOrder.ToEnum(DVSUserDashboardColumn.LastActionDate), IsAsc = !FiltersDetails.LastOrder.IsDesc, ItemsPerPage = FiltersDetails.PaggingDetails.ElementsPerPage, PageNumber = FiltersDetails.PaggingDetails.CurrentPage, Fragment = FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel>(f => f.SearchFragment), CompanyName = FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel>(f => f.CompanyName), DateFrom = DVSUserDashboardFilter.ParseDateTime(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, DateTime?>(f => f.DateFrom)), DateTo = DVSUserDashboardFilter.ParseDateTime(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, DateTime?>(f => f.DateTo)), IsActive = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsActive)), IsCancelled = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsCancelled)), IsCompleted = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsCompleted)), IsOrderAccepted = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsOrderAccepted)), IsPaid = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsPaid)), IsPendingAssignment = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsPendingAssignment)), IsInspectionScheduled = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsInspectionScheduled)), IsInspectionCompleted = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsInspectionCompleted)), IsSubmittedToDVS = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsSubmittedToDVS)), IsReSubmittedToDVS = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsReSubmittedToDVS)), IsConditionCreated = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsConditionCreated)), IsConditionResolved = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsConditionResolved)), IsRejected = DVSUserDashboardFilter.ParseBool(FiltersDetails.GetFilterValue<DVSUserDashboardFilterViewModel, bool>(f => f.IsRejected)) }; var model = _dvsUserDashboardService.GetDvsUserDashboardViewModel(filter); model.Items = model.Items; FiltersDetails.PaggingDetails.SetPageCount(model.TotalItemsCount).CheckElementOnPage(model.TotalItemsCount); return DashboardView(NameHelper.Dashboard.DVSUserDashboard.Index, model); }
public DVSUserDashboardViewModel GetDvsUserDashboardViewModel(DVSUserDashboardFilter filter) { var statuses = GetOrderStatuses(filter); var orderBy = GetSortingOrder(filter, DVSUserDashboardColumn.LastActionDate, false); var orderExpression = GetFilter(filter); orderExpression = orderExpression.AndAlso(o => statuses.Contains(o.Order.OrderStatusId)); int totalItemCount; var orders = _dvsUserDashboardManager.GetOrders(orderExpression, orderBy, filter.PageNumber, filter.ItemsPerPage, out totalItemCount); return new DVSUserDashboardViewModel { Items = orders, TotalItemsCount = totalItemCount }; }
private static Expression<Func<DVSUserDashboardItem, bool>> GetFilter(DVSUserDashboardFilter filter) { var result = PredicateBuilder.True<DVSUserDashboardItem>(); if (!string.IsNullOrWhiteSpace(filter.Fragment)) { var fragmentTrimmed = filter.Fragment.Trim(); result = result.AndAlso( o => o.Order.GeneralInfo.BorrowerFirstName.Contains(fragmentTrimmed) || o.Order.GeneralInfo.BorrowerLastName.Contains(fragmentTrimmed) || o.Order.GeneralInfo.LoanNumber.Contains(fragmentTrimmed) || o.Order.OrderPublicId.Contains(fragmentTrimmed)); } if (filter.DateFrom.HasValue) { result = result.AndAlso(o => SqlFunctions.DateDiff("day", o.Order.CreationDate, filter.DateFrom) <= 0); } if (filter.DateTo.HasValue) { result = result.AndAlso(o => SqlFunctions.DateDiff("day", o.Order.CreationDate, filter.DateTo) >= 0); } if (!string.IsNullOrEmpty(filter.CompanyName)) { result = result.AndAlso(o => (o.Order.ClientCompany != null && o.Order.ClientCompany.CompanyName.Contains(filter.CompanyName)) || o.Order.CreatedByClientUser.Company.CompanyName.Contains(filter.CompanyName)); } result = result.AndAlso(o => !o.Order.IsTestOrder); return result; }
private static List<string> GetOrderStatuses(DVSUserDashboardFilter filter) { var statuses = new List<string>(); if (filter.IsCancelled || filter.IsCompleted || filter.IsOrderAccepted || filter.IsPendingAssignment || filter.IsInspectionScheduled || filter.IsInspectionCompleted || filter.IsSubmittedToDVS || filter.IsConditionCreated || filter.IsConditionResolved || filter.IsReSubmittedToDVS || filter.IsRejected) { if (filter.IsCancelled) statuses.Add(OrderStatus.Cancelled.ToString()); if (filter.IsCompleted) statuses.Add(OrderStatus.Completed.ToString()); if (filter.IsOrderAccepted) statuses.Add(OrderStatus.OrderAccepted.ToString()); if (filter.IsPendingAssignment) statuses.Add(OrderStatus.PendingAssignment.ToString()); if (filter.IsInspectionScheduled) statuses.Add(OrderStatus.InspectionScheduled.ToString()); if (filter.IsInspectionCompleted) statuses.Add(OrderStatus.InspectionCompleted.ToString()); if (filter.IsSubmittedToDVS) statuses.Add(OrderStatus.SubmittedToDVS.ToString()); if (filter.IsReSubmittedToDVS) statuses.Add(OrderStatus.ReSubmittedToDVS.ToString()); if (filter.IsConditionCreated) statuses.Add(OrderStatus.ConditionCreated.ToString()); if (filter.IsConditionResolved) statuses.Add(OrderStatus.ConditionResolved.ToString()); if (filter.IsRejected) statuses.Add(OrderStatus.Rejected.ToString()); } else { //add all orders with status <> Draft statuses.AddRange(new List<string> { OrderStatus.OrderAccepted.ToString(), OrderStatus.Cancelled.ToString(), OrderStatus.Completed.ToString(), OrderStatus.PendingAssignment.ToString(), OrderStatus.InspectionScheduled.ToString(), OrderStatus.InspectionCompleted.ToString(), OrderStatus.SubmittedToDVS.ToString(), OrderStatus.ReSubmittedToDVS.ToString(), OrderStatus.ConditionCreated.ToString(), OrderStatus.ConditionResolved.ToString(), OrderStatus.Rejected.ToString() }); } return statuses; }