public IActionResult CreerNouvelEmploye(Employe Employe)
        {
            try
            {
                if (Employe == null)
                {
                    throw new ArgumentNullException(nameof(Employe));
                }

                if (Employe.Compte == null)
                {
                    throw new NullReferenceException();
                }

                if (!InputValidationHelper.IsValidUsername(Employe.NomUtilisateur))
                {
                    throw new ArgumentException(Employe.NomUtilisateur);
                }

                if (!InputValidationHelper.IsValidPassword(Employe.MotPasse))
                {
                    throw new ArgumentException(Employe.MotPasse);
                }

                Employe.Compte = _db.Compte.Where(c => c.Email == Employe.Compte.Email).FirstOrDefault();
                if (Employe.Compte.Id == 0)
                {
                    BadRequest("Error");
                }

                Employe.MotPasse = PasswordHelper.HashPassword(Employe.MotPasse);

                _db.Employe.Add(Employe);
                _db.SaveChanges();

                if (Employe.Id != 0)
                {
                    return(Ok("OK"));
                }

                return(BadRequest("Error"));
            }
            catch (ArgumentNullException)
            {
                return(BadRequest("Requête invalide"));
            }
            catch (ArgumentException)
            {
                return(BadRequest("Informations erronées"));
            }
            catch (NullReferenceException)
            {
                return(BadRequest("Requête invalide"));
            }
        }
        public IActionResult ConnexionEmploye(CompteConnexion CompteConnexion)
        {
            var employe = new Employe();

            try
            {
                if (CompteConnexion == null)
                {
                    throw new ArgumentNullException(nameof(CompteConnexion));
                }


                if (!InputValidationHelper.IsValidUsername(CompteConnexion.NomDeConnexion))
                {
                    throw new ArgumentException(CompteConnexion.NomDeConnexion);
                }

                if (!InputValidationHelper.IsValidPassword(CompteConnexion.MotDePasse))
                {
                    throw new ArgumentException(CompteConnexion.MotDePasse);
                }

                employe        = _db.Employe.FirstOrDefault(e => e.NomUtilisateur == CompteConnexion.NomDeConnexion);
                employe.Compte = _db.Compte.FirstOrDefault(c => c.Id == employe.IdCompte);

                if (employe == null)
                {
                    throw new ArgumentException(CompteConnexion.NomDeConnexion);
                }



                if (!BCrypt.Net.BCrypt.Verify(CompteConnexion.MotDePasse, employe.MotPasse))
                {
                    throw new ArgumentException(CompteConnexion.MotDePasse);
                }


                return(Ok(TokenHelper.CreateToken(employe.Compte.Prenom + " " + employe.Compte.Nom, employe.Compte.Email, employe.NomUtilisateur, "employe")));
            }
            catch (ArgumentNullException)
            {
                return(BadRequest("Requête invalide"));
            }
            catch (ArgumentException)
            {
                return(BadRequest("Informations erronées"));
            }
        }
Esempio n. 3
0
        public IActionResult Inscription(Compte compte)
        {
            Adresse adresse;

            try
            {
                if (compte == null)
                {
                    throw new ArgumentNullException(nameof(compte));
                }


                if (!InputValidationHelper.IsValidEmail(compte.Email))
                {
                    return(BadRequest("Adresse courriel invalide"));
                }

                if (!InputValidationHelper.IsValidUsername(compte.NomUtilisateur))
                {
                    return(BadRequest("Nom d'utilisateur invalide"));
                }

                if (!InputValidationHelper.IsValidFirstName(compte.Prenom))
                {
                    return(BadRequest("Nom invalide"));
                }

                if (!InputValidationHelper.IsValidLastName(compte.Nom))
                {
                    return(BadRequest("Prénom invalide"));
                }

                if (!InputValidationHelper.IsValidBirthDate(compte.DateNaissance))
                {
                    return(BadRequest("Vous devez être âgé de 18 ans ou plus"));
                }

                if (!InputValidationHelper.IsValidPassword(compte.MotPasse))
                {
                    return(BadRequest("Le mot de passe doit contenir au moins 1 majuscule, 1 minuscule, 1 chiffre," +
                                      " 1 caractère spécial ainsi qu'être d'une longueur minimale de 5 caractères"));
                }

                if (!InputValidationHelper.IsValidAddress(compte.Adresse))
                {
                    return(BadRequest("Adresse invalide"));
                }

                compte.MotPasse = PasswordHelper.HashPassword(compte.MotPasse);

                adresse = _db.Adresse.Where(a => a.NumeroCivique == compte.Adresse.NumeroCivique &&
                                            a.Rue == compte.Adresse.Rue && a.Ville == compte.Adresse.Ville &&
                                            a.CodePostal == compte.Adresse.CodePostal).FirstOrDefault();
                if (adresse != null)
                {
                    compte.Adresse = adresse;
                }

                _db.Add(compte);
                _db.SaveChanges();


                return(Created("", ""));
            }
            catch (ArgumentNullException)
            {
                return(Unauthorized("Informations erronées"));
            }
        }