コード例 #1
0
        public IActionResult InSchrijven(int id, Gebruiker gebruiker, bool view = false, int maandId = 0)
        {
            Sessie sessie = _sessieRepository.GetById(id);

            if (gebruiker != null && sessie != null)
            {
                try
                {
                    SessieGebruiker sessieGebruiker = new SessieGebruiker(sessie, gebruiker);
                    sessie.SchrijfGebruikerIn(sessieGebruiker, gebruiker);
                    _gebruikerRepository.SaveChanges();
                    _sessieRepository.SaveChanges();
                    TempData["message"] = $"Je inschrijving voor {sessie.Naam} werd geregistreerd.";
                }
                catch
                {
                    TempData["error"] = "Er is iets mis gegaan, we konden je niet inschrijven.";
                }
            }
            if (view)
            {
                return(RedirectToAction("Index", new { maandId = maandId }));
            }
            return(RedirectToAction("Details", new { id = id }));
        }
コード例 #2
0
        public async Task <ActionResult <string> > Register(RegisterDTO model)
        {
            Gebruiker g = new Gebruiker {
                Email      = model.Email, Voornaam = model.Voornaam, Achternaam = model.Achternaam,
                Sfeergroep = model.Sfeergroep, Foto = model.Foto, Type = model.Type,
                UserName   = model.Email
            };

            var result = await _userManager.CreateAsync(g, model.Password);

            await _userManager.AddClaimAsync(g, new Claim(ClaimTypes.Role, g.Type.ToString()));

            if (g.Type == GebruikerType.Admin)
            {
                await _userManager.AddClaimAsync(g, new Claim(ClaimTypes.Role, "Begeleider"));
            }

            var claims = await _signInManager.UserManager.GetClaimsAsync(g);

            if (result.Succeeded)
            {
                _gebruikerRepository.SaveChanges();
                string token = GetToken(g, claims);

                var host = Request.Host;
                return(Created($"https://{host}/api/account/{g.Id}", g));
            }
            return(BadRequest());
        }
コード例 #3
0
        public async Task <ActionResult <string> > Register(RegisterDTO model)
        {
            Gebruiker user = new Gebruiker
            {
                Email          = model.Email,
                Voornaam       = model.Voornaam,
                Achternaam     = model.Achternaam,
                UserName       = model.Email,
                TelefoonNummer = model.TelefoonNummer,
                GeboorteDatum  = model.GeboorteDatum
            };

            var result = await _userManager.CreateAsync(user, model.Password);

            await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "User"));

            var claims = await _signInManager.UserManager.GetClaimsAsync(user);

            if (result.Succeeded)
            {
                _gebruikerRepository.SaveChanges();

                string token = GetToken(user, claims);
                return(Created("", new { token, user }));
            }
            return(BadRequest());
        }
コード例 #4
0
        public async Task <IActionResult> BestellingPlaatsen(Winkelwagen winkelwagen)
        {
            ViewData["AlleCategorien"] = _categorieRepository.GetAll().ToList();

            var gebruiker = await HaalGebruikerOp();

            gebruiker.PlaatsBestelling(winkelwagen);
            _gebruikerRepository.SaveChanges();
            _bonRepository.SaveChanges();

            return(RedirectToAction(nameof(CheckoutController.BonAanmaken), "Checkout", new { index = 0 }));
        }
