Esempio n. 1
0
        private void SendSubscribtionNotification(IAbonnementProjet newAbo)
        {
            int delayNotif = CovCakeConfiguration.SubscriptionNotificationDelay;

            //TODO: a tester dans un contexte de charge importante (meme si yaura pas 10000 subscribtion en meme temps)
            //delayNotif = 10;
            DelayedTaskExecuter.ExecuteLaterAsync(delayNotif, (obj, timedOut) =>
            {
                IAbonnementProjet abo = obj as IAbonnementProjet;
                //Apres le delay on verifie si le mec est toujour bien inscrit et on envoi le mail
                lock (obj)
                {
                    if (abo.UserProfile.ParticipeA(abo.ProjetId))
                    {
                        try
                        {
                            CovCakeMailer.SendProjectSubscribtionNotify(abo);
                            CovCakeMailer.SendFriendsProjectSubscribNotify(abo);
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }, newAbo);
        }
Esempio n. 2
0
        public ActionResult ChangeEmail(string newmail)
        {
            string       REZMESSAGE = "";
            IUserProfile tMailUser  = Data.UserDataAccess.GetUserByMail(newmail.ToLower());

            if (String.IsNullOrEmpty(newmail))
            {
                REZMESSAGE = "Vous devez entrer une adresse email.";
                return(Json(new { code = "1", msg = REZMESSAGE }));
            }
            else if (!CovCakeMailer.IsValidEmail(newmail))
            {
                REZMESSAGE = "Cette adresse email est invalide.";
                return(Json(new { code = "2", msg = REZMESSAGE }));
            }


            IUserProfile currUser = this.CurrentUser;

            currUser.ActivationKey = Guid.NewGuid();

            Data.UserDataAccess.Save();

            var newMail = newmail.ToLower();

            this.CovCakeMailer.SendChangeEmailMail(currUser, newMail);
            this.ValidStateMessages.Add("Vous avez souhaité changer votre adresse email, un email de confirmation vous a été envoyé.");

            return(RedirectToRoute(CovCake.Routes.MONCOMPTE));
        }
Esempio n. 3
0
        public ActionResult Forgot(string email)
        {
            ForgotPassViewData forgot = new ForgotPassViewData();

            email = email.Trim();
            if (!CovCakeMailer.IsValidEmail(email))
            {
                ModelState.AddModelError("email", "L'adresse email est incorecte.");
            }

            IUserProfile userProfile = Data.UserDataAccess.GetUser(email);

            if (userProfile == null)
            {
                ModelState.AddModelError("email", "Aucun utilisateur avec cette adresse n'a été trouvé.");
            }

            if (ModelState.IsValid)
            {
                string infoMsgTitle = "Mot de passe réinitialisé";
                string infoMsg      = string.Format("Un email a été envoyé à {0} avec un nouveau mot de passe.", email);
                //si pas encore activé envoi de activation
                //TODO: ajouter le user dans la table UserProfile des linscription et pas ke dans le membership

                /*
                 * if (!userProfile.GetMembershipUser().IsApproved && userProfile.ActivationKey.HasValue)
                 * {
                 *   this.CovCakeMailer.SendSignupMail(userProfile, userProfile.Email, "** votre mot de passe ***");
                 *   infoMsg = string.Format("L'email d'activation de compte viens d'être réenvoyé à {0}.", email);
                 * }
                 */
                string newPass = CovCakeServices.GenerateAlphaNumPass(int.Parse(CovCakeConfiguration.DefaultPasswordLenght));
                newPass = newPass.ToLower();
                MembershipUser membershipUser = userProfile.GetMembershipUser();
                membershipUser.ChangePassword(membershipUser.ResetPassword(), newPass);
                //   IUserProfile userProfile = Data.UserDataAccess.GetUser(email);
                this.CovCakeMailer.SendForgotPasswordMail(userProfile, email, newPass);
                forgot.Email   = email;
                forgot.Succeed = true;

                return(Info(infoMsgTitle, infoMsg)); //should redirect

                //return View(forgot);
            }
            else
            {
                // forgot.Succeed = false;
                return(View(forgot));
            }
        }
Esempio n. 4
0
        public ActionResult Contact(string nom, string email, string message, string sujet)
        {
            if (email.IsNullOrEmpty())
            {
                this.ModelState.AddModelError("email", "Entrer une adresse email.");
            }
            else
            if (!CovCakeMailer.IsValidEmail(email))
            {
                this.ModelState.AddModelError("email", "L'adresse email est invalide!");
            }
            if (message.IsNullOrEmpty())
            {
                this.ModelState.AddModelError("message", "Merci d'entrer un message.");
            }
            if (sujet.IsNullOrEmpty())
            {
                this.ModelState.AddModelError("sujet", "Merci de préciser un sujet.");
            }
            if (nom.IsNullOrEmpty())
            {
                this.ModelState.AddModelError("nom", "Merci de spécifier un nom");
            }


            if (this.ModelState.IsValid)
            {
                try
                {
                    CovCakeMailer.SendContactMail(nom, email, sujet, message, this.Request.UserHostAddress);
                }
                catch (Exception ex)
                {
                    this.ModelState.AddModelError("_FORM", "Votre message n'a pu être envoyé. Vous pouvez toutefois nous contacter à l'adresse suivante : [email protected]");
                }
            }
            if (this.ModelState.IsValid)
            {
                this.ValidStateMessages.Add("Votre message a bien été envoyé merci !");
                this.ModelState.Clear();
            }
            return(View());
        }
Esempio n. 5
0
        private void SendProjetResignNotification(IAbonnementProjet abo)
        {
            CovCakeMailer.SendProjectResignNotify(abo);

            /*
             * int delayNotif = 30;
             * DelayedTaskExecuter.ExecuteLaterAsync(delayNotif, (obj, timedOut) =>
             * {
             *  //Apres le delay on verifie si le mec est toujour bien inscrit et on envoi le mail
             *  lock (obj)
             *  {
             *          try
             *          {
             *              CovCakeMailer.SendProjectResignNotify(abo);
             *          }
             *          catch (Exception)
             *          {
             *          }
             *  }
             *
             * }, abo);
             * */
        }
Esempio n. 6
0
 protected BaseController() : this(Membership.Provider)
 {
     this.CovCakeMailer      = new CovCakeMailer(this);
     this.ValidStateMessages = new List <string>();
 }
Esempio n. 7
0
        public ActionResult Inscription(UserInfosViewData registerData)
        {
            //string nom = form["nom"].ToTitleCase();
            //string prenom = form["prenom"].ToTitleCase();
            //string age_jour = form["age_jour"];
            //string age_mois = form["age_mois"];
            //string age_annee = form["sexe"];
            //string sexe = form["age_annee"];
            //string numdept = form["numdept"];
            //string ville = form["ville"];
            //string password = form["password"];
            //string confirmPassword = form["confirmPassword"];
            //string email = form["email"].ToLower();

            string nom             = registerData.nom.ToTitleCase().Trim();
            string prenom          = registerData.prenom.ToTitleCase().Trim();
            string age_jour        = registerData.age_jour;
            string age_mois        = registerData.age_mois;
            string age_annee       = registerData.age_annee;
            string sexe            = registerData.sexe;
            string numdept         = registerData.numdept;
            string ville           = registerData.ville.ToTitleCase().Trim();
            string password        = registerData.password;
            string confirmPassword = registerData.confirmPassword;
            string email           = registerData.email.ToLower().Trim();

            ViewData["PasswordLength"] = this.MembershipUserManager.MinRequiredPasswordLength;

            // Basic parameter validation
            if (String.IsNullOrEmpty(email))
            {
                ModelState.AddModelError("email", "Vous devez entrer une adresse email.");
            }
            else if (!CovCakeMailer.IsValidEmail(email))
            {
                ModelState.AddModelError("email", "Cette adresse email est invalide.");
            }
            if (password == null || password.Length < this.MembershipUserManager.MinRequiredPasswordLength)
            {
                ModelState.AddModelError("password",
                                         String.Format(CultureInfo.CurrentCulture,
                                                       "Le mot de passe doit être composé d'au moins {0} caracteres.",
                                                       this.MembershipUserManager.MinRequiredPasswordLength));
            }
            if (string.IsNullOrEmpty(nom))
            {
                ModelState.AddModelError("nom", "Vous devez entrer un nom, seule son initiale sera affichée (ex: Julien C).");
            }
            if (string.IsNullOrEmpty(prenom))
            {
                ModelState.AddModelError("prenom", "Vous devez entrer un prénom.");
            }

            if (!String.Equals(password, confirmPassword, StringComparison.Ordinal))
            {
                ModelState.AddModelError("confirmPassword", "Le mot de passe et sa confirmation ne correspondent pas.");
            }

            if (ViewData.ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus;

                MembershipUser newUser = this.MembershipUserManager.CreateUser(email, password, email, null, null, false, null, out createStatus);


                if (newUser != null)
                {
                    using (TransactionScope trans = new TransactionScope())
                    {
                        Guid         userID    = (Guid)newUser.ProviderUserKey;
                        int          ageAnnee  = 1900 + int.Parse(age_annee);
                        DateTime     dateNaiss = new DateTime(ageAnnee, int.Parse(age_mois), int.Parse(age_jour));
                        IUserProfile user      = Data.UserDataAccess.CreateUser(userID, nom, prenom, dateNaiss, bool.Parse(sexe));
                        user.NumDepartement = numdept;
                        user.Ville          = ville;
                        user.ActivationKey  = Guid.NewGuid();
                        //Insert in table
                        Data.UserDataAccess.InsertUser(user);
                        ViewData["email"] = email;

                        if (CovCakeConfiguration.ConfirmRegistration)
                        {
                            //envoi de mail de confirm
                            bool rezsend = this.CovCakeMailer.SendSignupMail(user, email, password);

                            if (rezsend == false)
                            {
                                return(Error("Une erreur est survenue lors de votre enregistrement."));
                            }
                            trans.Complete();
                            return(View("PendingRegistration", user));
                        }
                        else
                        {
                            //Envoi mail de bienvenue
                            this.CovCakeMailer.SendSignupConfirmation(user, email, password);
                            //activation directe
                            this.ActivateAccount(user.ActivationKey.Value);

                            trans.Complete();
                            return(HomeIndex());  //RedirectToAction("Index", "Home");
                        }
                    }
                }
                else
                {
                    this.SetModelError(createStatus);
                }
            }

            // If we got this far, something failed, redisplay form
            // UpdateModel(registerData);
            return(View(registerData));
        }
Esempio n. 8
0
        //Send Email notification !!!

        #region Send email notififcation

        private void SendProjetEditNotification(IProjet proj)
        {
            CovCakeMailer.SendProjetEditNotify(proj);
        }