Ejemplo n.º 1
0
        // AJAX : Benevoles/Filter
        public IActionResult Filter(BenevoleFilterModel filter)
        {
            if (filter.Term == null)
            {
                filter.Term = string.Empty;
            }

            bool bCurrentCentreOnly = true;

            if (!User.IsInRole("SuperAdmin"))
            {
                filter.CentreID    = GetCurrentUser().CentreID;
                bCurrentCentreOnly = false;
            }

            var query = _context.Benevoles.Include(b => b.Adresses).ThenInclude(a => a.Centre).AsQueryable();

            if (filter.CentreID > 0)
            {
                if (!bCurrentCentreOnly)
                {
                    query = query.Where(b => b.Adresses.Any(a => a.CentreID == filter.CentreID));
                }
                else
                {
                    query = query.Where(b => b.Adresses.SingleOrDefault(a => a.IsCurrent).CentreID == filter.CentreID);
                }
            }

            if (!string.IsNullOrEmpty(filter.Term))
            {
                query = query.Where(b => b.Nom.ToLower().StartsWith(filter.Term.Trim().ToLower()));
            }

            query = query.OrderBy(b => b.Adresses.SingleOrDefault(a => a.IsCurrent).Centre.Nom)
                    .ThenBy(b => b.Nom)
                    .ThenBy(b => b.Prenom);

            var model = query.Select(b => new BenevolePointageListItemModel
            {
                BenevoleID         = b.ID,
                BenevoleNom        = b.Nom,
                BenevolePrenom     = b.Prenom,
                BenevoleCentre     = b.Adresses.SingleOrDefault(a => a.IsCurrent).Centre.Nom,
                ShowAddressWarning = b.Adresses.Any(a => a.CentreID == filter.CentreID && a.IsCurrent)
            }).AsEnumerable();

            return(View(model));
        }
Ejemplo n.º 2
0
        // GET: Benevoles
        public IActionResult Index()
        {
            var model = new BenevoleFilterModel
            {
                Term = string.Empty
            };

            if (User.IsInRole("SuperAdmin"))
            {
                model.Centres = _context.Centres;
            }
            else
            {
                model.CentreID = GetCurrentUser().CentreID;
            }

            return(View(model));
        }