コード例 #5
0
        public async Task <ActionResult <string> > loginFacebookUser(FacebookLoginDTO model)
        {
            try
            {
                Gebruiker user = _gebruikerRepository.GetBy(model.Email);

                if (user != null)
                {
                    try
                    {
                        Debug.WriteLine(user);
                        //await _signInManager.SignInAsync(user, true);
                        string token = GetToken(user);
                        return(Created("", token)); //returns only the token
                    }

                    catch (Exception e)
                    {
                        return(BadRequest(e.Message));
                    }
                }
                else
                {
                    Gebruiker g = new Gebruiker
                    {
                        Email      = model.Email,
                        Voornaam   = model.Voornaam,
                        Achternaam = model.Achternaam,
                        //Foto = model.Foto,
                        Type     = Enum.GebruikerType.Leiding,
                        UserName = model.Email,
                        //TelNr = model.TelNr
                        IsFacebookUser = true
                    };

                    var result = await _userManager.CreateAsync(g);

                    if (result.Succeeded)
                    {
                        _gebruikerRepository.SaveChanges();
                        string token = GetToken(g);
                        return(Created("", token));
                    }
                    return(BadRequest());
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public ActionResult RemoveFromVerlanglijst(int id, Gebruiker gebruiker) {
            try {

                gebruiker.VerwijderProductUitVerlanglijst(productRepository.FindByProductNummer(id));
                gebruikerRepository.SaveChanges();
                IList<Product> verlanglijst = gebruiker.VerlangLijst.ToList();
                return RedirectToAction("Index");
            }
            catch {
                TempData["DeleteFail"] = "Verwijderen van verlanglijst is niet gelukt";

                return RedirectToAction("Index");
            }

        }
コード例 #7
0
        public ActionResult <Film> PostFilm(FilmDTO film)
        {
            Gebruiker g      = _gebruikerRepo.GetBy(User.Identity.Name);
            Detail    detail = new Detail(film.Detail.Beschrijving, film.Detail.Storyline);

            if (film.Detail.Rating != null && film.Detail.Rating != 0)
            {
                detail.AddRating(film.Detail.Rating.Value);
            }

            //split[0] -> data:image/png;base64
            string[] split = film.Poster.Split(",");

            Film filmToCreate = new Film(film.Titel, film.Jaar, film.Minuten, film.Categorie, split[1], detail);

            foreach (var i in film.Detail.Acteurs)
            {
                filmToCreate.AddActeur(new Acteur(i.Naam, i.Rol));
            }
            foreach (var i in film.Detail.Regisseurs)
            {
                filmToCreate.AddRegisseur(new Regisseur(i.Naam));
            }
            g.AddFilmWatchlist(filmToCreate);
            _filmRepo.SaveChanges();
            _gebruikerRepo.SaveChanges();

            return(CreatedAtAction(nameof(GetFilmsWatchlist), new { id = filmToCreate.Id }, filmToCreate));
        }
コード例 #8
0
        public ActionResult AddOfVerwijderVerlanglijst(int id, Gebruiker gebruiker)
        {
            try
            {
                Product product = productRepository.FindByProductNummer(id);
                gebruiker.VoegProductAanVerlanglijstToe(product);
                if (gebruiker.VerlangLijst.Contains(product))
                {
                    TempData["Info"] = "Product " + product.Naam + " is toegevoegd aan verlanglijst.";
                }
                else
                {
                    TempData["Info2"] = "Product " + product.Naam + " is verwijderd uit uw verlanglijst.";
                }
                gebruikerRepository.SaveChanges();
            }


            catch (ArgumentException e)
            {
                TempData["ReservatieFail"] = e.Message;
            }

            return(RedirectToAction("Index"));
        }
コード例 #9
0
 public IActionResult RegistreerAanwezigheid(int lesmomentId, string gebruikersnaam)
 {
     try
     {
         Lesmoment lesmoment = lesmomentRepository.GetById(lesmomentId);
         Gebruiker gebruiker = gebruikerRepository.GetBy(gebruikersnaam);
         if (lesmoment.EersteHelftIsVoorbij())
         {
             TempData["error"] = "De eerste helft van het lesmoment is al voorbij, u kan zelf niet meer aanwezig melden";
             return(RedirectToRoute(new { controller = "Home", action = "Index" }));
         }
         else
         {
             if (gebruiker.Lesformule.TitleText.Count() > 8)   //meerdere dagen formule => 5 punten
             {
                 gebruiker.voegPuntenToe(5);
             }
             else
             {
                 gebruiker.voegPuntenToe(10);                 //1 dag formule => 10 punten
             }
             gebruikerRepository.SaveChanges();
             lesmoment.RegistreerLid(gebruiker);
             lesmomentRepository.Save();
             return(RedirectToAction(nameof(Aanwezigheden)));
         }
     }
     catch
     {
         return(RedirectToAction("Error", "Home"));
     }
 }
コード例 #10
0
        public IActionResult Edit(Gebruiker gebruiker, GebruikerEditViewModel model)
        {
            try
            {
                if (gebruiker.Equals(null))
                {
                    return(RedirectToAction("Error", "Home"));
                }

                try
                {
                    MapGebruikerEditViewModelToGebruiker(model, gebruiker);
                    _gebruikerRepository.SaveChanges();
                    TempData["message"] = $"Je hebt je gegevens succesvol bijgewerkt.";
                }
                catch
                {
                    TempData["error"] = "Er vond een probleem plaats bij het wijzigen van je gegevens. Probeer later opnieuw.";
                    return(RedirectToAction(nameof(Edit), model));
                }
                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(RedirectToAction("Error", "Home"));
            }
        }
コード例 #11
0
        public async Task <IActionResult> Index(IndexViewModel model)
        {
            ViewData["AlleCategorien"] = _categorieRepository.GetAll().ToList();
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            var gebruiker = _gebruikerRepository.GetBy(user.Email);

            var email = user.Email;

            var voornaam = gebruiker.Voornaam;

            if (model.Voornaam != voornaam)
            {
                gebruiker.Voornaam = model.Voornaam;
                _gebruikerRepository.SaveChanges();
            }

            var familienaam = gebruiker.Familienaam;

            if (model.Familienaam != familienaam)
            {
                gebruiker.Familienaam = model.Familienaam;
                _gebruikerRepository.SaveChanges();
            }

            var geslacht = gebruiker.Geslacht;

            if (model.Geslacht != geslacht)
            {
                gebruiker.Geslacht = model.Geslacht;
                _gebruikerRepository.SaveChanges();
            }

            StatusMessage = "Uw gegevens werden succesvol bijgewerkt.";
            return(RedirectToAction(nameof(Index)));
        }
コード例 #12
0
ファイル: GraadController.cs プロジェクト: BramDB24/Taijitan
        public void getConsult(Gebruiker gebruiker, int oefeningid)
        {
            Gebruiker lid = _gebruikerRepository.GetByGebruikernaam(gebruiker.Gebruikersnaam);

            if (lid != null)
            {
                lid.AddGebruikerOefening(gebruiker, oefeningid);
                _gebruikerRepository.SaveChanges();
            }
        }
コード例 #13
0
        public ActionResult Add(int id, ApplicationUser user)
        {
            Product product = productRepository.FindById(id);

            if (product != null)
            {
                if (user.Verlanglijst.BevatProduct(product))
                {
                    TempData["Error"] = "De verlanglijst bevat reeds product " + product.Artikelnaam + ".";
                }
                else
                {
                    user.Verlanglijst.VoegProductToe(product);
                    TempData["Info"] = "Product " + product.Artikelnaam + " is toegevoegd aan je verlanglijst";
                    gebruikerRepository.SaveChanges();
                }
            }
            return(RedirectToAction("Index", "Product"));
        }
コード例 #14
0
        public void MaakReservatie(Gebruiker gebruiker, int[] materiaal, int[] aantal, string startDatum, string[] dagen)
        {
            IList <Materiaal> materialen = GeefMaterialenVanId(materiaal);

            string eersteDag = HulpMethode.GetStartDatum(startDatum).ToShortDateString();

            if (materialen.Count > 0)
            {
                IDictionary <Materiaal, int> potentieleReservaties = InvullenVanMapMetPotentieleReservaties(aantal, materialen);

                try
                {
                    if (gebruiker is Student)
                    {
                        Student student = gebruiker as Student;

                        student.MaakReservaties(potentieleReservaties, eersteDag);
                        VerstuurMailStudent(potentieleReservaties, eersteDag, student);

                        TempData["Info"] = $"Reservatie werd aangemaakt";
                    }
                    else
                    {
                        Lector lector = gebruiker as Lector;

                        lector.MaakBlokkeringen(potentieleReservaties, eersteDag, dagen);

                        VerstuurMailBlokkeringLector(potentieleReservaties, dagen, lector);
                        IList <Reservatie> overruled = lector.OverruledeReservaties;
                        VerstuurMailNaarStudentDieOverruledIs(overruled);

                        TempData["Info"] = $"Reservatie werd aangemaakt";
                    }

                    gebruikerRepository.SaveChanges();
                }
                catch (ArgumentException ex)
                {
                    TempData["Error"] = ex.Message;
                }
            }
        }
コード例 #15
0
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            if (controllerContext.HttpContext.User.Identity.IsAuthenticated)
            {
                IGebruikerRepository repos     = (IGebruikerRepository)DependencyResolver.Current.GetService(typeof(IGebruikerRepository));
                Gebruiker            gebruiker = repos.FindByName(controllerContext.HttpContext.User.Identity.Name);

                if (gebruiker == null)
                {
                    if (controllerContext.HttpContext.User.Identity.Name.Contains("@student.hogent"))
                    {
                        gebruiker = new Student()
                        {
                            Naam  = "Student",
                            Email = controllerContext.HttpContext.User.Identity.Name
                        };
                    }
                    else
                    {
                        gebruiker = new Lector
                        {
                            Naam  = "Lector",
                            Email = controllerContext.HttpContext.User.Identity.Name,
                        };
                    }
                    gebruiker.Verlanglijst = new Verlanglijst();
                    gebruiker.Reservaties  = new List <Reservatie>();
                    repos.AddGebruiker(gebruiker);
                    repos.SaveChanges();
                }
                if (gebruiker.Verlanglijst == null)
                {
                    gebruiker.Verlanglijst = new Verlanglijst();
                    repos.SaveChanges();
                }
                controllerContext.HttpContext.Session[VerlanglijstSessionKey] = gebruiker;
                // Op basis van controllerContext.HttpContext.User.Identity.Name kunnen we niet weten of de gebruiker
                // al dan niet een lector is... Hier moet nog een oplossing voor gezocht worden.
                return(gebruiker);
            }
            return(null);
        }
コード例 #16
0
        public IActionResult DetailInschrijvenUitschrijven(Gebruiker gebruiker, int id, SessieDetailsViewModel sessieDetailsViewModel)
        {
            Sessie sessie = _sessieRepository.GetByID(id);

            try
            {
                bool succes = false;
                foreach (GebruikerSessie gs in sessie.GebruikerSessies)
                {
                    if (gs.Gebruiker.Equals(gebruiker))
                    {
                        sessie.SchrijfUit(gebruiker);
                        succes = true;
                        TempData["message"] = "Uitschrijven is gelukt";
                        _sessieRepository.SaveChanges();
                        _gebruikerRepository.SaveChanges();
                        break;
                    }
                }
                if (!succes)
                {
                    sessie.SchrijfIn(gebruiker);
                    TempData["message"] = "Inschrijven is gelukt";
                    _sessieRepository.SaveChanges();
                    _gebruikerRepository.SaveChanges();
                }
            }
            catch (ArgumentException e)
            {
                TempData["error"] = e.Message;
            }
            catch (SchrijfInSchrijfUitException e)
            {
                TempData["error"] = e.Message;
            }
            catch (GeenActieveGebruikerException e)
            {
                TempData["error"] = e.Message;
            }
            return(RedirectToAction("Index", "Sessie", new { @maandNr = sessie.StartDatum.Month }));
        }
コード例 #17
0
        public IActionResult MeldAanwezig(int id, string aanwezig, MeldAanwezigViewModel model)
        {
            try
            {
                Sessie    sessie = _sessieRepository.GetByID(id);
                Gebruiker gebruiker;
                if (sessie.StartDatum <= DateTime.Now && sessie.StatusSessie != StatusSessie.Gesloten)
                {
                    throw new SessieException("Je kan je niet meer aanmelden in deze sessie.");
                }
                if (aanwezig != null)
                {
                    model.Barcode = aanwezig;
                }
                gebruiker = _gebruikerRepository.GetDeelnemerByBarcode(model.Barcode);

                if (sessie.geefAlleAanwezigen().Contains(gebruiker))
                {
                    TempData["message"] = gebruiker.GeefVolledigeNaam() + " is afwezig gezet!";
                }
                else
                {
                    TempData["message"] = gebruiker.GeefVolledigeNaam() + "  is aanwezig gezet!";
                }
                sessie.MeldAanwezigAfwezig(gebruiker);
                _sessieRepository.SaveChanges();
                _gebruikerRepository.SaveChanges();

                model.Barcode = null;
                return(View(new MeldAanwezigViewModel(sessie)));
            }
            catch (SessieException e)
            {
                TempData["Error"] = e.Message;
                return(RedirectToAction(nameof(Index), new { @id = id }));
            }
            catch (GeenActieveGebruikerException e)
            {
                TempData["Error"] = e.Message;
                return(RedirectToAction(nameof(MeldAanwezig), new { @id = id }));
            }
            catch (SchrijfInSchrijfUitException e)
            {
                TempData["Error"] = e.Message;
                return(RedirectToAction(nameof(MeldAanwezig), new { @id = id }));
            }
            catch (Exception e)
            {
                TempData["Error"] = "Gebruiker kon niet worden aanwezig gesteld";

                return(RedirectToAction(nameof(MeldAanwezig), new { @id = id }));
            }
        }
コード例 #18
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["AlleCategorien"] = _categorieRepository.GetAll().ToList();
            ViewData["ReturnUrl"]      = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = model.Email, Email = model.Email
                };
                var result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var gebruiker = new Gebruiker
                    {
                        Voornaam    = model.Voornaam,
                        Familienaam = model.Familienaam,
                        Emailadres  = model.Email,
                        Geslacht    = model.Geslacht ?? Geslacht.Anders
                    };
                    _gebruikerRepository.Add(gebruiker);
                    _gebruikerRepository.SaveChanges();
                    _logger.LogInformation("User created a new account with password.");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                    await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl, model.Voornaam);

                    await _signInManager.SignInAsync(user, isPersistent : false);

                    _logger.LogInformation("User created a new account with password.");
                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }
            // If we got this far, something failed, redisplay form
            ViewData["Geslacht"] = Geslachten();
            return(View(model));
        }
