static void Main(string[] args) { SendPool.SendingStarted += SendPool_SendingStarted; SendPool.SendingCompleted += SendPool_SendingCompleted; SendPool.SendingCancelled += SendPool_SendingCancelled; for (int i = 0; i < 10; i++) { SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); builder.DataSource = "(local)"; builder.IntegratedSecurity = true; builder.InitialCatalog = "IrisData"; SqlServerDataSource dataSource = new SqlServerDataSource(builder.ConnectionString, "mailing"); dataSource.Limit = 5000; DataSchema schema = new DataSchema(); var names = new DataSchemaIterator("Names", 2); names.AddChild(new DataSchemaIteratorValue("Name", new List<DataSchemaIteratorValueMappedColumn>() { new DataSchemaIteratorValueMappedColumn(new Dictionary<DataSchemaIterator, int>() { {names, 0} }, "Name"), new DataSchemaIteratorValueMappedColumn(new Dictionary<DataSchemaIterator, int>() { {names, 1} }, "FirstName") })); schema.Root.AddChild(names); schema.Root.AddChild(new DataSchemaValue("id", "id")); TemplateMessage message = new TemplateMessage { Subject = "Salut @Model.id", Email = "*****@*****.**", MailFrom = "*****@*****.**", NameFrom = "Thib", HtmlBody = "Hey ça va ?" }; MaillingCommunication com = new MaillingCommunication(dataSource, message, schema); com.CompileTemplate(); SendPool.SendCommunication(com); } while (true) { long s = 0; foreach (MaillingCommunication c in SendPool.ActiveCommunications) s += c.CurrentSpeed; Console.WriteLine("Speed : " + s); Thread.Sleep(1000); } Console.ReadLine(); }
private static void ParseNodeInternal(XElement element, DataSchemaKey key) { foreach (XElement el in element.Elements()) { string name = el.Attribute("name").Value; switch (el.Name.LocalName) { case "value" : string mappedColumn = el.Value; DataSchemaValue v = new DataSchemaValue(name, mappedColumn); ParseNodeInternal(el, v); key.AddChild(v); break; case "container" : DataSchemaKey c = new DataSchemaKey(DataSchemaKeyType.Container, name); ParseNodeInternal(el, c); key.AddChild(c); break; case "iterator" : int max = Int32.Parse(el.Attribute("maxItemCount").Value); DataSchemaIterator i = new DataSchemaIterator(name, max); ParseNodeInternal(el, i); key.AddChild(i); break; case "iteratorValue" : Dictionary<DataSchemaIterator,int> iterators = new Dictionary<DataSchemaIterator,int>(); FindIterators(key, iterators); iterators.Reverse(); List<DataSchemaIteratorValueMappedColumn> columns = new List<DataSchemaIteratorValueMappedColumn>(); string tmpl = el.Value; GenCoulumns(tmpl, iterators, columns, 0); DataSchemaIteratorValue iv = new DataSchemaIteratorValue(name, columns); ParseNodeInternal(el, iv); key.AddChild(iv); break; } } }