Example #1
0
        public async Task <IActionResult> Create([Bind("Id,Achternaam,Voornaam,Geboortedatum,Straatnaam,Straatnummer,Postcode,Gemeente,Telefoon_vast,Telefoon_GSM,Email")] Lid lid)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // zijn er geen validatie fouten
            // voeg dan het nieuwe lid toe aan de db
            if (ModelState.IsValid)
            {
                lid.Id = Guid.NewGuid();
                // creëer een standaard loginnaam (eerste 3 letters van de voornaam +
                // 5 eerste letters van de achternaam
                lid.Login_Naam = CreateDefaultLoginNaam(lid);
                // creëer een standaard wachtwoord (geboortedatum
                // DDMMJJJJ)
                lid.Wachtwoord = Crypto.Hash(CreateDefaultLoginWachtwoord(lid));
                _context.Add(lid);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(lid));
        }
        // GET: Groepen/Edit/5
        public async Task <IActionResult> Edit(Guid?id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            if (id == null)
            {
                return(NotFound());
            }

            var groep = await _context.Groepen.FindAsync(id);

            if (groep == null)
            {
                return(NotFound());
            }
            return(View(groep));
        }
Example #3
0
        public async Task <IActionResult> Create([Bind("Id,Naam,Omschrijving,Publicatiedatum,Uiterste_inschrijfdatum,Prijs,Max_inschrijvingen,Id_ontmoetingsplaats,Activiteitendatum,Beginuur,Einduur")] Activiteit activiteit)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens opslaan
            // als het resultaat null is, mag hij de gegevens opslaan
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // zijn er geen validatie fouten
            // voeg dan de nieuwe activiteit toe aan de db
            if (ModelState.IsValid)
            {
                activiteit.Id = Guid.NewGuid();
                //verander de punt (Engelse getalnotatie) naar een komma (onze getalnotatie)
                NormalizePrijs(activiteit);
                _context.Add(activiteit);
                await _context.SaveChangesAsync();

                // keer terug naar de lijst met activiteiten
                return(RedirectToAction(nameof(Index)));
            }
            //indien hier was er een fout met de validatie
            //vul de select lijst op met de naam van de ontmoetingsplaatsen
            ViewData["Id_ontmoetingsplaats"] = new SelectList(_context.Ontmoetingsplaatsen, "Id", "Plaatsnaam", activiteit.Id_ontmoetingsplaats);
            //blijf op de huidige pagina
            return(View(activiteit));
        }
Example #4
0
        public async Task <IActionResult> DeleteRelatie(Guid?RelId, Guid?LidId)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            if (RelId == null || LidId == null)
            {
                return(NotFound());
            }

            // zoek de relatie
            var relatie = _context.Relaties.Find(RelId);

            if (relatie == null)
            {
                return(NotFound());
            }

            // verwijder de relatie
            _context.Relaties.Remove(relatie);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Edit), new { id = LidId }));
        }