コード例 #19
0
        public async Task <bool> Login(LoginViewModel model)
        {
            var    json     = string.Empty;
            string password = HashPasswordSha256(model.Password);
            string url      = "https://studservice.hogent.be/auth" + "/" + model.Email + "/" + password;

            using (HttpClient hc = new HttpClient())
            {
                json = await hc.GetStringAsync(url); //wc.DownloadString(url);
            }
            dynamic array = JsonConvert.DeserializeObject(json);

            if (array.Equals("[]"))
            {
                return(true);
            }
            var name  = array.NAAM.ToString();
            var vnaam = array.VOORNAAM.ToString();

            Type = array.TYPE.ToString();
            var faculteit = array.FACULTEIT.ToString();

            Email = array.EMAIL.ToString();
            Gebruiker gebruiker = repository.FindByName(model.Email);

            if (gebruiker == null)
            {
                if (Type.ToLower().Equals("student"))
                {
                    gebruiker = new Student()
                    {
                        Naam      = vnaam + " " + name,
                        Email     = Email,
                        Faculteit = faculteit
                    };
                }
                else
                {
                    gebruiker = new Lector
                    {
                        Naam      = vnaam + " " + name,
                        Email     = Email,
                        Faculteit = faculteit
                    };
                }
                gebruiker.Verlanglijst = new Verlanglijst();
                gebruiker.Reservaties  = new List <Reservatie>();
                repository.AddGebruiker(gebruiker);
                repository.SaveChanges();
            }
            return(false);
        }
