Пример #1
0
        /// <summary>
        /// The send email confirmation.
        /// </summary>
        /// <param name="to">
        /// The to.
        /// </param>
        /// <param name="confirmationToken">
        /// The confirmation token.
        /// </param>
        private void SendEmailConfirmation(string to, string confirmationToken)
        {
            var mail = new EMMail();

            var sb = new StringBuilder();
            var sw = new StringWriter(sb);
            using (var writer = new JsonTextWriter(sw))
            {
                writer.WriteStartObject();

                writer.WritePropertyName("Title");
                writer.WriteValue("Vous venez de vous inscrire sur LBCAlerter, MERCI !");
                writer.WritePropertyName("Token");
                writer.WriteValue(confirmationToken);

                writer.WriteEndObject();
            }

            mail.Add("[LBCAlerter] - Confirmation de votre compte", to, "LBC_CONFIRMATION", sb.ToString());
        }
Пример #2
0
 public override void Initialize()
 {
     base.Initialize();
     this.Interval = Convert.ToInt32(ConfigurationManager.AppSettings["Intervalle"]) * 1000;
     _mailer = new EMMail();
 }
Пример #3
0
        /// <summary>
        /// The send email reset.
        /// </summary>
        /// <param name="to">
        /// The to.
        /// </param>
        /// <param name="confirmationToken">
        /// The confirmation token.
        /// </param>
        private void SendEmailReset(string to, string confirmationToken)
        {
            var mail = new EMMail();

            var sb = new StringBuilder();
            var sw = new StringWriter(sb);
            using (var writer = new JsonTextWriter(sw))
            {
                writer.WriteStartObject();

                writer.WritePropertyName("Title");
                writer.WriteValue("Réinitialision de mot de passe");
                writer.WritePropertyName("Token");
                writer.WriteValue(confirmationToken);

                writer.WriteEndObject();
            }

            mail.Add("[LBCAlerter] - réinitialision de mot de passe", to, "LBC_RESET", sb.ToString());
        }
Пример #4
0
        /// <summary>
        /// Send daily mail if not already send
        /// </summary>
        /// <param name="search">Current search</param>
        private void SendMailRecap(SearchSummary search)
        {
            var mail = new EMMail();
            var attempsCount = search.TodayAttempsCount;

            using (var db = new ApplicationDbContext())
            {
                var todayAds = db.Database.SqlQuery<Ad>("exec GetLastAdsFromSearch @search_id", new SqlParameter("search_id", search.Id)).ToList();

                var mailPattern = mail.GetPattern("LBC_RECAP_AD" + (search.IsPremiumUser ? "_FULL" : string.Empty)).CONTENT;
                var ads = new StringBuilder();

                var settings = new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore };

                foreach (
                    var formater in
                        todayAds.Select(
                            todayAd =>
                            new MailFormatter(
                                mailPattern,
                                JsonConvert.SerializeObject(todayAd, Formatting.Indented, settings))))
                {
                    ads.Append(formater.Formatted);
                }

                var sb = new StringBuilder();
                var sw = new StringWriter(sb);
                using (var writer = new JsonTextWriter(sw))
                {
                    writer.WriteStartObject();

                    writer.WritePropertyName("Title");
                    writer.WriteValue("Recap quotidien pour [" + search.KeyWord + "]");
                    writer.WritePropertyName("AdCount");
                    writer.WriteValue(todayAds.Count());
                    writer.WritePropertyName("AttemptCount");
                    writer.WriteValue(attempsCount);
                    writer.WritePropertyName("AttemptCadence");
                    writer.WriteValue(24 * 60 / (attempsCount <= 0 ? 1 : attempsCount));
                    writer.WritePropertyName("Id");
                    writer.WriteValue(search.Id);
                    writer.WritePropertyName("AdId");
                    writer.WriteValue(todayAds.FirstOrDefault() == null ? 0 : todayAds.FirstOrDefault().ID);
                    writer.WritePropertyName("Ads");
                    writer.WriteValue(ads.ToString());

                    writer.WriteEndObject();
                }

                Log.Info("Ajout d'un mail de récap à la file d'envoie [" + search.KeyWord + "]");

                mail.Add(
                    "[LBCAlerter] - Recap quotidien pour [" + search.KeyWord + "]",
                    search.UserName,
                    search.IsPremiumUser ? "LBC_RECAP" : "LBC_RECAP_FULL",
                    sb.ToString());

                db.Database.ExecuteSqlCommand("UPDATE Search set LastRecap = '" + DateTime.Now + "' WHERE Id = " + search.Id);
            }
        }