コード例 #1
0
        public async Task <ListViewModel <SocioViewModel> > GetSociAsync(SocioListInputModel model)
        {
            IQueryable <Socio> baseQuery = dbContext.Soci;

            baseQuery = (model.OrderBy, model.Ascending) switch
            {
                ("Nominativo", true) => baseQuery.OrderBy(socio => socio.Nominativo),
                ("Nominativo", false) => baseQuery.OrderByDescending(socio => socio.Nominativo),
                ("Tessera", true) => baseQuery.OrderBy(socio => socio.Tessera),
                ("Tessera", false) => baseQuery.OrderByDescending(socio => socio.Tessera),
                ("Id", true) => baseQuery.OrderBy(socio => socio.Id),
                ("Id", false) => baseQuery.OrderByDescending(socio => socio.Id),
                _ => baseQuery
            };

            IQueryable <Socio> queryLinq = baseQuery
                                           .Where(socio => socio.Nominativo.Contains(model.Search))
                                           .AsNoTracking();

            List <SocioViewModel> socio = await queryLinq
                                          .Skip(model.Offset)
                                          .Take(model.Limit)
                                          .Select(socio => socio.ToSocioViewModel())
                                          .ToListAsync();

            int totalCount = await queryLinq.CountAsync();

            ListViewModel <SocioViewModel> result = new()
            {
                Results    = socio,
                TotalCount = totalCount
            };

            return(result);
        }
コード例 #2
0
        public async Task <IActionResult> Index(SocioListInputModel input)
        {
            ViewData["Title"] = applicationPersister.GetTitoloApp();
            ListViewModel <SocioViewModel> socio = await soci.GetSociAsync(input);

            SocioListViewModel viewModel = new()
            {
                Socio = socio,
                Input = input
            };

            return(View(viewModel));
        }