コード例 #20
0
        public ActionResult <Gebruiker> DeleteGebruiker(string email)
        {
            Gebruiker gebruiker = _gebruikerRepository.GetBy(email);

            if (gebruiker == null)
            {
                return(NotFound());
            }
            _gebruikerRepository.Delete(gebruiker);
            _gebruikerRepository.SaveChanges();

            return(gebruiker);
        }
コード例 #21
0
 public IActionResult Create(ContractEditViewModel cevm, Klant klant)
 {
     if (ModelState.IsValid)
     {
         try
         {
             Contract     contract = new Contract();
             ContractType type     = _contractTypeRepository.GetContractType(cevm.ContractTypeId);
             MapContractEditViewModelToContract(cevm, contract);
             contract.ContractType = type;
             klant.VoegContractToe(contract);
             _gebruikerRepository.SaveChanges();
             _notyf.Success($"Succesvol {contract.ContractTitel} aangemaakt!");
         }
         catch
         {
             _notyf.Error("Oops.. contract is niet aangemaakt. Probeer opnieuw.");
         }
         return(RedirectToAction(nameof(Index)));
     }
     ViewData["contractTypes"] = GetContractTypesAsSelectList();
     return(View(nameof(Create), cevm));
 }
コード例 #22
0
 public IActionResult Create(TicketEditViewModel tevm, Klant klant)
 {
     if (ModelState.IsValid)
     {
         try
         {
             Ticket ticket = new Ticket();
             MapTicketEditViewModelToTicket(tevm, ticket);
             TicketType ticketType = _ticketTypeRepository.GetBy(tevm.TicketTypeId);
             ticket.TicketType = ticketType;
             klant.AddTicketByContractId(tevm.ContractId, ticket);
             _gebruikerRepository.SaveChanges();
             _notyf.Success("Ticket succesvol aangemaakt", 3);
         }
         catch
         {
             _notyf.Error("Er is iets misgelopen. Probeer opnieuw.", 3);
         }
         return(RedirectToAction(nameof(Index)));
     }
     ViewData["IsEdit"]      = false;
     ViewData["ticketTypes"] = GetTicketTypesAsSelectList();
     return(View(nameof(Edit), tevm));
 }