Example #5
0
        // GET: Activiteiten/Edit/5
        public async Task <IActionResult> Edit(Guid?id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // id == null ==> geen activiteit
            if (id == null)
            {
                return(NotFound());
            }

            // zoek de activiteit in de db
            var activiteit = await _context.Activiteiten.FindAsync(id);

            // indien null ==> niet gevonden
            if (activiteit == null)
            {
                return(NotFound());
            }
            // vul de select lijst op met ontmoetingsplaatsen
            ViewData["Id_ontmoetingsplaats"] = new SelectList(_context.Ontmoetingsplaatsen, "Id", "Plaatsnaam", activiteit.Id_ontmoetingsplaats);
            return(View(activiteit));
        }
        // GET: Groepen
        public async Task <IActionResult> Index(string searchString = null)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            var query = _context.Groepen
                        .AsNoTracking();

            if (!string.IsNullOrWhiteSpace(searchString))
            {
                query = query.Where(g => g.Rol.ToLower().Contains(searchString) ||
                                    g.Omschrijving.ToLower().Contains(searchString));
            }

            ViewData["CurrentFilter"] = searchString;

            var groepen = await query
                          .OrderBy(g => g.Rol).ToListAsync();

            return(View(groepen));
        }
        // GET: Ontmoetingsplaatsen
        public async Task <IActionResult> Index(string searchString = null)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // haal alle ontmoetingsplaatsen
            // AsNoTracking omdat de db niet aangepast wordt
            var query = _context.Ontmoetingsplaatsen.AsNoTracking();

            // moet er gezocht worden
            if (!string.IsNullOrWhiteSpace(searchString))
            {
                query = query.Where(o => o.Plaatsnaam.ToLower().Contains(searchString) ||
                                    o.Gemeente.ToLower().Contains(searchString) ||
                                    o.Straatnaam.ToLower().Contains(searchString));
            }

            ViewData["CurrentFilter"] = searchString;

            // sorteer de lijst met ontmoetingsplaatsen op plaatsnaam
            // AsNoTracking omdat de db niet aangepast wordt
            var ontmoetingsplaatsen = await query.AsNoTracking()
                                      .OrderBy(o => o.Plaatsnaam).ToListAsync();

            return(View(ontmoetingsplaatsen));
        }
Example #8
0
        // GET: Inschrijvingen
        public IActionResult Index()
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // haal het aantal inschrijvingen uit de db, gegroepeerd per activiteit
            var query = _context.Inschrijvingen
                        .AsNoTracking()
                        .GroupBy(i => i.Id_Activiteit)
                        .Select(g => new { Id_Activiteit = g.Key, Count = g.Count() }).ToList();

            // maak een lijst met activiteiten en het aantal inschrijvingen per activiteit
            List <Activiteit> lijstActiviteiten = new();

            foreach (var item in query)
            {
                var activiteit = _context.Activiteiten.FirstOrDefault(a => a.Id == item.Id_Activiteit);
                activiteit.AantalInschrijvingen = item.Count;
                lijstActiviteiten.Add(activiteit);
            }

            //sorteer de lijst van toekomst naar verleden en dan op naam
            lijstActiviteiten = lijstActiviteiten.OrderByDescending(a => a.Activiteitendatum)
                                .ThenBy(a => a.Naam).ToList();

            return(View(lijstActiviteiten));
        }
Example #9
0
        // GET: Inschrijvingen/Edit/5
        public async Task <IActionResult> Edit(Guid?id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            if (id == null)
            {
                return(NotFound());
            }

            // haal de inschrijvingen voor de activiteit uit de db
            var inschrijvingenVoorActiviteit = await _context.Inschrijvingen
                                               .AsNoTracking()
                                               .Where(i => i.Id_Activiteit == id)
                                               .Include(i => i.Lid)
                                               .ToListAsync();

            // geen inschrijvingen
            if (inschrijvingenVoorActiviteit == null)
            {
                return(NotFound());
            }

            // haal de activiteit uit de db
            var activiteit = _context.Activiteiten
                             .AsNoTracking()
                             .Where(a => a.Id == id)
                             .FirstOrDefault();

            // niet gevonden
            if (activiteit == null)
            {
                return(NotFound());
            }
            // onthoud het aantal inschrijvingen
            activiteit.AantalInschrijvingen = inschrijvingenVoorActiviteit.Count;
            // haal een lijst met alle leden uit de db
            var leden = await _context.Leden
                        .OrderBy(l => l.Achternaam)
                        .ThenBy(l => l.Voornaam)
                        .ToListAsync();

            var model = new InschrijvingViewModel()
            {
                AlleLeden = leden,
                // enkel de leden van de inschrijvingen nodig
                IngeschrevenLeden = inschrijvingenVoorActiviteit.Select(l => l.Lid).ToList(),
                Activiteit        = activiteit,
                Id_Activiteit     = activiteit.Id
            };

            return(View(model));
        }
