private void ValidationCarteIdentite(IDCarte idCarte) { if (!String.IsNullOrEmpty(idCarte.RegistreNational)) { string NissPattern = @"^[0-9]{2}.[0-9]{2}.[0-9]{2}-[0-9]{3}.[0-9]{2}$"; var regexMatch = Regex.Match(idCarte.RegistreNational, NissPattern); if (!regexMatch.Success) { throw new CustomBadRequestException(MessageErreur.FormatRegistreNationalInvalide); } } if (String.IsNullOrEmpty(idCarte.Nom)) { throw new CustomBadRequestException(MessageErreur.NomNonReference); } if (String.IsNullOrEmpty(idCarte.Prenom)) { throw new CustomBadRequestException(MessageErreur.PrenomNonReference); } if (idCarte.DateNaissance == defaultDate) { throw new CustomBadRequestException(MessageErreur.DateNaissanceNonReference); } if (idCarte.DateValidation == defaultDate) { throw new CustomBadRequestException(MessageErreur.DateValidationeNonReference); } if (idCarte.DateExpiration == defaultDate) { throw new CustomBadRequestException(MessageErreur.DateExpirationNonReference); } if (DateTime.Compare(idCarte.DateExpiration, idCarte.DateValidation) < 0) { throw new CustomBadRequestException(MessageErreur.DateValidationInvalide); } if (DateTime.Compare(idCarte.DateExpiration, DateTime.Today) < 0) { throw new CustomBadRequestException(MessageErreur.CarteIdentiteExpire); } if (idCarte.CalculerAge(idCarte.DateNaissance) < AgeMinimum) { throw new CustomBadRequestException(MessageErreur.AgeMinimumRequis); } }
public Core.Domaines.Membre CreerMembre(CreerMembreRequete requete) { if (requete == null) { throw new CustomBadRequestException(MessageErreur.RequeteNull); } if (String.IsNullOrEmpty(requete.Telephone) && String.IsNullOrEmpty(requete.Email)) { throw new CustomBadRequestException(MessageErreur.EmailEtTelephoneNonInvalide); } if (!String.IsNullOrEmpty(requete.Email)) { string pattern = @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z"; var regexMatch = Regex.Match(requete.Email, pattern); if (!regexMatch.Success) { throw new CustomBadRequestException(MessageErreur.FormatEmailInvalide); } } if (!String.IsNullOrEmpty(requete.Telephone)) { string pattern = @"^0[0-9]{9}$"; var regexMatch = Regex.Match(requete.Telephone, pattern); if (!regexMatch.Success) { throw new CustomBadRequestException(MessageErreur.FormatTelephoneInvalide); } } var idCarteExistant = _context.IDCartes.SingleOrDefault(x => x.RegistreNational == requete.CarteIdentite.RegistreNational); if (idCarteExistant != null) { throw new CustomNotFoundException(MessageErreur.RegistreNationalDejaExistant); } var nouvelleIDCarte = new IDCarte { Nom = requete.CarteIdentite.Nom, Prenom = requete.CarteIdentite.Nom, DateNaissance = requete.CarteIdentite.DateNaissance, RegistreNational = requete.CarteIdentite.RegistreNational, DateValidation = requete.CarteIdentite.DateValidation, DateExpiration = requete.CarteIdentite.DateExpiration, NumeroCarte = requete.CarteIdentite.NumeroCarte }; ValidationCarteIdentite(nouvelleIDCarte); var nouvelleCarteMembre = new MembreCarte { Code = Guid.NewGuid().ToString(), IsActive = true }; var nouveauMembre = new Core.Domaines.Membre { Email = requete.Email, Telephone = requete.Telephone, IsBlacklister = false, DebutDateBlacklister = new DateTime(), FinDateBlacklister = new DateTime(), CarteIdentites = new List <IDCarte>() { nouvelleIDCarte }, MembreCartes = new List <MembreCarte>() { nouvelleCarteMembre } }; _context.Membres.Add(nouveauMembre); _context.SaveChanges(); return(nouveauMembre); }