コード例 #23
0
        public ActionResult RemoveFromReservatieLijst(int id, Gebruiker gebruiker)
        {
            try
            {
                ReservatieAbstr reservatie = gebruiker.ReservAbstrLijst.FirstOrDefault(b => b.ReservatieAbstrId == id);
                gebruiker.VerwijderReservatieAbstr(reservatie);
                gebruikerRepository.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch
            {
                TempData["DeleteFail"] = "Verwijderen van reservatie is niet gelukt";

                return(RedirectToAction("Index"));
            }
        }
コード例 #24
0
        public ActionResult <Film> PostFilm(FilmDTO film)
        {
            Gebruiker g      = _gebruikerRepo.GetBy(User.Identity.Name);
            Detail    detail = new Detail(film.Detail.Beschrijving, film.Detail.Storyline);

            if (film.Detail.Rating != null)
            {
                detail.AddRating(film.Detail.Rating.Value);
            }

            Film filmToCreate = new Film()
            {
                Titel = film.Titel, Jaar = film.Jaar, Minuten = film.Minuten, Categorie = film.Categorie, Detail = detail
            };

            foreach (var i in film.Detail.Acteurs)
            {
                if (i.Sterfdatum == null)
                {
                    filmToCreate.AddActeur(new Acteur(i.Naam, i.Geboortedatum));
                }
                else
                {
                    filmToCreate.AddActeur(new Acteur(i.Naam, i.Geboortedatum, i.Sterfdatum.Value));
                }
            }
            foreach (var i in film.Detail.Regisseurs)
            {
                if (i.Sterfdatum == null)
                {
                    filmToCreate.AddRegisseur(new Regisseur(i.Naam, i.Geboortedatum));
                }
                else
                {
                    filmToCreate.AddRegisseur(new Regisseur(i.Naam, i.Geboortedatum, i.Sterfdatum.Value));
                }
            }
            g.AddFilmWatchlist(filmToCreate);
            _filmRepo.SaveChanges();
            _gebruikerRepo.SaveChanges();

            return(CreatedAtAction(nameof(GetFilmsWatchlist), new { id = filmToCreate.Id }, filmToCreate));
        }
コード例 #25
0
        public ActionResult VoegAanVerlanglijstToe(int id, Gebruiker gebruiker)
        {
            Materiaal materiaal = materiaalRepository.FindAll().FirstOrDefault(m => m.MateriaalId == id);

            if (materiaal != null)
            {
                try
                {
                    gebruiker.VoegMateriaalAanVerlanglijstToe(materiaal);
                    gebruikerRepository.SaveChanges();
                    TempData["Info"] = $"Item {materiaal.Naam} werd toegevoegd aan verlanglijst";
                }
                catch (ArgumentException ex)
                {
                    TempData["Error"] = ex.Message;
                }
            }
            return(RedirectToAction("Index"));
        }
コード例 #26
0
        public IActionResult RegistreerAanwezigheden(string aanwezigeLedenIds, string afwezigeLedenIds, Sessie sessie)
        {
            IEnumerable <Lid> aanwezigeLeden = new List <Lid>();
            IEnumerable <Lid> afwezigeLeden  = new List <Lid>();

            if (aanwezigeLedenIds != null)
            {
                aanwezigeLeden = aanwezigeLedenIds.Split(",").Select(l => _gebruikerRepository.GetLidByGebruikersnaam(l));
            }
            if (afwezigeLedenIds != null)
            {
                afwezigeLeden = afwezigeLedenIds.Split(",").Select(l => _gebruikerRepository.GetLidByGebruikersnaam(l));
            }
            sessie.RegistreerAanwezigheden(aanwezigeLeden.AsEnumerable(), afwezigeLeden.AsEnumerable());
            _sessieRepository.Add(sessie);
            _sessieRepository.SaveChanges();    //sessie toegevoegd
            _gebruikerRepository.SaveChanges(); //punten leden toegevoegd
            return(RedirectToAction(nameof(AanwezigeLeden)));
        }
コード例 #27
0
        public async Task <ActionResult <String> > Register(RegisterDTO model)
        {
            IdentityUser user = new IdentityUser {
                UserName = model.Username, Email = model.Email
            };
            Gebruiker gebruiker = new Gebruiker {
                Email = model.Email, Voornaam = model.Firstname, Achternaam = model.Lastname, Gebruikersnaam = model.Username
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                _gebruikerRepository.Add(gebruiker);
                _gebruikerRepository.SaveChanges();
                string token = GetToken(user);
                return(Created("", token));
            }
            return(BadRequest());
        }
コード例 #28
0
        public IActionResult Edit(Gebruiker gebruiker, GebruikersViewModel gvm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Gebruiker _gebruiker = gebruiker;
                    _gebruiker.EditGebruiker(gvm.Email, gvm.Naam, gvm.Voornaam, gvm.Telefoonnummer, gvm.GeboorteDatum /*, gvm.Adres*/);
                    _gebruikerRepository.SaveChanges();
                    TempData["message"] = $"Gebruiker {gebruiker.Voornaam} is succesvol aangepast";
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                }

                return(RedirectToAction(nameof(Index), "Graad"));
            }
            return(View(nameof(Edit), gvm));
        }
