public int SendMail() { int processed = 0; using (SPLongOperation operation = new SPLongOperation(this.Parent)) { operation.Begin(); using (new SPMonitoredScope("Mailing SendMail")) { if (SPContext.Current.Web.CurrentUser != null) { try { if (ZimbraConfiguration == null) { return(0); } SmtpClient client = new SmtpClient(ZimbraConfiguration.Server.SendMailHost, zimbraconfiguration.Server.SendMailPort); client.Credentials = new System.Net.NetworkCredential(ZimbraConfiguration.Server.SendMailUserName, ZimbraConfiguration.Server.SendMailPassword); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.DeliveryFormat = SmtpDeliveryFormat.International; //client.SendCompleted += client_SendCompleted; bool more = true; int startRowIndex = SelectOnlineVersions() - 10; int maximumRows = 200; int totalrows = 0; List <Parameter> collection = new List <Parameter>(); ClubCloud_Vereniging_View queryresult = null; while (more) { try { queryresult = Client.GetVerenigingenByQuery("00000000", Guid.NewGuid(), new DataSourceSelectArguments { MaximumRows = maximumRows, StartRowIndex = startRowIndex, RetrieveTotalRowCount = true, SortExpression = "" }, collection); if (queryresult != null && queryresult.ClubCloud_Vereniging != null) { totalrows = queryresult.TotalRowCount; foreach (ClubCloud_Vereniging vereniging in queryresult.ClubCloud_Vereniging) { if (vereniging.Nummer == "09399" || vereniging.Nummer == "61424") { continue; } try { int nummer; if (int.TryParse(vereniging.Nummer, out nummer)) { MailMessage message = BuidMailMessage(vereniging); if (message == null) { continue; } List <string> emails = new List <string>(); if (!string.IsNullOrWhiteSpace(vereniging.EmailKNLTB)) { emails.Add(vereniging.EmailKNLTB); } if (!string.IsNullOrWhiteSpace(vereniging.EmailOverig)) { emails.Add(vereniging.EmailKNLTB); } if (!string.IsNullOrWhiteSpace(vereniging.EmailWebSite)) { emails.Add(vereniging.EmailWebSite); } foreach (string email in emails.Distinct()) { try { //message.To.Add(new MailAddress("*****@*****.**","Rutger Hemrika", Encoding.UTF8)); message.To.Add(new MailAddress(email.ToLower(), vereniging.Naam, Encoding.UTF8)); } catch (Exception ex) { Logger.WriteLog(Logger.Category.Unexpected, ex.Source, ex.Message); } } message.CC.Add(new MailAddress("*****@*****.**", "ClubCloud")); message.From = new MailAddress("*****@*****.**", "ClubCloud"); message.Sender = new MailAddress("*****@*****.**", "ClubCloud"); message.ReplyToList.Add(new MailAddress("*****@*****.**", "ClubCloud")); message.Priority = MailPriority.Normal; message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure | DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.Delay; message.Subject = string.Format("ClubCloud : De slimme keuze voor {0}", vereniging.Naam); try { HostingEnvironment.QueueBackgroundWorkItem(ct => Email.SendAsync(message, client)); //Email.Send(message, client); Thread.Sleep(100); } catch (Exception ex) { Logger.WriteLog(Logger.Category.Unexpected, ex.Source, ex.Message); } finally { //message.Dispose(); } Thread.Sleep(200); } } catch (Exception ex) { Logger.WriteLog(Logger.Category.Unexpected, ex.Source, ex.Message); } } } processed += maximumRows; startRowIndex += maximumRows; if (processed >= totalrows || (queryresult != null && queryresult.ClubCloud_Vereniging.Count == 0)) { more = false; } //more = false; } catch (Exception ex) { Logger.WriteLog(Logger.Category.Unexpected, ex.Source, ex.Message); } //selectArgs = new DataSourceSelectArguments { MaximumRows = maximumRows, StartRowIndex = startRowIndex, RetrieveTotalRowCount = false, SortExpression = "" }; //queryresult = Client.GetVerenigingenByQuery("00000000", Guid.NewGuid(), new DataSourceSelectArguments { MaximumRows = maximumRows, StartRowIndex = startRowIndex, RetrieveTotalRowCount = false, SortExpression = "" }, collection); } } catch (Exception ex) { Logger.WriteLog(Logger.Category.Unexpected, ex.Source, ex.Message); } } } operation.End(this.Parent.Request.Url.AbsolutePath); } return(processed); }
public IQueryable <ClubCloud_Vereniging> SelectVerenigingen(string sortByExpression, int startRowIndex, int maximumRows, out int totalRowCount)//, bool retrieveTotalRowCount = true) { using (new SPMonitoredScope("Verenigingen SelectVerenigingen")) { if (SPContext.Current.Web.CurrentUser != null) { int bondsnummer; ClubCloud_Setting Settings = null; if (int.TryParse(SPContext.Current.Web.CurrentUser.UserId.NameId, out bondsnummer)) { Settings = Client.GetSettingById(bondsnummer); } if (Settings != null && Settings.VerenigingId != null) { List <Parameter> collection = new List <Parameter>(); Settings.ClubCloud_Vereniging = Client.GetVerenigingById(Settings.VerenigingId.Value, false, Settings); if (Settings.ClubCloud_Vereniging != null) { Settings.ClubCloud_Vereniging.ClubCloud_Accommodatie = Client.GetAccommodatieById(Settings.ClubCloud_Vereniging.AccommodatieId.Value, false, Settings); if (Settings.ClubCloud_Vereniging.ClubCloud_Accommodatie != null) { collection.Add(new Parameter { DefaultValue = "{" + Settings.ClubCloud_Vereniging.ClubCloud_Accommodatie.Id.ToString() + "}", Name = "AccommodatieId", DbType = DbType.Guid, Direction = ParameterDirection.Input }); } } foreach (Parameter where in WhereParameters) { if (collection.Any(w => w.Name == where.Name)) { int index = collection.FindIndex(p => p.Name == where.Name); if (index >= 0) { collection[index] = where; } } else { collection.Add(where); } } DataSourceSelectArguments selectArgs = new DataSourceSelectArguments { MaximumRows = maximumRows, StartRowIndex = startRowIndex, RetrieveTotalRowCount = true, SortExpression = sortByExpression }; ClubCloud_Vereniging_View queryresult = Client.GetVerenigingenByQuery(bondsnummer.ToString(), Settings.VerenigingId.Value, new DataSourceSelectArguments { MaximumRows = maximumRows, StartRowIndex = startRowIndex, RetrieveTotalRowCount = true, SortExpression = sortByExpression }, collection); totalRowCount = queryresult.TotalRowCount; if (totalRowCount > 0) { foreach (ClubCloud_Vereniging Vereniging in queryresult.ClubCloud_Vereniging) { Vereniging.ClubCloud_Functionaris = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Functionaris>(Client.GetFunctionarissenForVerenigingById(Vereniging.Id, false, Settings)); Vereniging.ClubCloud_Lidmaatschap = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Lidmaatschap>(Client.GetLidmaatschappenForVerenigingById(Vereniging.Id, false, Settings)); Vereniging.ClubCloud_Bestuursorgaan = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Bestuursorgaan>(Client.GetBestuursorganenForVerenigingById(Vereniging.Id, false, Settings)); Vereniging.ClubCloud_District = Client.GetDistrictForVerenigingById(Vereniging.Id, false, Settings); Vereniging.ClubCloud_Rechtsvorm = Client.GetRechtsvormForVerenigingById(Vereniging.Id, false, Settings); Vereniging.ClubCloud_Accommodatie = Client.GetAccommodatieForVerenigingById(Vereniging.Id, false, Settings); Vereniging.ClubCloud_Address = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Address>(Client.GetAddressenForVerenigingById(Vereniging.Id, false, Settings)); Vereniging.ClubCloud_Regio = Client.GetRegioForVerenigingById(Vereniging.Id, false, Settings); Vereniging.ClubCloud_Afhang = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Afhang>(Client.GetAfhangenForVerenigingById(Vereniging.Id, false, Settings)); Vereniging.ClubCloud_Sponsor = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Sponsor>(Client.GetSponsorenForVerenigingById(Vereniging.Id, false, Settings)); Vereniging.ClubCloud_Baanschema = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Baanschema>(Client.GetBaanschemasForVerenigingById(Vereniging.Id, false, Settings)); Vereniging.ClubCloud_Lidmaatschapsoort = new System.Collections.ObjectModel.ObservableCollection <ClubCloud_Lidmaatschapsoort>(Client.GetLidmaatschapsoortenForVerenigingById(Vereniging.Id, false, Settings)); } } return(queryresult.ClubCloud_Vereniging.AsQueryable <ClubCloud_Vereniging>()); } } } totalRowCount = 0; return(null); }