public IEnumerable<AssignmentHistoryViewModel> GetHistories(AssignmentFilters filter) { var historyFilter = BuildFilter(filter); historyFilter = _dashboardConditionFilters.GetElementFilter(filter, DashboardConditionFilterContext<AppraiserOrder>.AppraiserOrderListContext, historyFilter); return _appraiserOrderDeliveryService.GetAppraiserOrderListItems(historyFilter.ToFuncWithPagging(filter)).Select(CreateAssignmentHistoryViewModel).ToArray(); }
public int AllHistoriesCount(AssignmentFilters filters) { var historyFilter = BuildFilter(filters); historyFilter = _dashboardConditionFilters.GetElementFilter(filters, DashboardConditionFilterContext<AppraiserOrder>.AppraiserOrderListContext, historyFilter); return _appraiserOrderDeliveryService.GetAppraiserOrderListItemsCount(historyFilter.ToFunc(filters)); }
private ElementFilter<AssignmentColumnName, AppraiserOrderListItem, AssignmentFilters> BuildFilter(AssignmentFilters filter) { var notShowStatuses = new[] { OrderStatus.CreationProcess.ToString(), OrderStatus.Draft.ToString() }; var pendingAssignment = OrderStatus.PendingAssignment.ToString(); return ShorFilter.AddFilter<AssignmentColumnName, AppraiserOrderListItem, AssignmentFilters>(f => false, e => true). For(f => _securityContext.CurrentUser.Roles.All(e => e.RoleType == RoleType.Appraiser)). FilterBy(ao => ao.AppraiserOrder.Order.AcceptedAppraiserUserId != null && ao.AppraiserOrder.Order.AcceptedAppraiserUserId == _currentAppraiser.CurrentAppraiser.Id || ao.AppraiserOrder.IsDeclined). For(f => _securityContext.CurrentUser.Roles.Any(r => new[] { RoleType.CompanyAdminAndAppraiser, RoleType.AppraisalCompanyAdmin }.Contains(r.RoleType))). FilterBy(e => e.AppraiserOrder.Order.AcceptedAppraiserUserId == e.AppraiserOrder.AppraiserUser.Id && ((e.AppraiserOrder.Order.IsTestOrder && e.AppraiserOrder.Order.AcceptedAppraiserUserId == _currentAppraiser.CurrentAppraiser.Id) || !e.AppraiserOrder.Order.IsTestOrder) || e.AppraiserOrder.IsDeclined). For(e => true).FilterBy(e => !notShowStatuses.Contains(e.AppraiserOrder.Order.OrderStatusId)). For(e => true).FilterBy(e => e.AppraiserOrder.Order.OrderStatusId != pendingAssignment || (e.AppraiserOrder.IsDeclined)). AddQueryFilter(f => filter.To.HasValue, q => { var time = filter.To.Value; var toDate = new DateTime(time.Year, time.Month, time.Day).AddDays(1); return q.Where(order => order.AppraiserOrder.Order.AcceptDate < toDate); }). AddQueryFilter(f => filter.From.HasValue, q => { var time = filter.From.Value; var fromStart = new DateTime(time.Year, time.Month, time.Day); return q.Where(order => order.AppraiserOrder.Order.AcceptDate >= fromStart); }). AddOrders(AssignmentColumnName.OrderNumber, ao => ao.AppraiserOrder.Order.OrderPublicId). AddOrders(AssignmentColumnName.LoanNumber, ao => ao.AppraiserOrder.Order.GeneralInfo.LoanNumber). AddOrders(AssignmentColumnName.Borrower, ao => ao.AppraiserOrder.Order.GeneralInfo.BorrowerLastName + ao.AppraiserOrder.Order.GeneralInfo.BorrowerFirstName). AddOrder(AssignmentColumnName.Status, true, AppraiserOrderItemCollectionOrdersExtensions.AppraiserOrderStatusAscSorting()). AddOrder(AssignmentColumnName.Status, false, AppraiserOrderItemCollectionOrdersExtensions.AppraiserOrderStatusDescSorting()). AddOrders(AssignmentColumnName.LastActionDate, ao => ao.LastActionDate). AddOrders(AssignmentColumnName.AppraiserName, c => c.AppraiserOrder.AppraiserUser.User.LastName); }
public ActionResult Index() { var filters = new AssignmentHistoryFilterViewModel(new FiltersHelper(FiltersDetails)); FiltersDetails.LastOrder.IsDesc = true; FiltersDetails.LastOrder.DefaultColumn = AssignmentColumnName.LastActionDate.ToString(); var assignmentFilters = new AssignmentFilters { ColumnName = FiltersDetails.LastOrder.ToEnum(AssignmentColumnName.LastActionDate), IsAsc = !FiltersDetails.LastOrder.IsDesc, ItemsPerPage = FiltersDetails.PaggingDetails.ElementsPerPage, PageNumber = FiltersDetails.PaggingDetails.CurrentPage, From = AssignmentFilters.ParseDateTime(filters.FromDateFilter), To = AssignmentFilters.ParseDateTime(filters.ToDateFilter) }; var elementsCoutn = _assignmentHistoryService.AllHistoriesCount(assignmentFilters); FiltersDetails.PaggingDetails.SetPageCount(elementsCoutn).CheckElementOnPage(elementsCoutn); assignmentFilters.PageNumber = FiltersDetails.PaggingDetails.CurrentPage; var result = _assignmentHistoryService.GetHistories(assignmentFilters); return DashboardView("Index", result); }