Esempio n. 1
0
        public override bool Send(EmailMessage message)
		{
            if (message != null)
            {
                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();
                    return true;
                }
                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);
                }
                                
            }
			return false;
		}