using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using System.IO;
namespace MT.Platform.Common
{
///
/// Supporting functionality around notifications
///
public static class NotificationHelper
{
///
/// Serialize notification object into a string.
///
///
///
public static string Serialize(Notification notification)
{
Validate.IsNotNull(notification, "must pass a notification");
XmlSerializer serializer = new XmlSerializer(typeof(Notification));
using (MemoryStream ms = new MemoryStream())
{
serializer.Serialize(ms, notification);
// convert to string
return Encoding.UTF8.GetString(ms.ToArray());
}
}
///
/// Deserialize string into a notification object.
///
///
///
public static Notification Deserialize(string data)
{
Validate.IsTrue(!string.IsNullOrEmpty(data), "must pass a notification data");
// use .NET 3.0 (WCF) serializer
XmlSerializer serializer = new XmlSerializer(typeof(Notification));
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(data)))
{
Notification notification = (Notification)serializer.Deserialize(ms);
return notification;
}
}
}
}