//Bouton sauver private void saveRestaurateur_Click(object sender, EventArgs e) { //Création d'un objet Restaurateur avec l'id à -1 (création) ou >0 (passé en paramètre) //Les autres propriétés viennent des textBoxes Restaurateur restaurateur = new Restaurateur(); restaurateur.id = this.restaurateurId; restaurateur.nom = textBoxNom.Text.ToUpper(); restaurateur.prenom = textBoxPrenom.Text; restaurateur.username = textBoxUsername.Text.ToLower(); restaurateur.password = textBoxPassword.Text; restaurateur.email = textBoxEmail.Text.ToLower(); restaurateur.phone = textBoxPhone.Text; //Si Validate renvoie true, l'objet est valide et peut être transmis à la BU pour traitement if (Validate(restaurateur)) { //Si id = -1 alors c'est une création, envoi à la BU (RestaurateurManager.Create) if (restaurateurId == -1) { RestaurateurManager.Create(restaurateur); } //Sinon c'est une modification, envoi à la BU (RestaurateurManager.Update) else { RestaurateurManager.Update(restaurateur); } //Fermeture du form this.Dispose(); } }
//Mise à jour d'un restaurateur "r" passé en paramètre public static bool Update(Restaurateur r) { //Vérification de l'objet r: il peut être transmis par le web service et n'est pas sûr if (isValid(r)) { OdawaDS.restaurateursDataTable dt = DataProvider.GetRestaurateurs(); //Création d'une restaurateursRow et remplissage avec les attributs de "r" OdawaDS.restaurateursRow updRow = DataProvider.odawa.restaurateurs.NewrestaurateursRow(); updRow.id = r.id; updRow.nom = r.nom.ToUpper(); updRow.prenom = r.prenom; updRow.username = r.username.ToLower(); updRow.password = r.password; updRow.email = r.email.ToLower(); updRow.phone = r.phone; //Envoi à la DAL try { DataProvider.UpdateRestaurateur(updRow); //si ok, renvoie true return(true); } catch (System.Data.SqlClient.SqlException e) { //si SQLException, log et renvoie false LogManager.LogSQLException(e.Message); return(false); } } //si pas validé, renvoie false else { return(false); } }
// PUT api/Restaurateur/5 public IHttpActionResult PutRestaurateur(Restaurateur restaurateur) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //if (id != restaurateur.RestaurateurId) //{ // return BadRequest(); //} //ToDo: UpdatedBy pass login id. restaurateur.UpdatedDate = DateTime.Now; db.Entry(restaurateur).State = System.Data.Entity.EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!RestaurateurExists(restaurateur.RestaurateurId)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
//Envoi de l'email de confirmation de la création du compte restaurateur (passé en paramètre) public static void EmailCreateRestaurateur(Restaurateur r) { //Construction de la chaine nom + prénom string restaurateurNom = r.nom + " " + r.prenom; //Construction de l'adresse du destinataire (email passé en paramètre, chaine nom + prénom) MailAddress restaurateurEmail = new MailAddress(r.email, restaurateurNom); //Paramétrage pour Gmail var smtp = new SmtpClient { Host = emailHost, Port = port, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; //Initialise un email pour l'envoyer de "fromAddress" à "restaurateurEmail" using (var email = new MailMessage(fromAddress, restaurateurEmail) { //Sujet de l'email Subject = "Votre compte a été créé", //Corps de l'email Body = "Bienvenue sur odawa!\n" + "Votre nom d'utilisateur: " + r.username + "\n" + "Votre mot de passe: " + r.password + "\n\n" + "Pour vous connecter, visitez http://www.odawa.be et cliquez sur connexion\n\n" + "Merci de votre confiance et à bientôt sur Odawa." }) { //Envoi de l'email smtp.Send(email); } }
//Création restaurateur avec l'objet "r" passé en paramètre public static bool Create(Restaurateur r) { //Création d'une restaurateursRow et remplissage avec les attributs de "r" OdawaDS.restaurateursRow newRow = DataProvider.odawa.restaurateurs.NewrestaurateursRow(); newRow.nom = r.nom.ToUpper(); newRow.prenom = r.prenom; newRow.username = r.username.ToLower(); newRow.password = r.password; newRow.email = r.email.ToLower(); newRow.phone = r.phone; //Envoi à la DAL try { DataProvider.CreateRestaurateur(newRow); //Envoi du mail de bienvenue contenant les codes d'accès au restaurateur try { EmailManager.EmailCreateRestaurateur(r); } catch { //on ne fait rien ici, ne peut pas bloquer l'application } //Si création ok, renvoie true return(true); } catch (System.Data.SqlClient.SqlException e) { //Si SqlException, log et renvoie false LogManager.LogSQLException(e.Message); return(false); } }
public IHttpActionResult GetRestaurateur(int id) { Restaurateur restaurateur = db.Restaurateurs.Find(id); if (restaurateur == null) { return(NotFound()); } return(Ok(restaurateur)); }
//constructeur du form avec paramètre (Modification restaurateur), hérite du constructeur par défaut public FormRestaurateur(Restaurateur restaurateur) : this() { //Initialisation de l'id et des textBoxes avec les valeurs transmises this.restaurateurId = restaurateur.id; textBoxNom.DataBindings.Add("Text", restaurateur, "nom"); textBoxPrenom.DataBindings.Add("Text", restaurateur, "prenom"); textBoxUsername.DataBindings.Add("Text", restaurateur, "username"); textBoxPassword.DataBindings.Add("Text", restaurateur, "password"); textBoxEmail.DataBindings.Add("Text", restaurateur, "email"); textBoxPhone.DataBindings.Add("Text", restaurateur, "phone"); }
// GET api/FoodItem public IQueryable <FoodItem> GetFoodItems() { var items = db.FoodItems; foreach (var item in items) { Restaurateur restaurateur = db.Restaurateurs.Find(item.RestaurateurId); item.Restaurateur = restaurateur; } return(db.FoodItems.OrderBy(a => (a.FoodItemId))); }
//Vérification couple username-password, renvoie true ou false public static bool AcceptLogin(string username, string password) { if (username != null && password != null) { Restaurateur r = GetAll().Find(x => x.username == username); //Si un restaurateur avec ce username existe et que le mot de passe correspond, renvoie true, connexion acceptée if (r != null && r.password == password) { return(true); } } //dans les autres cas, renvoie false, connexion refusée return(false); }
//Test du caractère non null des paramètres du restaurateur (vérification des données envoyées par le web service) //si tout est ok, renvoie true, //sinon, log et renvoie false public static bool isValid(Restaurateur r) { bool b = false; if (r.nom != null) { if (r.prenom != null) { if (r.username != null) { if (r.password != null) { if (r.email != null) { if (r.phone != null) { b = true; } else { LogManager.LogNullException("Restaurateur Add/Update : Phone est Null"); } } else { LogManager.LogNullException("Restaurateur Add/Update : Email est Null"); } } else { LogManager.LogNullException("Restaurateur Add/Update : Password est Null"); } } else { LogManager.LogNullException("Restaurateur Add/Update : Username est Null"); } } else { LogManager.LogNullException("Restaurateur Add/Update : Prenom est Null"); } } else { LogManager.LogNullException("Restaurateur Add/Update : Nom est Null"); } return(b); }
//Modifier private void buttonModRestaurateur_Click(object sender, EventArgs e) { //Obtention de l'id de la ligne sélectionnée int id = (int)dataGridViewRestaurateurs.SelectedRows[0].Cells[0].Value; //Recherche du restaurateur sur base de l'id Restaurateur r = RestaurateurManager.GetAll().Find(x => x.id == id); //Ouverture du form avec passage du restaurateur sélectionné (textBoxes préremplies) if (r != null) { FormRestaurateur f = new FormRestaurateur(r); f.ShowDialog(); PopulateGrids(); } }
public IHttpActionResult PostRestaurateur(Restaurateur restaurateur) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //ToDo: UpdatedBy pass login id. restaurateur.CreatedDate = DateTime.Now; restaurateur.IsDeleted = false; db.Restaurateurs.Add(restaurateur); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = restaurateur.RestaurateurId }, restaurateur)); }
// GET api/RestaurantOrderItems public IQueryable <RestaurantOrderItem> GetRestaurantOrderItems() { var items = db.RestaurantOrderItems; foreach (var item in items) { FoodItem foodItem = db.FoodItems.Find(item.FoodItemId); item.FoodItem = foodItem; RestaurantOrder restaurantOrder = db.RestaurantOrders.Find(item.RestaurantOrderId); Restaurateur restaurateur = db.Restaurateurs.Find(restaurantOrder.RestaurateurId); restaurantOrder.Restaurateur = restaurateur; item.RestaurantOrder = restaurantOrder; } return(db.RestaurantOrderItems.OrderBy(a => (a.RestaurantOrderItemsId))); }
public IHttpActionResult DeleteRestaurateur(int id, int loginId) { Restaurateur restaurateur = db.Restaurateurs.Find(id); if (restaurateur == null) { return(NotFound()); } //ToDo: UpdatedBy pass login id. restaurateur.UpdatedBy = loginId; restaurateur.UpdatedDate = DateTime.Now; restaurateur.IsDeleted = true; db.Entry(restaurateur).State = System.Data.Entity.EntityState.Modified; //db.Restaurateurs.Remove(restaurateur); db.SaveChanges(); return(Ok(restaurateur)); }
public IQueryable <RestaurantOrder> GetRestaurantOrdersByLoginId(int LoginId) { var items = db.RestaurantOrders.Where(i => i.LoginId == LoginId); foreach (var item in items) { Login login = db.Logins.Find(item.LoginId); item.Login = login; OrderStatusRestaurateur orderStatusRestaurateur = db.OrderStatusRestaurateurs.Find(item.OrderStatusId); item.OrderStatusRestaurateur = orderStatusRestaurateur; PaymentStatu paymentStatus = db.PaymentStatus.Find(item.PaymentStatusId); item.PaymentStatu = paymentStatus; Restaurateur restaurateur = db.Restaurateurs.Find(item.RestaurateurId); item.Restaurateur = restaurateur; } return(db.RestaurantOrders.OrderBy(a => a.RestaurantOrderId)); }
private void Populate() { //Récupération du restaurateur sur base de l'id Restaurateur r = RestaurateurManager.GetAll().Find(x => x.id == this.idRestaurateur); //Construction de la chaine nom + prénom labelRestaurateur.Text = r.nom + " " + r.prenom; //Récupération de la liste des restaurants pour ce restaurateur et liaison au grid dataGridViewRestOwned.DataSource = RestaurantManager.GetAll().Where(x => x.idRestaurateur == this.idRestaurateur).ToList(); //Masquage des colonnes inutiles dataGridViewRestOwned.Columns["id"].Visible = false; dataGridViewRestOwned.Columns["adresse"].Visible = false; dataGridViewRestOwned.Columns["numero"].Visible = false; dataGridViewRestOwned.Columns["description"].Visible = false; dataGridViewRestOwned.Columns["budgetLow"].Visible = false; dataGridViewRestOwned.Columns["budgetHigh"].Visible = false; dataGridViewRestOwned.Columns["horaire"].Visible = false; dataGridViewRestOwned.Columns["genre"].Visible = false; dataGridViewRestOwned.Columns["idRestaurateur"].Visible = false; dataGridViewRestOwned.Columns["idTypeCuisine"].Visible = false; //Si la liste des restaurants est vide, désactivation des boutons supprimer et modifier restaurant if (dataGridViewRestOwned.Rows.Count == 0) { buttonDelResto.Enabled = buttonModResto.Enabled = false; } else { buttonDelResto.Enabled = buttonModResto.Enabled = true; } //renommage des colonnes affichées dataGridViewRestOwned.Columns["nom"].HeaderText = "Nom"; dataGridViewRestOwned.Columns["zipCode"].HeaderText = "Code Postal"; dataGridViewRestOwned.Columns["localite"].HeaderText = "Localité"; dataGridViewRestOwned.Columns["premium"].HeaderText = "Premium"; dataGridViewRestOwned.Columns["genre"].HeaderText = "Genre"; dataGridViewRestOwned.Columns["idTypeCuisine"].HeaderText = "Type de cuisine"; }
//Obtention de tous les restaurateurs public static List <Restaurateur> GetAll() { //Obtention de la dataTable OdawaDS.restaurateursDataTable dt = DataProvider.GetRestaurateurs(); //Création d'une liste vide List <Restaurateur> lst = new List <Restaurateur>(); //Pour chaque restaurateur dans la dataTable foreach (OdawaDS.restaurateursRow restRow in dt.Rows) { Restaurateur r = new Restaurateur(); r.id = restRow.id; r.nom = restRow.nom; r.prenom = restRow.prenom; r.username = restRow.username; r.password = restRow.password; r.email = restRow.email; r.phone = restRow.phone; //Ajout à la liste lst.Add(r); } //retourne la liste return(lst); }
private bool Validate(Restaurateur r) { //Expression régulière pour nom et prénom: caractères maj-min + (- espace '), longueur entre 2 et 30 var nomRegex = new Regex(@"^[-'a-zA-Z ]{2,30}$"); //Expression régulière pour nom d'utilisateur: caractères maj-min uniquement, longueur entre 3 et 30 var usernameRegex = new Regex(@"^[a-zA-Z]{3,30}$"); //Expression régulière pour email: "caractère(s) et/ou tiret(s) et point(s) + @ + caractère(s) et/ou tiret(s) + point + 2-3 caractères var emailRegex = new Regex(@"^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$"); //Expression régulière pour numéro de téléphone: commence par 0 + [1-9] + [0-9] * 7 ou 8 (fixe ou mobile) var phoneRegex = new Regex(@"^0[1-9][0-9]{7,8}$"); //Initialisation de la couleur des labels à "par défaut" labelNom.ForeColor = Color.Empty; labelPrenom.ForeColor = Color.Empty; labelUsername.ForeColor = Color.Empty; labelPassword.ForeColor = Color.Empty; labelEmail.ForeColor = Color.Empty; labelPhone.ForeColor = Color.Empty; bool valid = true; string message = ""; //Si le nom ne correspond pas à l'expression régulière nomRegex if (!nomRegex.IsMatch(r.nom)) { labelNom.ForeColor = Color.Red; valid = false; message += "- Nom invalide\n"; } //Si le prénom ne correspond pas à l'expression régulière nomRegex if (!nomRegex.IsMatch(r.prenom)) { labelPrenom.ForeColor = Color.Red; valid = false; message += "- Prénom invalide\n"; } //Si le nom d'utilisateur ne correspond pas à l'expression régulière usernameRegex if (!usernameRegex.IsMatch(r.username)) { labelUsername.ForeColor = Color.Red; valid = false; message += "- Nom d'utilisateur invalide\n"; } //Si le nom d'utilisateur existe déjà et que c'est une création if (AdministrateurManager.GetAll().Find(x => x.username == r.username) != null && r.id == -1) { labelUsername.ForeColor = Color.Red; valid = false; message += "- Nom d'utilisateur déjà existant\n"; } //Si le mot de passe est plus court que 4 ou plus long que 30 if (r.password.Length < 4 || r.password.Length > 30) { labelPassword.ForeColor = Color.Red; valid = false; message += "- Mot de passe invalide\n"; } //Si l'email ne correspond pas à l'expression régulière usernameRegex if (!emailRegex.IsMatch(r.email)) { labelEmail.ForeColor = Color.Red; valid = false; message += "- Email invalide\n"; } //Si l'email existe déjà et que c'est une création if (AdministrateurManager.GetAll().Find(x => x.email == r.email) != null && r.id == -1) { labelEmail.ForeColor = Color.Red; valid = false; message += "- Email déjà existant\n"; } //Si le numéro de téléphone ne correspond pas à l'expression régulière phoneRegex if (!phoneRegex.IsMatch(r.phone)) { labelPhone.ForeColor = Color.Red; valid = false; message += "- Numéro de téléphone invalide\n"; } //Si le restaurateur envoyé par le form est invalide if (!valid) { //Affichage du message d'erreur string caption = "Erreur"; MessageBoxButtons buttons = MessageBoxButtons.OK; MessageBoxIcon icon = MessageBoxIcon.Error; MessageBox.Show(message, caption, buttons, icon); } //retourne valid return(valid); }
public void UpdateRestaurateur(Restaurateur r) { RestaurateurManager.Update(r); }