1.Without using MSMQ
using System.Net.Mail;
using System.Data.SqlClient;
using System.Messaging;
2.With using MSMQ
//This function will send the message to the msmq if the server
//fails to send the email
private void sendNewsletterMSMQ()
{
if (MessageQueue.Exists(@".\private$\Newsletter") == false)
{
MessageQueue.Create(@".\private$\Newsletter");
}
MessageQueue objQue = new MessageQueue(@".\private$\Newsletter");
SqlConnection conn = new SqlConnection("server=localhost;uid=sa;pwd=password;database=Newsletters;");
SqlCommand comm = new SqlCommand("SELECT DISTINCT Email FROM NewsletterEmails", conn);
SqlDataReader dr;
MailAddress from;
MailAddress to;
SmtpClient objClient = new SmtpClient();
objClient.Host = "host";
objClient.Credentials = new System.Net.NetworkCredential("user name", "password");
try
{
conn.Open();
dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
while (dr.Read())
{
from = new MailAddress("admin@admin.com");
to = new MailAddress(dr[0].ToString());
MailMessage objMail = new MailMessage(from, to);
objMail.Subject = "Newsletter";
objMail.IsBodyHtml = true;
objMail.Body = "HTML CODE";
try
{
objClient.Send(objMail);
}
catch
{
objQue.Send(objMail.To[0].Address.ToString());
}
}
dr.Close();
}
catch (SqlException sqlEx)
{
Response.Write("Database error: " + sqlEx.Message);
}
catch (Exception ex)
{
Response.Write("General error: " + ex.Message);
}
}
//This function will start reading the msmq
private void readMSMQ()
{
MessageQueue objQue = new MessageQueue(@".\private$\Newsletter");
string[] types = { "System.String" };
((XmlMessageFormatter)objQue.Formatter).TargetTypeNames = types;
objQue.ReceiveCompleted += new ReceiveCompletedEventHandler(queue_ReceiveCompleted);
objQue.BeginReceive();
}
//Event handler for the ReceiveCompleted event
private void queue_ReceiveCompleted(object sender, ReceiveCompletedEventArgs e)
{
try
{
string toAddress = e.Message.Body.ToString();
sendNewsletterMSMQ(toAddress);
AyuviQue.BeginReceive();
}
catch
{
}
}
//This function will send the email to the specified address
private void sendNewsletterMSMQ(string toAddress)
{
if (MessageQueue.Exists(@".\private$\Newsletter") == false)
{
MessageQueue.Create(@".\private$\Newsletter");
}
MessageQueue objQue = new MessageQueue(@".\private$\Newsletter");
MailAddress from;
MailAddress to;
SmtpClient objClient = new SmtpClient();
objClient.Host = "host";
objClient.Credentials = new System.Net.NetworkCredential("user name", "password");
try
{
from = new MailAddress("admin@admin.com");
to = new MailAddress(toAddress);
MailMessage objMail = new MailMessage(from, to);
objMail.Subject = "Newsletter";
objMail.IsBodyHtml = true;
objMail.Body = "HTML CODE";
try
{
objClient.Send(objMail);
}
catch
{
objQue.Send(objMail.To[0].Address.ToString());
}
}
catch (Exception ex)
{
Response.Write("General error: " + ex.Message);
}
}
Tuesday, November 13, 2007
Sending Newsletters using C# 2.0
Posted by
Pasan
at
12:18 PM
39
comments
Labels: .NET Code
Tuesday, October 10, 2006
Create Graphs
UDraw(Graph) is a free software which we can use to generate graphs.After creating a graph it creates a file call fileName.udg with a specific format.
Example Image :
Download Software
We can use a XML file to create above graph through C# code.
Sample XML File :

