Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }