コード例 #1
0
        public string createInscription(Project project, string id)
        {
            string query = "INSERT INTO inscriptions (Id, id_user, id_project, Validated) VALUES (NULL, " + id + ", " + project.Id + ", false)";
            MySqlHelper.ExecuteNonQuery(Connection, query);

            using (MySqlDataReader projectChecker = MySqlHelper.ExecuteReader(Connection, "SELECT id_user, title From projects WHERE id = '" + project.Id + "'"))
            {
                if (projectChecker.HasRows)
                {
                    projectChecker.Read();
                    using (MySqlDataReader userChecker = MySqlHelper.ExecuteReader(Connection, "SELECT Email From users WHERE uniq_id = '" + projectChecker.GetString(0) + "'"))
                    {
                        if (userChecker.HasRows)
                        {
                            userChecker.Read();

                            string emailAddress = "*****@*****.**", password = "******";

                            var sender = new GmailDotComMail(emailAddress, password);
                            sender.SendMail(userChecker.GetString(0), "Coding MarketPlace - inscription au projet", "Un développeur s'est inscrit à votre projet : " + projectChecker.GetString(1));

                            Notification notif = new Notification();
                            NotificationsController notifCtrl = new NotificationsController();
                            notif.Text = "Un développeur s'est inscrit au projet : " + projectChecker.GetString(1);
                            notif.UniqId = projectChecker.GetString(0);
                            notifCtrl.createNotification(notif);
                        }
                    }
                }
            }

            return "ok";
        }
コード例 #2
0
        public string validateInscription(Project project, string id)
        {
            string query = "UPDATE inscriptions SET Validated = true WHERE id_user = "******" AND id_project = " + project.Id;
            MySqlHelper.ExecuteNonQuery(Connection, query);
            deleteOtherApply(project, id);

            using (MySqlDataReader projectChecker = MySqlHelper.ExecuteReader(Connection, "SELECT id_user, title From projects WHERE id = '" + project.Id + "'"))
            {
                if (projectChecker.HasRows)
                {
                    projectChecker.Read();
                    using (MySqlDataReader userChecker = MySqlHelper.ExecuteReader(Connection, "SELECT Email From users WHERE uniq_id = '" + projectChecker.GetString(0) + "'"))
                    {
                        if (userChecker.HasRows)
                        {
                            userChecker.Read();

                            string emailAddress = "*****@*****.**", password = "******";

                            var sender = new GmailDotComMail(emailAddress, password);
                            sender.SendMail(userChecker.GetString(0), "Coding MarketPlace - inscription au projet", "Le projet : " + projectChecker.GetString(1) + " a bien été validé");

                            Notification notif = new Notification();
                            NotificationsController notifCtrl = new NotificationsController();
                            notif.Text = "Le projet : " + projectChecker.GetString(1) + "a bien été validé";
                            notif.UniqId = projectChecker.GetString(0);
                            notifCtrl.createNotification(notif);
                        }
                    }
                }
            }

            return "ok";
        }
コード例 #3
0
        public void ContactUs([FromBody] MailContactUs mail)
        {
            string emailAddress = "*****@*****.**", password = "******";

            var sender = new GmailDotComMail(emailAddress, password);
            sender.SendMail("*****@*****.**", "Coding MarketPlace - Contact Us", "L'utilisateur : " + mail.FirstName + " " + mail.LastName + " nous a contacté.\nSon message est le suivant:\n\n" + mail.Message + "\n\nPour lui répondre, voici son adresse email : " + mail.Email);
        }
コード例 #4
0
        public string createMail(string content, string id, string contactMailAddress)
        {
            string emailAddress = "*****@*****.**", password = "******";

            var sender = new GmailDotComMail(emailAddress, password);
            sender.SendMail(contactMailAddress, "Coding MarketPlace - contact", content);

            string query = "INSERT INTO mails (Id, id_user, content) VALUES (NULL, " + id + ", '" + content + "')";
            MySqlHelper.ExecuteNonQuery(Connection, query);
            return "ok";
        }
コード例 #5
0
        public object ApplyToProject([FromBody] Project project, string id)
        {
            using (MySqlDataReader userChecker = MySqlHelper.ExecuteReader(Connection, "SELECT developper, Email From users WHERE uniq_id = '" + id + "'"))
            {
                if (userChecker.HasRows)
                {
                    userChecker.Read();
                    if (userChecker.GetBoolean(0))
                    {
                        InscriptionsController insc = new InscriptionsController();
                        if (insc.createInscription(project, id).Equals("ok"))
                        {
                            using (MySqlDataReader projectChecker = MySqlHelper.ExecuteReader(Connection, "SELECT title From projects WHERE id = '" + project.Id + "'"))
                            {
                                if (projectChecker.HasRows)
                                {
                                    projectChecker.Read();
                                    string emailAddress = "*****@*****.**", password = "******";

                                    var sender = new GmailDotComMail(emailAddress, password);
                                    sender.SendMail(userChecker.GetString(1), "Coding MarketPlace - inscription", "Votre inscription au projet : " + projectChecker.GetString(0) + " a bien été prise en compte");

                                    Notification notif = new Notification();
                                    NotificationsController notifCtrl = new NotificationsController();
                                    notif.Text = "Vous êtes bien inscrit au projet : " + projectChecker.GetString(0);
                                    notif.UniqId = id;
                                    notifCtrl.createNotification(notif);
                                }
                            }

                            return Request.CreateResponse(HttpStatusCode.Created, "Inscription to project successful");
                        }
                        else
                        {
                            return Request.CreateResponse(HttpStatusCode.InternalServerError, "Error, inscription to project denied");
                        }
                    }
                    else
                    {
                        return Request.CreateResponse(HttpStatusCode.BadRequest, "You are not a developper");
                    }
                }
            }
            return Request.CreateResponse(HttpStatusCode.InternalServerError, "Error, could not proceed to inscription");
        }
コード例 #6
0
        public object Create([FromBody] User user)
        {
            using (MySqlDataReader reader = MySqlHelper.ExecuteReader(Connection, "SELECT Login, Email From users WHERE Login = '******' OR Email = '" + user.Email + "'"))
            {
                if (reader.HasRows)
                {
                    if (reader.GetString(0).Equals(user.Login))
                    {
                        return Request.CreateResponse(HttpStatusCode.BadRequest, "Login already exist");
                    }
                    else
                    {
                        return Request.CreateResponse(HttpStatusCode.BadRequest, "Email already exist");
                    }
                }
            }

            string query = "INSERT INTO users (Id, Email, password, login, developper, project_creator, description, image_url, first_name, last_name, uniq_id) VALUES (NULL, @email, @password, @login, @developper, @projectCreator, @description, @imageUrl, @firstName, @lastName, @uniqId)";

            Random rnd = new Random();
            int number = rnd.Next(1000, 10000);
            DateTime localDate = DateTime.Now;
            var culture = new CultureInfo("fr-FR");
            string uniqId = number.ToString() + localDate.ToString(culture).Replace(" ", string.Empty).Replace("/", string.Empty).Replace(":", string.Empty);

            List<MySqlParameter> parms = new List<MySqlParameter>();
            parms.Add(new MySqlParameter("email", user.Email));
            parms.Add(new MySqlParameter("password", encryptString(user.Password)));
            parms.Add(new MySqlParameter("login", user.Login));
            parms.Add(new MySqlParameter("developper", user.Developper));
            parms.Add(new MySqlParameter("projectCreator", user.ProjectCreator));
            parms.Add(new MySqlParameter("description", user.Description));
            if(user.ImageUrl != "")
            {
                parms.Add(new MySqlParameter("imageUrl", user.ImageUrl));
            }
            else
            {
                parms.Add(new MySqlParameter("imageUrl", "http://codingmarketplace.herokuapp.com/app/img/upload/profile_user_default.jpg"));
            }
            parms.Add(new MySqlParameter("firstName", user.FirstName));
            parms.Add(new MySqlParameter("lastName", user.LastName));
            parms.Add(new MySqlParameter("uniqId", uniqId));

            MySqlHelper.ExecuteNonQuery(Connection, query, parms.ToArray());

            string emailAddress = "*****@*****.**", password = "******";

            var sender = new GmailDotComMail(emailAddress, password);
            sender.SendMail(user.Email, "Coding MarketPlace - inscription", "Bienvenue sur le site coding MarketPlace, " + user.Login);

            return Request.CreateResponse(HttpStatusCode.Created, "Utilisateur créé avec succes");
        }
コード例 #7
0
        public object ForgottenPass([FromBody] User user)
        {
            User response = new User();
            using (MySqlDataReader reader = MySqlHelper.ExecuteReader(Connection, "SELECT Uniq_id From users WHERE Email = '" + user.Email + "'"))
            {
                if (reader.HasRows)
                {
                    reader.Read();

                    string emailAddress = "*****@*****.**", password = "******";

                    var sender = new GmailDotComMail(emailAddress, password);
                    sender.SendMail(user.Email, "Coding MarketPlace - Recuperation de mot de passe", "Pour réinitialiser votre mot de passe, veuillez suivre le lien suivant : http://codingmarketplace.herokuapp.com/app/#/forgot-password/" + reader.GetString(0));

                    return Request.CreateResponse(HttpStatusCode.OK, response);
                }
                else
                {
                    return Request.CreateResponse(HttpStatusCode.BadRequest, "wrong id");
                }
            }
        }
