Ejemplo n.º 1
0
        //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();
            }
        }
Ejemplo n.º 2
0
 //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));
        }
Ejemplo n.º 4
0
        //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);
            }
        }
Ejemplo n.º 5
0
 //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));
        }
Ejemplo n.º 7
0
 //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");
 }
Ejemplo n.º 8
0
        // 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)));
        }
Ejemplo n.º 9
0
 //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);
 }
Ejemplo n.º 10
0
        //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);
        }
Ejemplo n.º 11
0
        //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));
        }
Ejemplo n.º 15
0
        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));
        }
Ejemplo n.º 16
0
        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";
        }
Ejemplo n.º 17
0
        //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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
 public void UpdateRestaurateur(Restaurateur r)
 {
     RestaurateurManager.Update(r);
 }