Example #10
0
        public async Task <IActionResult> DeleteConfirmed(Guid id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // zoek de activiteit in de db die verwijderd zal worden
            // indien null ==> niet gevonden
            var activiteit = await _context.Activiteiten.FindAsync(id);

            if (activiteit == null)
            {
                return(NotFound());
            }

            // zoek de inschrijvingen voor deze activiteit
            var inschrijvingen = _context.Inschrijvingen.Where(i => i.Id_Activiteit == id);

            // verwijder de inschrijvingen uit de db
            _context.Inschrijvingen.RemoveRange(inschrijvingen);
            // verwijder de activiteit uit de db
            _context.Activiteiten.Remove(activiteit);
            // bewaar de db
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> LedenHuisbezoekerlijst(Guid IdCurrentHuisbezoeker, String NaamHuisbezoeker)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // vind de id van de rol huisbezoeker
            var queryHuisbezoeker = await _context.Groepen.FirstOrDefaultAsync(g => g.Rol == "Huisbezoeker");

            // maak een lijst van de namen van leden waarvoor een
            // huisbezoeker verantwoordelijk is
            // Id_Lid1 + Id-Groep = de persoon die huisbezoeker is
            // Id_Lid2 = lid waarvoor hij/zij verantwoordelijk is
            // AsNoTracking want de db wordt niet aangepast
            // Include want ik wil alle gegevens van dat lid
            // gesorteerd op achternaam, dan voornaam
            var leden = _context.Relaties
                        .AsNoTracking()
                        .Where(r => r.Id_Groep == queryHuisbezoeker.Id && r.Id_Lid1 == IdCurrentHuisbezoeker)
                        .Include(r => r.Lid2)
                        .OrderBy(r => r.Lid2.Achternaam)
                        .ThenBy(r => r.Lid2.Voornaam)
                        .Select(r => r.Lid2.VolledigeNaam)
                        .ToList();

            ViewData["NaamHuisbezoeker"] = NaamHuisbezoeker;
            return(View(leden));
        }
