Ejemplo n.º 1
0
        public async Task <QueryResult <Rental> > GetRentals(RentalQuery queryObject = null)
        {
            var queryResult = new QueryResult <Rental>();
            var query       = context.Rentals
                              .Include(rental => rental.Tenant)
                              .Include(rental => rental.Property)
                              .ThenInclude(property => property.Suburb)
                              .ThenInclude(suburb => suburb.State)
                              .AsQueryable();

            queryResult.TotalItems = await query.CountAsync();

            if (queryObject != null)
            {
                query = this.FilteredRequired(query, queryObject);
                query = this.SortByRequired(query, queryObject);
                queryResult.TotalItems = await query.CountAsync();

                query = this.PagingRequired(query, queryObject);
            }
            queryResult.Items = await query.ToListAsync();

            foreach (var rental in queryResult.Items)
            {
                rental.Property.Owner = await context.Owners.SingleOrDefaultAsync(owner => owner.Id == rental.Property.OwnerId);
            }
            return(queryResult);
        }
Ejemplo n.º 2
0
 private IQueryable <Rental> PagingRequired(IQueryable <Rental> query, RentalQuery queryObject)
 {
     if (queryObject.Page != 0 || queryObject.PageSize != 0)
     {
         return(query.ApplyPaging(queryObject));
     }
     return(query);
 }
Ejemplo n.º 3
0
        public ActionResult Cancelled()
        {
            var query = new RentalQuery {
                IsCancelled = true
            };
            var cancelledRooms = _unitOfWork.Rentals.GetRentals(query);

            var viewModel = Mapper.Map <IEnumerable <Rental>, List <RentalListViewModel> >(cancelledRooms);

            return(View(viewModel));
        }
Ejemplo n.º 4
0
        public ActionResult Index()
        {
            var query = new RentalQuery {
                IsCancelled = false
            };
            var rentals = _unitOfWork.Rentals.GetRentals(query);

            var viewModel = Mapper.Map <IEnumerable <Rental>, List <RentalListViewModel> >(rentals);

            return(View(viewModel));
        }
Ejemplo n.º 5
0
        public ActionResult ExpiringThisMonth()
        {
            var firstDayOfMonth = DateTimeExtensions.CalculateFirstDayOfThisMonth();
            var lastDayOfMonth  = DateTimeExtensions.CalculateLastDayOfThisMonth(firstDayOfMonth);

            var query = new RentalQuery {
                StartDate = firstDayOfMonth, EndDate = lastDayOfMonth
            };
            var expiringRentals = _unitOfWork.Rentals.GetRentals(query);

            var viewModel = Mapper.Map <IEnumerable <Rental>, List <RentalListViewModel> >(expiringRentals);

            return(View(viewModel));
        }
Ejemplo n.º 6
0
 private IQueryable <Rental> SortByRequired(IQueryable <Rental> query, RentalQuery queryObject)
 {
     if (!String.IsNullOrWhiteSpace(queryObject.SortBy))
     {
         var columnsMap = new Dictionary <string, Expression <Func <Rental, object> > >()
         {
             ["owner"]   = rental => rental.Property.Owner.Name,
             ["tenant"]  = rental => rental.Tenant.Name,
             ["suburb"]  = rental => rental.Property.Suburb.Name,
             ["state"]   = rental => rental.Property.Suburb.State.Acronym,
             ["payment"] = rental => rental.Payment
         };
         return(query.ApplyOrdering(queryObject, columnsMap));
     }
     return(query);
 }
Ejemplo n.º 7
0
 private IQueryable <Rental> FilteredRequired(IQueryable <Rental> query, RentalQuery queryObject)
 {
     if (queryObject.SuburbId.HasValue)
     {
         query = query.Where(rental => rental.Property.SuburbId == queryObject.SuburbId.Value);
     }
     if (queryObject.StateId.HasValue)
     {
         query = query.Where(rental => rental.Property.Suburb.StateId == queryObject.StateId.Value);
     }
     if (queryObject.MinimumRent.HasValue && queryObject.MaximumRent.HasValue)
     {
         query = query.Where(rental => rental.Payment >= queryObject.MinimumRent && rental.Payment <= queryObject.MaximumRent);
     }
     if (queryObject.StartDate.HasValue && queryObject.EndDate.HasValue)
     {
         query = query.Where(rental => rental.StartDate >= queryObject.StartDate.Value && rental.EndDate <= queryObject.EndDate.Value);
     }
     return(query);
 }
Ejemplo n.º 8
0
        public IEnumerable <Rental> GetRentals(RentalQuery query)
        {
            var queryFromDb = _context.Rentals
                              .Include(r => r.Room)
                              .Include(r => r.Tenant)
                              .AsQueryable();

            if (query.IsCancelled.HasValue && query.IsCancelled == true)
            {
                queryFromDb = queryFromDb.Where(r => r.IsCancelled);
            }

            if (query.IsCancelled.HasValue && query.IsCancelled == false)
            {
                queryFromDb = queryFromDb.Where(r => !r.IsCancelled);
            }

            if (query.StartDate.HasValue && query.EndDate.HasValue)
            {
                queryFromDb = queryFromDb.Where(e => e.StartDate >= query.StartDate && e.EndDate <= query.EndDate);
            }

            return(queryFromDb.ToList());
        }