Ejemplo n.º 1
0
        // GET: All Locations from every user
        public async Task <IActionResult> Index(
            string sortOrder,
            string currentFilter,
            string searchString,
            int?pageNumber)
        {
            ViewData["CurrentSort"]  = sortOrder;
            ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["CitySortParm"] = String.IsNullOrEmpty(sortOrder) ? "CityName_desc" : "CityName";

            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"] = searchString;

            var viewModel = new PaymentTypeLocationData();

            viewModel.Locations = await _context.Locations
                                  .Include(i => i.City)
                                  .Include(i => i.LocationType)
                                  .Include(i => i.PaymentTypeLocations)
                                  .ThenInclude(i => i.PaymentType)
                                  .Include(i => i.PaymentTypeLocations)
                                  .ThenInclude(i => i.Location)
                                  .ToListAsync();

            switch (sortOrder)
            {
            case "name_desc":
                viewModel.Locations = viewModel.Locations.OrderByDescending(s => s.LocationName);
                break;

            case "CityName":
                viewModel.Locations = viewModel.Locations.OrderBy(s => s.City.CityName);
                break;

            case "CityName_desc":
                viewModel.Locations = viewModel.Locations.OrderByDescending(s => s.City.CityName);
                break;

            default:
                viewModel.Locations = viewModel.Locations.OrderBy(s => s.LocationName);
                break;
            }


            if (!String.IsNullOrEmpty(searchString))
            {
                viewModel.Locations = viewModel.Locations.Where(s => s.City.CityName.Contains(searchString) ||
                                                                s.City.CityName.Contains(searchString) || s.Description.Contains(searchString)).ToList();
            }

            return(View(viewModel));
        }
        //GET Locations the signed in user has created
        public async Task <IActionResult> Index(
            //int? id,
            string sortOrder,
            string searchString)
        {
            ViewData["CurrentSort"]   = sortOrder;
            ViewData["CurrentFilter"] = searchString;
            ViewData["DateSortParm"]  = sortOrder == "Date" ? "date_desc" : "Date";
            ViewData["NameSortParm"]  = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["CitySortParm"]  = String.IsNullOrEmpty(sortOrder) ? "CityName_desc" : "CityName";


            var currentUser = await GetCurrentUserAsync();

            var viewModel = new PaymentTypeLocationData();

            viewModel.Locations = await _context.Locations
                                  .Include(i => i.City)
                                  .Include(i => i.LocationType)
                                  .Include(i => i.PaymentTypeLocations)
                                  .ThenInclude(i => i.PaymentType)
                                  .Include(i => i.PaymentTypeLocations)
                                  .ThenInclude(i => i.Location)
                                  .Where(l => l.UserId == currentUser.Id)
                                  .ToListAsync();

            switch (sortOrder)
            {
            case "name_desc":
                viewModel.Locations = viewModel.Locations.OrderByDescending(s => s.LocationName);
                break;

            case "CityName":
                viewModel.Locations = viewModel.Locations.OrderBy(s => s.City.CityName);
                break;

            case "CityName_desc":
                viewModel.Locations = viewModel.Locations.OrderByDescending(s => s.City.CityName);
                break;

            case "Date":
                viewModel.Locations = viewModel.Locations.OrderBy(s => s.DateCreated);
                break;

            case "date_desc":
                viewModel.Locations = viewModel.Locations.OrderByDescending(s => s.DateCreated);
                break;

            default:
                viewModel.Locations = viewModel.Locations.OrderBy(s => s.City.CityName);
                break;
            }



            //if (id != null)
            //{
            //    ViewData["LocationId"] = id.Value;
            //    Location location = viewModel.Locations.Where(
            //        i => i.LocationId == id.Value).Single();
            //    viewModel.PaymentTypes = location.PaymentTypeLocations.Select(s => s.PaymentType);
            //}

            if (!String.IsNullOrEmpty(searchString))
            {
                viewModel.Locations = viewModel.Locations.Where(s => s.City.CityName.Contains(searchString) ||
                                                                s.City.CityName.Contains(searchString) || s.Description.Contains(searchString)).ToList();
            }

            return(View(viewModel));
        }