Example #12
0
        public async Task <IActionResult> EditLoginDataPost(Guid?id, String Login_Naam, String Wachtwoord)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            if (id == null)
            {
                return(NotFound());
            }

            // zoek het lid
            var lid = await _context.Leden.FindAsync(id);

            if (lid == null)
            {
                return(NotFound());
            }

            // verander de loginnaam
            lid.Login_Naam = Login_Naam;
            // als het wachtwoord ook moet gewijzigd worden
            // verander dan ook het gehashte wachtwoord
            if (Wachtwoord != null)
            {
                lid.Wachtwoord = Crypto.Hash(Wachtwoord);
            }

            // bewaar de aangepaste gegevens in de db
            try
            {
                _context.Update(lid);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!LidExists(lid.Id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(RedirectToAction(nameof(Edit), new { id }));
        }
Example #13
0
        public async Task <IActionResult> Edit(Guid id, Guid id_Activiteit, List <Guid> ledenLijst)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }
            if (id != id_Activiteit)
            {
                return(NotFound());
            }

            // als er geen validatiefouten zijn
            // verwijderen alle inschrijvingen voor de activiteit
            // en schrijf alle leden die aangevinkt zijn terug in voor de activiteit
            if (ModelState.IsValid)
            {
                try
                {
                    var inschrijvingenVoorActiviteit = await _context.Inschrijvingen
                                                       .Where(i => i.Id_Activiteit == id)
                                                       .ToListAsync();

                    // verwijder alle inschrijvingen voor de activiteit
                    _context.RemoveRange(inschrijvingenVoorActiviteit);

                    foreach (Guid id_lid in ledenLijst)
                    {
                        Inschrijving inschrijving = new()
                        {
                            Id            = new Guid(),
                            Id_Activiteit = id,
                            Id_Lid        = id_lid
                        };
                        // voeg de geselecteerde leden terug toe aan de inschrijving
                        _context.Add(inschrijving);
                    }
                    // bewaar de aanpassingen
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    throw;
                }
                // aanpassingen bewaard, terug naar lijst
                return(RedirectToAction(nameof(Index)));
            }
            // validatiefouten, terug naar lijst
            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult Verjaardagslijst(string maand)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            IEnumerable Maanden = new[]
            {
                new { Value = "1", Text = "Januari" },
                new { Value = "2", Text = "Februari" },
                new { Value = "3", Text = "Maart" },
                new { Value = "4", Text = "April" },
                new { Value = "5", Text = "Mei" },
                new { Value = "6", Text = "Juni" },
                new { Value = "7", Text = "Juli" },
                new { Value = "8", Text = "Augustus" },
                new { Value = "9", Text = "September" },
                new { Value = "10", Text = "Oktober" },
                new { Value = "11", Text = "November" },
                new { Value = "12", Text = "December" }
            };

            // geselecteerde maand is standaard de volgende maand
            string selectedMonth = (DateTime.Today.Month + 1).ToString();

            // is er reeds een maand geselecteerd
            // zet die dan als de geselecteerde maand
            if (maand != null)
            {
                selectedMonth = maand;
            }
            // maak de lijst met de maanden en selecteer een maand
            SelectList maandList = new(Maanden, "Value", "Text", selectedMonth);

            ViewData["Maanden"] = maandList;
            VerjaardagslijstViewModel lijst = new();

            lijst.Maand = selectedMonth;
            // maak een lijst met alle jarigen van de geselecteerde maand
            // gesorteerd per dag en van jong naar oud
            lijst.Jarigen = _context.Leden
                            .Where(l => l.Geboortedatum.Month.ToString() == selectedMonth)
                            .OrderBy(l => l.Geboortedatum.Day)
                            .ThenByDescending(l => l.Geboortedatum.Year)
                            .ToList();
            return(View(lijst));
        }
        // GET: Groepen/Create
        public IActionResult Create()
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            return(View());
        }
Example #16
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,Naam,Omschrijving,Publicatiedatum,Uiterste_inschrijfdatum,Prijs,Max_inschrijvingen,Id_ontmoetingsplaats,Activiteitendatum,Beginuur,Einduur")] Activiteit activiteit)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // is de doorgegeven id gelijk aan de id van de activiteit
            if (id != activiteit.Id)
            {
                return(NotFound());
            }

            // zijn er geen validatie fouten
            // pas dan de gewijzigde activiteit aan in de db
            if (ModelState.IsValid)
            {
                try
                {
                    // punt in getal (Engels getal) vervangen door komma
                    NormalizePrijs(activiteit);
                    _context.Update(activiteit);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ActiviteitExists(activiteit.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                // toon de lijst met activiteiten
                return(RedirectToAction(nameof(Index)));
            }
            // indien hier was er een fout met de validatie
            // vul de select lijst op met de naam van de ontmoetingsplaatsen
            ViewData["Id_ontmoetingsplaats"] = new SelectList(_context.Ontmoetingsplaatsen, "Id", "Plaatsnaam", activiteit.Id_ontmoetingsplaats);
            // blijf op de huidige pagina
            return(View(activiteit));
        }
        public async Task <IActionResult> Huisbezoekerslijst()
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            var model = new HuisbezoekerslijstViewModel
            {
                //  lijst gesorteerd op naam van de huisbezoeker en zijn id
                HuisbezoekersList = new SortedDictionary <string, Guid>()
            };

            // vind de id van de rol huisbezoeker
            var queryHuisbezoeker = await _context.Groepen.FirstOrDefaultAsync(g => g.Rol == "Huisbezoeker");

            Guid huisbezoekerId = queryHuisbezoeker.Id;

            // maak een lijst met alle huisbezoekers
            // AsNoTracking want de db wordt niet aangepast
            // Select want ik ben enkel geïnteresseerd in de id van de huisbezoeker
            // en niet in de ids voor wie hij verantwoordelijk is
            // Distinct want de id van de huisbezoeker is uniek voor hem/haar
            var query = _context.Relaties
                        .AsNoTracking()
                        .Where(r => r.Id_Groep == huisbezoekerId)
                        .Select(r => r.Id_Lid1)
                        .Distinct()
                        .ToList();

            // zoek de naam van de huisbezoeker
            // en voeg het toe aan de gesorteerde lijst
            foreach (var huisbezoeker in query)
            {
                var lid = await _context.Leden
                          .Where(l => l.Id == huisbezoeker)
                          .FirstOrDefaultAsync();

                String naam = lid?.VolledigeNaam;
                model.HuisbezoekersList.Add(naam, huisbezoeker);
            }
            return(View(model));
        }
