public void Serializable_ArrayNonNullException()
        {
            var serializer = new XmlSerializer(typeof(List<SiteStatusIssue>), new Type[] { typeof(SiteStatusIssue) });
            Exception exception = null;
            try
            {
                throw new ArgumentException();
            }
            catch (Exception ex)
            {
                exception = ex;
            }

            var issue2 = new SiteStatusIssue()
            {
                FailedTaskDescription = "",
                Implications = "",
                ProbableCause = "",
                Exception = exception
            };

            var result = "";
            using (var writer = new StringWriter())
            {
                serializer.Serialize(writer, new List<SiteStatusIssue>() { issue2 });
                result = serializer.ToString();
            }
        }
        public void Serializable_ArrayNullException()
        {
            var serializer = new XmlSerializer(typeof(List<SiteStatusIssue>), new Type[] { typeof(SiteStatusIssue) });
            var issue = new SiteStatusIssue()
            {
                FailedTaskDescription = "",
                Implications = "",
                ProbableCause = "",
                Exception = null
            };

            var result = "";
            using (var writer = new StringWriter())
            {
                serializer.Serialize(writer, new List<SiteStatusIssue>() { issue });
                result = serializer.ToString();
            }
        }
        public override void Process(TList<EmailMessage> list)
		{
            if (list != null)
            {
                foreach (EmailMessage message in list)
                {
                    message.NumberOfRetry = message.NumberOfRetry + 1;

                    // put the message in queue again if maximum retry not exceeded
                    if (message.NumberOfRetry < message.MaximumRetry)
                    {
                        string xml = "";
                        using (MemoryStream stream = new MemoryStream())
                        {
                            System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(message.GetType());
                            x.Serialize(stream, message);
                            xml = ConvertByteArrayToString(stream.ToArray());

                        }

                        string sql =
                            string.Format(@"DECLARE @dialog_handle UNIQUEIDENTIFIER;    
                    BEGIN DIALOG CONVERSATION @dialog_handle
                        FROM SERVICE [SMEPostingService]
                        TO SERVICE 'SMEService'
                            ON CONTRACT [SMEContract] ;

                        -- Send message on dialog conversation
                        SEND ON CONVERSATION @dialog_handle
                            MESSAGE TYPE [SMEMessageType]
                            ('{0}') ;

                    End Conversation @dialog_handle
                    With cleanup", xml);

                        string connectionString = ConfigurationManager.ConnectionStrings["SmartMassEmailConnectionString2005"].ConnectionString;

                        SqlConnection conn = new SqlConnection(connectionString);
                        SqlCommand cmd = null;
                        try
                        {
                            conn.Open();
                            cmd = conn.CreateCommand();
                            cmd.CommandText = sql;
                            cmd.Transaction = conn.BeginTransaction();
                            cmd.ExecuteNonQuery();
                            cmd.Transaction.Commit();
                            conn.Close();
                        }
                        catch (Exception x)
                        {
                            if (conn != null)
                            {
                                if (cmd != null)
                                {
                                    if (cmd.Transaction != null)
                                        cmd.Transaction.Rollback();
                                }
                                if (conn.State == System.Data.ConnectionState.Open)
                                    conn.Close();
                            }
                            EntLibHelper.ErrorLog(x.ToString(), null);
                        }
                    }
                }
            }
                                
            
			
		}