/// <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()); }
/// <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()); }
/// <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); } }