Example #18
0
        // GET: Activiteiten/Create
        public IActionResult Create()
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            //vul de select lijst op met de naam van de ontmoetingsplaatsen
            ViewData["Id_ontmoetingsplaats"] = new SelectList(_context.Ontmoetingsplaatsen, "Id", "Plaatsnaam");
            return(View());
        }
Example #19
0
        // GET: Leden/Delete/5
        public async Task <IActionResult> Delete(Guid?id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            if (id == null)
            {
                return(NotFound());
            }

            // zoek het lid
            var lid = await _context.Leden.FindAsync(id);

            if (lid == null)
            {
                return(NotFound());
            }

            // maak een lijst met alle relaties van dat lid
            // zowel primaire (lid1) als secundaire (lid2) relaties
            // asnotracking want db wordt niet aangepast
            // zowel alle gegevens van lid1, groep als lid2 moeten geweten zijn
            var relaties = await _context.Relaties
                           .AsNoTracking()
                           .Include(r => r.Groep)
                           .Include(r => r.Lid1)
                           .Include(r => r.Lid2)
                           .Where(r => r.Id_Lid1 == lid.Id || r.Id_Lid2 == lid.Id)
                           .OrderBy(r => r.Groep.Rol)
                           .ToListAsync();

            // bewaar de relaties bij het lid
            lid.Relaties = relaties;

            return(View(lid));
        }
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,Plaatsnaam,Straatnaam,Straatnummer,Postcode,Gemeente")] Ontmoetingsplaats ontmoetingsplaats)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // zoek de ontmoetingsplaats
            if (id != ontmoetingsplaats.Id)
            {
                return(NotFound());
            }

            // als er geen validatie fouten zijn
            // pas de gegevens aan van de ontmoetingsplaats in de db
            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(ontmoetingsplaats);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!OntmoetingsplaatsExists(ontmoetingsplaats.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(ontmoetingsplaats));
        }
Example #21
0
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,Achternaam,Voornaam,Geboortedatum,Straatnaam,Straatnummer,Postcode,Gemeente,Telefoon_vast,Telefoon_GSM,Email,Login_Naam,Wachtwoord")] Lid lid)
        {
            if (id != lid.Id)
            {
                return(NotFound());
            }

            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // zijn er geen validatie fouten
            // pas dan de gegevens van het nieuwe lid aan in de db
            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(lid);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!LidExists(lid.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(lid));
        }
Example #22
0
        // GET: Activiteiten/Delete/5
        public async Task <IActionResult> Delete(Guid?id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // id == null ==> geen activiteit
            if (id == null)
            {
                return(NotFound());
            }

            // zoek de activiteit
            // AsNoTracking want database zal niet veranderd worden
            // ook de ontmoetingsplaats (en niet enkel de ontmoetingsplaats id) moet gekend zijn
            var activiteit = await _context.Activiteiten
                             .AsNoTracking()
                             .Include(a => a.Ontmoetingsplaats)
                             .FirstOrDefaultAsync(m => m.Id == id);

            // activiteit == null ==> geen activiteit gevonden
            if (activiteit == null)
            {
                return(NotFound());
            }

            // zoek het aantal inschrijvingen voor deze activiteit en onthoud het aantal
            // AsNoTracking want database zal niet veranderd worden
            activiteit.AantalInschrijvingen = _context.Inschrijvingen
                                              .AsNoTracking()
                                              .Where(i => i.Id_Activiteit == id)
                                              .Count();

            return(View(activiteit));
        }
        public async Task <IActionResult> Edit(Guid id, [Bind("Id,Rol,Omschrijving,Dubbele_Relatie")] Groep groep)
        {
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            if (id != groep.Id)
            {
                return(NotFound());
            }

            // zijn er geen validatie fouten
            // pas dan de groep aan in de db
            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(groep);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GroepExists(groep.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(groep));
        }
