Exemple #1
0
		private Expression<Func<AppraiserOrder, bool>> GetPaymentHistoryFilter(PaymentHistoryFilter filter)
		{
			var completedStatus = OrderStatus.Completed.ToString();
			var result = PredicateBuilder.True<AppraiserOrder>();

			result = result.AndAlso(o => o.Order.OrderStatusId == completedStatus && o.Order.PaidDate.HasValue);

			if (_securityContext.CurrentUser.HasUserAnyRoles(RoleType.Appraiser))
			{
				result = result.AndAlso(o => o.AppraiserId == _securityContext.CurrentAppraiserUser.Id
																										&& o.Order.AcceptedAppraiserUserId == _securityContext.CurrentAppraiserUser.Id);
			}
			if (_securityContext.CurrentUser.HasUserAnyRoles(RoleType.AppraisalCompanyAdmin))
			{
				result = result.AndAlso(o => !o.Order.IsTestOrder);
			}
			if (_securityContext.CurrentUser.HasUserAnyRoles(RoleType.AppraisalCompanyAdmin, RoleType.CompanyAdminAndAppraiser))
			{
				var branchesId = _securityContext.CurrentAppraiserUser.Company.Branches.Select(b => b.Id).ToList();

				result = result.AndAlso(o => o.Order.AcceptedAppraiserUserId == o.AppraiserId && (o.AppraiserUser.Company.Id == _securityContext.CurrentAppraiserUser.Company.Id
																																																					|| branchesId.Any(b => b == o.AppraiserUser.Branch.Id)));
			}
			if (filter.DateFrom.HasValue)
			{
				result = result.AndAlso(o => EntityFunctions.TruncateTime(o.Order.PaidDate) >= EntityFunctions.TruncateTime(filter.DateFrom));
			}
			if (filter.DateTo.HasValue)
			{
				result = result.AndAlso(o => EntityFunctions.TruncateTime(o.Order.PaidDate) <= EntityFunctions.TruncateTime(filter.DateTo));
			}

			return result;
		}
Exemple #2
0
		public PaymentHistoryViewModel GetPaymentHistory(PaymentHistoryFilter filter)
		{
			var result = new PaymentHistoryViewModel();
			var where = GetPaymentHistoryFilter(filter);
			var orderBy = GetSortingOrder(filter, PaymentHistoryColumnName.OrderNumber, false);

			int totalCount;
			result.Items = GetPaymentHistoryList(where, orderBy, filter.ItemsPerPage, filter.PageNumber, out totalCount);
			result.TotalItemsCount = totalCount;
			result.IsAppraiserColumnVisible = _securityContext.CurrentUser.HasUserAnyRoles(RoleType.AppraisalCompanyAdmin, RoleType.CompanyAdminAndAppraiser);
			
			return result;
		}
		public ActionResult Index()
		{
			FiltersDetails.LastOrder.IsDesc = true;
			FiltersDetails.LastOrder.DefaultColumn = PaymentHistoryColumnName.PaidDate.ToString();
			var filter = new PaymentHistoryFilter
			{
				ColumnName = FiltersDetails.LastOrder.ToEnum(PaymentHistoryColumnName.PaidDate),
				IsAsc = !FiltersDetails.LastOrder.IsDesc,
				ItemsPerPage = FiltersDetails.PaggingDetails.ElementsPerPage,
				PageNumber = FiltersDetails.PaggingDetails.CurrentPage,
				DateFrom = AssignmentFilters.ParseDateTime(FiltersDetails.GetFilterValue<PaymentHistoryFilterViewModel, DateTime?>(f => f.DateFrom)),
				DateTo = AssignmentFilters.ParseDateTime(FiltersDetails.GetFilterValue<PaymentHistoryFilterViewModel, DateTime?>(f => f.DateTo))
			};
			var model = _paymentHistoryService.GetPaymentHistory(filter);
			FiltersDetails.PaggingDetails.SetPageCount(model.TotalItemsCount).CheckElementOnPage(model.TotalItemsCount);

			return DashboardView("Index", model);
		}
Exemple #4
0
		private Func<IQueryable<AppraiserOrder>, IOrderedQueryable<AppraiserOrder>> GetSortingOrder(PaymentHistoryFilter filter, PaymentHistoryColumnName defaultColumn, bool defaultIsAsc)
		{
			var targetOrder = OrderItems.FirstOrDefault(e => e.ColumnName == filter.ColumnName && e.IsAsc == filter.IsAsc);
			if (targetOrder != null)
			{
				return targetOrder.SortingOrder;
			}
			return OrderItems.Single(e => e.ColumnName == defaultColumn && e.IsAsc == defaultIsAsc).SortingOrder;
		}