コード例 #29
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new IdentityUser {
                    UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Role, "gebruiker"));

                    // user opslaan in database
                    Gebruiker gebruiker = new Gebruiker(Input.FirstName, Input.LastName, Input.Email, EncryptPassword(Input.Password));
                    gebruiker.Aantalaanwezig     = 0;
                    gebruiker.Aantalafwezig      = 0;
                    gebruiker.Aantalingeschreven = 0;
                    _gebruikerRepository.Add(gebruiker);
                    _gebruikerRepository.SaveChanges();

                    await _signInManager.SignInAsync(user, isPersistent : false);

                    return(LocalRedirect(returnUrl));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
コード例 #30
0
        /// <summary>
        /// Sluit de sessie
        /// </summary>
        /// <param name="id"></param>
        /// <returns>View naar Kalander van sessies</returns>
        public IActionResult Sluiten(int id)
        {
            try
            {
                Sessie sessie = _sessieRepository.GetByID(id);

                sessie.SessieSluiten();
                _sessieRepository.SaveChanges();
                _gebruikerRepository.SaveChanges();

                return(RedirectToAction("Index", "Sessie"));
            }
            catch (SessieException e)
            {
                TempData["sluitenMessage"] = e.Message;
                return(RedirectToAction(nameof(Openzetten)));
            }
            catch (Exception e)
            {
                TempData["sluitenMessage"] = e.Message;
                return(RedirectToAction(nameof(Openzetten)));
            }
        }