Example #24
0
        public async Task <IActionResult> DeleteConfirmed(Guid id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // zoek het lid in de db
            var lid = _context.Leden.Find(id);

            if (lid == null)
            {
                return(NotFound());
            }

            // verwijder alle relaties waar het lid bij betrokken is
            var relaties = _context.Relaties.Where(r => r.Id_Lid1 == lid.Id || r.Id_Lid2 == lid.Id);

            _context.Relaties.RemoveRange(relaties);

            // verwijder alle inschrijvingen van het lid
            var inschrijvingen = _context.Inschrijvingen.Where(i => i.Id_Lid == id);

            _context.Inschrijvingen.RemoveRange(inschrijvingen);

            //verwijder het lid zelf
            _context.Leden.Remove(lid);
            // bewaar de aanpassingen in de db
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Create([Bind("Id,Rol,Omschrijving,Dubbele_Relatie")] Groep groep)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // zijn er geen validatie fouten
            // voeg dan de nieuwe groep toe aan de db
            if (ModelState.IsValid)
            {
                groep.Id = Guid.NewGuid();
                _context.Add(groep);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(groep));
        }
Example #26
0
        public async Task <IActionResult> DeleteConfirmed(Guid id)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // haal alle inschrijvingen voor de activiteit uit de db
            var inschrijvingenVoorActiviteit = await _context.Inschrijvingen
                                               .Where(i => i.Id_Activiteit == id)
                                               .ToListAsync();

            // verwijder alle inschrijvingen voor de activiteit
            _context.RemoveRange(inschrijvingenVoorActiviteit);
            // bewaar de db
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
        public async Task <IActionResult> Create([Bind("Id,Plaatsnaam,Straatnaam,Straatnummer,Postcode,Gemeente")] Ontmoetingsplaats ontmoetingsplaats)
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // als er geen validatie fouten zijn
            // bewaar de nieuwe ontmoetingsplaats in de db
            if (ModelState.IsValid)
            {
                ontmoetingsplaats.Id = Guid.NewGuid();
                _context.Add(ontmoetingsplaats);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(ontmoetingsplaats));
        }
        public async Task <IActionResult> Beheerders()
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            var model = new BeheerderslijstViewModel
            {
                Activiteitenmanagerlijst = new List <string>(),
                Ledenmanagerlijst        = new List <string>()
            };

            model.Activiteitenmanagerlijst = await FillList("Activiteitenmanager");

            model.Ledenmanagerlijst = await FillList("Ledenmanager");

            return(View(model));
        }