Code to display the graph :
DataSet dsUDG = new DataSet();
dsUDG.ReadXml("Services.xml");
DataRow []servOprs = dsUDG.Tables["ServiceOperation"].Select("ServiceName = 'Flooring'");
StreamWriter sw = new StreamWriter("servOprs.udg");
sw.WriteLine("[l");
for(int i = 0;i < servOprs.Length;i++)
{
if(servOprs[i]["ParentServOprsID"].ToString() != "ROOT")
{
DataRow []temp = dsUDG.Tables["ServiceOperation"].Select("ServOprsID = '"+servOprs[i]["ParentServOprsID"].ToString()+"'");
if(i != 0)
{
sw.WriteLine("l("+va+"_"+servOprs[i]["OperationName"].ToString()+va+",n("+va+"node"+va+",[a("+va+"_GO"+va+","+va+"ellipse"+va+"),a("+va+"OBJECT"+va+","+va+servOprs[i]["OperationName"].ToString()+va+"),a("+va+"COLOR"+va+","+va+"lightred"+va+"),a("+va+"INFO"+va+","+va+va+")],");
}
else
{
sw.WriteLine("("+va+"_"+servOprs[i]["OperationName"].ToString()+va+",n("+va+"node"+va+",[a("+va+"_GO"+va+","+va+"ellipse"+va+"),a("+va+"OBJECT"+va+","+va+servOprs[i]["OperationName"].ToString()+va+"),a("+va+"COLOR"+va+","+va+"lightred"+va+"),a("+va+"INFO"+va+","+va+va+")],");
}
if(temp.Length != 0)
{
sw.WriteLine("[l("+va+"@"+servOprs[i]["OperationName"].ToString()+va+",e("+va+"edge"+va+",[a("+va+"EDGEPATTERN"+va+","+va+"single;solid;1;0"+va+"),a("+va+"OBJECT"+va+","+va+va+"),a("+va+"FONTSTYLE"+va+","+va+"bold"+va+"),a("+va+"INFO"+va+","+va+va+")],");
}
}
else
{
sw.WriteLine("l("+va+"_"+servOprs[i]["OperationName"].ToString()+va+",n("+va+"node"+va+",[a("+va+"_GO"+va+","+va+"ellipse"+va+"),a("+va+"OBJECT"+va+","+va+servOprs[i]["OperationName"].ToString()+va+"),a("+va+"COLOR"+va+","+va+"lightblue"+va+"),a("+va+"INFO"+va+","+va+va+")],[]");
}
}
for(int k = 0;k < servOprs.Length-1;k++)
{
sw.WriteLine("))))]");
}
sw.WriteLine("))]");
sw.Close();
Posted by
Pasan
at
11:34 AM
0
comments
Labels: .NET Code
Thursday, October 05, 2006
Generate Gantt Project 2.0.2 File
Gantt Project 2.0.2 is a open source project scheduling application written in Java and featuring gantt chart, resource management, calendaring, import/export (MS Project, HTML, PDF, spreadsheets).
Download Gantt Project
After creating a plan when you save it it saves the file as an XML file.There is a specific format to that file and we can generate that file through code using C#.NET.
Below is a sample code for the file generation.
XmlTextWriter tw = new XmlTextWriter("Plan.xml", System.Text.Encoding.UTF8);
tw.Formatting = Formatting.Indented;
tw.WriteStartDocument();
tw.WriteStartElement("project");
tw.WriteAttributeString("name","");
tw.WriteAttributeString("company","");
tw.WriteAttributeString("webLink","");
tw.WriteAttributeString("view-date","year-month-day");
tw.WriteAttributeString("view-index","0");
tw.WriteAttributeString("gantt-divider-location","316");
tw.WriteAttributeString("resource-divider-location","301");
tw.WriteAttributeString("version","2.0");
tw.WriteStartElement("view");
tw.WriteAttributeString("zooming-state","default:2");
tw.WriteEndElement();
tw.WriteStartElement("calendars");
tw.WriteStartElement("day-types");
tw.WriteStartElement("day-type");
tw.WriteAttributeString("id","0");
tw.WriteEndElement();
tw.WriteStartElement("day-type");
tw.WriteAttributeString("id","1");
tw.WriteEndElement();
tw.WriteStartElement("calendar");
tw.WriteAttributeString("id","1");
tw.WriteAttributeString("name","default");
tw.WriteStartElement("default-week");
tw.WriteAttributeString("sun","1");
tw.WriteAttributeString("mon","0");
tw.WriteAttributeString("tue","0");
tw.WriteAttributeString("wed","0");
tw.WriteAttributeString("thu","0");
tw.WriteAttributeString("fri","0");
tw.WriteAttributeString("sat","1");
tw.WriteEndElement();
tw.WriteStartElement("overriden-day-types");
tw.WriteEndElement();
tw.WriteStartElement("days");
tw.WriteEndElement();
tw.WriteEndElement(); // end calendar
tw.WriteEndElement(); // end day types
tw.WriteEndElement(); // end calendars
tw.WriteStartElement("description");
tw.WriteEndElement();
tw.WriteStartElement("tasks");
tw.WriteAttributeString("color","#8cb6ce");
tw.WriteStartElement("taskproperties");
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd0");
tw.WriteAttributeString("name","type");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","icon");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd1");
tw.WriteAttributeString("name","priority");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","icon");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd2");
tw.WriteAttributeString("name","info");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","icon");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd3");
tw.WriteAttributeString("name","name");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","text");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd4");
tw.WriteAttributeString("name","begindate");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","date");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd5");
tw.WriteAttributeString("name","enddate");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","date");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd6");
tw.WriteAttributeString("name","duration");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","int");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd7");
tw.WriteAttributeString("name","completion");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","int");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd8");
tw.WriteAttributeString("name","coordinator");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","text");
tw.WriteEndElement();
tw.WriteStartElement("taskproperty");
tw.WriteAttributeString("id","tpd9");
tw.WriteAttributeString("name","predecessors");
tw.WriteAttributeString("type","default");
tw.WriteAttributeString("valuetype","text");
tw.WriteEndElement();
tw.WriteEndElement();
tw.WriteStartElement("task");
tw.WriteAttributeString("id","13");
tw.WriteAttributeString("name","creating xml file");
tw.WriteAttributeString("shape","0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0");
tw.WriteAttributeString("meeting","false");
tw.WriteAttributeString("start","2005-11-04");
tw.WriteAttributeString("duration","1");
tw.WriteAttributeString("complete","50");
tw.WriteAttributeString("fixed-start","false");
tw.WriteAttributeString("priority","1");
tw.WriteAttributeString("expand","true");
tw.WriteStartElement("notes");
tw.WriteEndElement();
tw.WriteStartElement("depend");
tw.WriteAttributeString("id","");
tw.WriteAttributeString("type","2");
tw.WriteEndElement();
tw.WriteEndElement(); // end task
tw.WriteEndElement(); // end tasks
tw.WriteStartElement("resources");
tw.WriteStartElement("resource");
tw.WriteAttributeString("id","1");
tw.WriteAttributeString("name","Pasan");
tw.WriteAttributeString("function","SoftwareDevelopment");
tw.WriteAttributeString("contacts","pasan_yasantha@yahoo.co.uk");
tw.WriteAttributeString("phone","0722 133 702");
tw.WriteEndElement();
tw.WriteEndElement(); //end resources
tw.WriteStartElement("allocations");
tw.WriteStartElement("allocation");
tw.WriteAttributeString("task-id","13");
tw.WriteAttributeString("resource-id","1");
tw.WriteAttributeString("load","100.0");
tw.WriteEndElement();
tw.WriteEndElement(); //end allocations
tw.WriteStartElement("vacations");
tw.WriteEndElement();
tw.WriteStartElement("taskdisplaycolumns");
tw.WriteStartElement("displaycolumn");
tw.WriteAttributeString("property-id","tpd3");
tw.WriteAttributeString("order","0");
tw.WriteAttributeString("width","75");
tw.WriteEndElement();
tw.WriteStartElement("displaycolumn");
tw.WriteAttributeString("property-id","tpd4");
tw.WriteAttributeString("order","1");
tw.WriteAttributeString("width","75");
tw.WriteEndElement();
tw.WriteStartElement("displaycolumn");
tw.WriteAttributeString("property-id","tpd5");
tw.WriteAttributeString("order","2");
tw.WriteAttributeString("width","75");
tw.WriteEndElement();
tw.WriteEndElement();
tw.WriteStartElement("previous");
tw.WriteEndElement();
tw.WriteStartElement("roles");
tw.WriteAttributeString("roleset-name","Default");
tw.WriteEndElement();
tw.WriteStartElement("roles");
tw.WriteAttributeString("roleset-name","SoftwareDevelopment");
tw.WriteEndElement();
tw.WriteStartElement("roles");
tw.WriteAttributeString("roleset-name","Operator");
tw.WriteEndElement();
tw.WriteEndElement(); //end project
tw.WriteEndDocument();
tw.Flush();
tw.Close();
Posted by
Pasan
at
10:13 AM
0
comments
Labels: .NET Code

.jpg)

