public async Task <IActionResult> Index(CostoServizioListInputModel input) { ViewData["Title"] = applicationPersister.GetTitoloApp(); ListViewModel <CostoServizioViewModel> costoservizio = await costiservizi.GetCostiServiziAsync(input); CostoServizioListViewModel viewModel = new() { CostoServizio = costoservizio, Input = input }; return(View(viewModel)); }
public async Task <ListViewModel <CostoServizioViewModel> > GetCostiServiziAsync(CostoServizioListInputModel model) { IQueryable <Costo> baseQuery = dbContext.Costi; baseQuery = (model.OrderBy, model.Ascending) switch { ("TipoServizio", true) => baseQuery.OrderBy(costoservizio => costoservizio.TipoServizio), ("TipoServizio", false) => baseQuery.OrderByDescending(costoservizio => costoservizio.TipoServizio), ("Id", true) => baseQuery.OrderBy(costoservizio => costoservizio.Id), ("Id", false) => baseQuery.OrderByDescending(costoservizio => costoservizio.Id), _ => baseQuery }; IQueryable <Costo> queryLinq = baseQuery .AsNoTracking(); List <CostoServizioViewModel> costo = await queryLinq .Skip(model.Offset) .Take(model.Limit) .Select(costo => costo.ToCostoServizioViewModel()) .ToListAsync(); int totalCount = await queryLinq.CountAsync(); ListViewModel <CostoServizioViewModel> result = new() { Results = costo, TotalCount = totalCount }; return(result); }