Example #29
0
        // GET: Activiteiten
        public async Task <IActionResult> Index(
            string sortOrder,       // <= hoe moet de activiteiten gesorteerd worden
            string currentFilter,   // <= waarop werd er gefilterd
            string searchString,    // <= waarop moet er nu gefilterd worden
            int?pageNumber,         // <= op welke pagina zijn we nu
            int?pageSize)           // <= hoeveel activiteiten per pagina
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }
            // XXX_asc  : a -> z of verleden -> toekomst
            // XXX_desc : z -> a of toekomst -> verleden
            ViewData["CurrentSort"]               = sortOrder;
            ViewData["NaamSortParm"]              = sortOrder == "naam_asc" ? "naam_desc" : "naam_asc";
            ViewData["OmschrijvingSortParm"]      = sortOrder == "omschrijving_asc" ? "omschrijving_desc" : "omschrijving_asc";
            ViewData["OntmoetingsplaatsSortParm"] = sortOrder == "plaats_asc" ? "plaats_desc" : "plaats_asc";
            ViewData["ActiviteitendatumSortParm"] = sortOrder == "datum_asc" ? "datum_desc" : "datum_asc";
            ViewData["PublicatiedatumSortParm"]   = sortOrder == "publicatie_asc" ? "publicatie_desc" : "publicatie_asc";

            // als er een nieuwe searchstring is, dan terug naar pagina 1
            // anders bijhouden waarop vroeger gezocht werd en daarop opnieuw zoeken
            if (searchString != null)
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"] = searchString;

            // AsNoTracking want database zal niet veranderd worden
            // ook de ontmoetingsplaats (en niet enkel de ontmoetingsplaats id) moet gekend zijn
            var activiteiten = _context.Activiteiten
                               .AsNoTracking()
                               .Include(a => a.Ontmoetingsplaats)
                               .AsQueryable();

            // moet er ergens op gezocht worden?
            // indien JA zoek dan in de naam, omschrijving en plaatsnaam (van de ontmoetingsplaats)
            if (!String.IsNullOrEmpty(searchString))
            {
                activiteiten = activiteiten.Where(a => a.Naam.Contains(searchString) ||
                                                  a.Omschrijving.Contains(searchString) ||
                                                  a.Ontmoetingsplaats.Plaatsnaam.Contains(searchString));
            }

            // sorteer de activiteiten (datum steeds van toekomst naar verleden,
            // tenzij anders gevraagd)
            activiteiten = sortOrder switch
            {
                "naam_asc" => activiteiten.OrderBy(a => a.Naam)
                .ThenByDescending(a => a.Activiteitendatum),
                "naam_desc" => activiteiten.OrderByDescending(a => a.Naam)
                .ThenByDescending(a => a.Activiteitendatum),
                "omschrijving_asc" => activiteiten.OrderBy(a => a.Omschrijving)
                .ThenByDescending(a => a.Activiteitendatum),
                "omschrijving_desc" => activiteiten.OrderByDescending(a => a.Omschrijving)
                .ThenByDescending(a => a.Activiteitendatum),
                "plaats_asc" => activiteiten.OrderBy(a => a.Ontmoetingsplaats)
                .ThenByDescending(a => a.Activiteitendatum),
                "plaats_desc" => activiteiten.OrderByDescending(a => a.Ontmoetingsplaats)
                .ThenByDescending(a => a.Activiteitendatum),
                "datum_asc" => activiteiten.OrderBy(a => a.Activiteitendatum)
                .ThenBy(a => a.Naam),
                "datum_desc" => activiteiten.OrderByDescending(a => a.Activiteitendatum)
                .ThenBy(a => a.Naam),
                "publicatie_asc" => activiteiten.OrderBy(a => a.Publicatiedatum)
                .ThenByDescending(a => a.Activiteitendatum),
                "publicatie_desc" => activiteiten.OrderByDescending(a => a.Publicatiedatum)
                .ThenByDescending(a => a.Activiteitendatum),
                _ => activiteiten.OrderByDescending(a => a.Activiteitendatum)
                .ThenBy(a => a.Naam),
            };

            // toon de juiste pagina van activiteiten
            return(View(await PaginatedListViewModel <Activiteit> .CreateAsync(activiteiten, pageNumber ?? 1, pageSize ?? 10)));
        }
