Ejemplo n.º 1
0
        public async Task <List <PropertyForRent> > ExtendedSearch(PropertyForRentsSort sortParam, string propertyNo, string city,
                                                                   string type, string postcode, string ownerpassport, string staffpassport)
        {
            var _propertysContext = _context.PropertyForRent
                                    .Include(p => p.OverseesBy)
                                    .Include(p => p.Owner)
                                    .OrderBy(c => c.PropertyNo);

            var list = await _propertysContext.ToListAsync();


            list = list.FindAll(v =>
                                ((String.IsNullOrEmpty(propertyNo) ? true : v.PropertyNo.Contains(propertyNo)) &&
                                 (String.IsNullOrEmpty(city) ? true : v.City.Contains(city)) &&
                                 (String.IsNullOrEmpty(type) ? true : v.Type.Contains(type)) &&
                                 (String.IsNullOrEmpty(postcode) ? true : v.PostCode.Contains(postcode)) &&
                                 (String.IsNullOrEmpty(ownerpassport) ? true : v.Owner.OwnerPassportNo.Contains(ownerpassport)) &&
                                 (String.IsNullOrEmpty(staffpassport) ? true : v.OverseesBy.StaffPassportNo.Contains(staffpassport))
                                ));

            switch (sortParam)
            {
            case PropertyForRentsSort.PropertyNo: return(list.OrderBy(v => v.PropertyNo).ToList());

            case PropertyForRentsSort.City: return(list.OrderBy(v => v.City).ToList());

            case PropertyForRentsSort.Type: return(list.OrderBy(v => v.Type).ToList());

            case PropertyForRentsSort.Rooms: return(list.OrderBy(v => v.Rooms).ToList());

            case PropertyForRentsSort.Rent: return(list.OrderBy(v => v.Rent).ToList());

            default: return(list.OrderBy(v => v.PropertyNo).ToList());
            }
        }
Ejemplo n.º 2
0
        public async Task <List <PropertyForRent> > FilteredList(PropertyForRentsSort sortParam, PropertyForRentsSearch searchParam, string searchInput)
        {
            var _propertysContext = _context.PropertyForRent
                                    .Include(p => p.OverseesBy)
                                    .Include(p => p.Owner)
                                    .OrderBy(c => c.PropertyNo);

            var list = await _propertysContext.ToListAsync();

            if (searchInput != null && searchInput != String.Empty)
            {
                switch (searchParam)
                {
                case PropertyForRentsSearch.PropertyNo: list = list.FindAll(v => v.PropertyNo.Contains(searchInput)); break;

                case PropertyForRentsSearch.City: list = list.FindAll(v => v.City.Contains(searchInput)); break;

                case PropertyForRentsSearch.Type: list = list.FindAll(v => v.Type.Contains(searchInput)); break;

                case PropertyForRentsSearch.OverseesPassportNo: list = list.FindAll(v => v.OverseesBy.StaffPassportNo.Contains(searchInput)); break;

                case PropertyForRentsSearch.OwnerPassportNo: list = list.FindAll(v => v.Owner.OwnerPassportNo.Contains(searchInput)); break;
                }
            }

            switch (sortParam)
            {
            case PropertyForRentsSort.PropertyNo: return(list.OrderBy(v => v.PropertyNo).ToList());

            case PropertyForRentsSort.City: return(list.OrderBy(v => v.City).ToList());

            case PropertyForRentsSort.Type: return(list.OrderBy(v => v.Type).ToList());

            case PropertyForRentsSort.Rooms: return(list.OrderBy(v => v.Rooms).ToList());

            case PropertyForRentsSort.Rent: return(list.OrderBy(v => v.Rent).ToList());

            default: return(list.OrderBy(v => v.PropertyNo).ToList());
            }
        }