コード例 #8
0
        public object Validate([FromBody] Project project, string id)
        {
            using (MySqlDataReader userChecker = MySqlHelper.ExecuteReader(Connection, "SELECT uniq_id, Email From users WHERE uniq_id = '" + id + "'"))
            {
                if (userChecker.HasRows)
                {
                    userChecker.Read();

                    InscriptionsController insc = new InscriptionsController();
                    if (insc.validateInscription(project, id).Equals("ok"))
                    {
                        using (MySqlDataReader projectChecker = MySqlHelper.ExecuteReader(Connection, "SELECT title From projects WHERE id = '" + project.Id + "'"))
                        {
                            if (projectChecker.HasRows)
                            {
                                projectChecker.Read();
                                string emailAddress = "*****@*****.**", password = "******";

                                var sender = new GmailDotComMail(emailAddress, password);
                                sender.SendMail(userChecker.GetString(1), "Coding MarketPlace - validation", "Vous avez été retenu pour travailler sur le projet : " + projectChecker.GetString(0) + "");

                                Notification notif = new Notification();
                                NotificationsController notifCtrl = new NotificationsController();
                                notif.Text = "Vous avez été retenu pour travailler sur le projet : " + projectChecker.GetString(0);
                                notif.UniqId = project.IdUser;
                                notifCtrl.createNotification(notif);

                                string query = "UPDATE projects SET started = true WHERE id = '" + project.Id + "'";

                                MySqlHelper.ExecuteNonQuery(Connection, query);
                            }
                        }

                        return Request.CreateResponse(HttpStatusCode.OK, "Project has been validated");
                    }
                    else
                    {
                        return Request.CreateResponse(HttpStatusCode.BadRequest, "You are not the project owner");
                    }
                }
            }
            return Request.CreateResponse(HttpStatusCode.InternalServerError, "Error, could not proceed to validation");
        }
コード例 #9
0
        public object FinishProject([FromBody] Project project, string id)
        {
            using (MySqlDataReader userChecker = MySqlHelper.ExecuteReader(Connection, "SELECT id, Email From users WHERE uniq_id = '" + id + "'"))
            {
                if (userChecker.HasRows)
                {
                    userChecker.Read();
                    string query = "UPDATE projects SET over = true WHERE id = '" + project.Id + "'";

                    MySqlHelper.ExecuteNonQuery(Connection, query);

                    using (MySqlDataReader projectChecker = MySqlHelper.ExecuteReader(Connection, "SELECT title From projects WHERE id = '" + project.Id + "'"))
                    {
                        if (projectChecker.HasRows)
                        {
                            projectChecker.Read();
                            string emailAddress = "*****@*****.**", password = "******";

                            var sender = new GmailDotComMail(emailAddress, password);
                            sender.SendMail(userChecker.GetString(1), "Coding MarketPlace - Fin", "Le projet : " + projectChecker.GetString(0) + " est terminé");

                            Notification notif = new Notification();
                            NotificationsController notifCtrl = new NotificationsController();
                            notif.Text = "Le projet : " + projectChecker.GetString(0) + "est terminé";
                            notif.UniqId = id;
                            notifCtrl.createNotification(notif);
                        }
                    }

                    using (MySqlDataReader projectChecker = MySqlHelper.ExecuteReader(Connection, "SELECT id_user, title From projects WHERE id = '" + project.Id + "'"))
                    {
                        if (projectChecker.HasRows)
                        {
                            projectChecker.Read();

                            using (MySqlDataReader finalUserChecker = MySqlHelper.ExecuteReader(Connection, "SELECT Email From users WHERE uniq_id = '" + projectChecker.GetString(0) + "'"))
                            {
                                if (finalUserChecker.HasRows)
                                {
                                    finalUserChecker.Read();

                                    string emailAddress = "*****@*****.**", password = "******";

                                    var sender = new GmailDotComMail(emailAddress, password);
                                    sender.SendMail(finalUserChecker.GetString(0), "Coding MarketPlace - Fin", "Le projet : " + projectChecker.GetString(1) + " est terminé");

                                    Notification notif = new Notification();
                                    NotificationsController notifCtrl = new NotificationsController();
                                    notif.Text = "Le projet : " + projectChecker.GetString(1) + "est terminé";
                                    notif.UniqId = projectChecker.GetString(0);
                                    notifCtrl.createNotification(notif);
                                }
                            }
                        }
                    }

                    return Request.CreateResponse(HttpStatusCode.OK);
                }
            }
            return Request.CreateResponse(HttpStatusCode.InternalServerError, "Error");
        }