Пример #1
0
		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);
		}
Пример #2
0
		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 };
		}
Пример #3
0
		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;
		}
Пример #4
0
		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;
		}