Example #30
0
        // GET: Leden
        public async Task <IActionResult> Index(
            int?pageNumber,                 // <= op welke pagina zijn we nu
            int?pageSize,                   // <= hoeveel activiteiten per pagina
            string sortOrder     = null,    // <= hoe moet de activiteiten gesorteerd worden
            string currentFilter = null,    // <= waarop werd er gefilterd
            string searchString  = null)    // <= waarop moet er nu gefilterd worden
        {
            // mag de huidige gebruiker (indien gekend) deze gegevens zien
            // als het resultaat null is, mag hij de gegevens zien
            // als het resultaat niet null is, toon dan de gepaste pagina (login of unauthorized)
            IActionResult actionResult = CredentialBeheerder.CheckIfAllowed(_role, TempData, _context);;

            if (actionResult != null)
            {
                return(actionResult);
            }

            // XXX_asc  : a -> z
            // XXX_desc : z -> a
            ViewData["CurrentSort"]        = sortOrder;
            ViewData["LidnaamSortParm"]    = sortOrder == "lidnaam_asc" ? "lidnaam_desc" : "lidnaam_asc";
            ViewData["StraatnaamSortParm"] = sortOrder == "straatnaam_asc" ? "straatnaam_desc" : "straatnaam_asc";
            ViewData["GemeenteSortParm"]   = sortOrder == "gemeente_asc" ? "gemeente_desc" : "gemeente_asc";

            // als er een nieuwe searchstring is, dan terug naar pagina 1
            // anders bijhouden waarop vroeger gezocht werd en daarop opnieuw zoeken
            if (!String.IsNullOrWhiteSpace(searchString))
            {
                pageNumber = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"] = searchString;

            // AsNoTracking want database zal niet veranderd worden
            var leden = _context.Leden.AsNoTracking();

            // moet er ergens op gezocht worden?
            // indien JA zoek dan in de naam (voor- en achternaam, adres, email en telefoon
            if (!String.IsNullOrEmpty(searchString))
            {
                leden = leden.Where(l => l.Achternaam.ToLower().Contains(searchString) ||
                                    l.Voornaam.ToLower().Contains(searchString) ||
                                    l.Straatnaam.ToLower().Contains(searchString) ||
                                    l.Straatnummer.ToLower().Contains(searchString) ||
                                    l.Gemeente.ToLower().Contains(searchString) ||
                                    l.Email.ToLower().Contains(searchString) ||
                                    l.Telefoon_vast.ToLower().Contains(searchString) ||
                                    l.Telefoon_GSM.ToLower().Contains(searchString));
            }

            // sorteer de leden
            leden = sortOrder switch
            {
                "lidnaam_asc" => leden.OrderBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
                "lidnaam_desc" => leden.OrderByDescending(l => l.Achternaam)
                .ThenByDescending(l => l.Voornaam),
                "straatnaam_asc" => leden.OrderBy(l => l.Straatnaam)
                .ThenBy(l => l.Straatnummer)
                .ThenBy(l => l.Postcode)
                .ThenBy(l => l.Gemeente)
                .ThenBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
                "straatnaam_desc" => leden.OrderByDescending(l => l.Straatnaam)
                .ThenByDescending(l => l.Straatnummer)
                .ThenByDescending(l => l.Postcode)
                .ThenByDescending(l => l.Gemeente)
                .ThenByDescending(l => l.Achternaam)
                .ThenByDescending(l => l.Voornaam),
                "gemeente_asc" => leden.OrderBy(l => l.Postcode)
                .ThenBy(l => l.Gemeente)
                .ThenBy(l => l.Straatnaam)
                .ThenBy(l => l.Straatnummer)
                .ThenBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
                "gemeente_desc" => leden.OrderByDescending(l => l.Postcode)
                .ThenByDescending(l => l.Gemeente)
                .ThenByDescending(l => l.Straatnaam)
                .ThenByDescending(l => l.Straatnummer)
                .ThenByDescending(l => l.Achternaam)
                .ThenByDescending(l => l.Voornaam),
                _ => leden.OrderBy(l => l.Achternaam)
                .ThenBy(l => l.Voornaam),
            };
            // toon de juiste pagina van leden
            return(View(await PaginatedListViewModel <Lid> .CreateAsync(leden, pageNumber ?? 1, pageSize ?? 10)));
        }