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);
        }