public async Task <ListViewModel <OspedaleViewModel> > GetOspedaliAsync(OspedaleListInputModel model) { IQueryable <Ospedale> baseQuery = dbContext.Ospedali; baseQuery = (model.OrderBy, model.Ascending) switch { ("Clinica", true) => baseQuery.OrderBy(ospedale => ospedale.Clinica), ("Clinica", false) => baseQuery.OrderByDescending(ospedale => ospedale.Clinica), ("Comune", true) => baseQuery.OrderBy(ospedale => ospedale.Comune), ("Comune", false) => baseQuery.OrderByDescending(ospedale => ospedale.Comune), ("Id", true) => baseQuery.OrderBy(ospedale => ospedale.Id), ("Id", false) => baseQuery.OrderByDescending(ospedale => ospedale.Id), _ => baseQuery }; IQueryable <Ospedale> queryLinq = baseQuery .Where(ospedale => ospedale.Clinica.Contains(model.Search)) .AsNoTracking(); List <OspedaleViewModel> ospedale = await queryLinq .Skip(model.Offset) .Take(model.Limit) .Select(ospedale => ospedale.ToOspedaleViewModel()) .ToListAsync(); int totalCount = await queryLinq.CountAsync(); ListViewModel <OspedaleViewModel> result = new() { Results = ospedale, TotalCount = totalCount }; return(result); }
public async Task <IActionResult> Index(OspedaleListInputModel input) { ViewData["Title"] = applicationPersister.GetTitoloApp(); ListViewModel <OspedaleViewModel> ospedale = await ospedali.GetOspedaliAsync(input); OspedaleListViewModel viewModel = new() { Ospedale = ospedale, Input = input }; return(View(viewModel)); }