internal static SerializeableAttachment GetSerializeableAttachment(Attachment att)
        {
            if (att == null)
            {
                return(null);
            }

            SerializeableAttachment saa = new SerializeableAttachment();

            saa.ContentId          = att.ContentId;
            saa.ContentDisposition = SerializeableContentDisposition.GetSerializeableContentDisposition(att.ContentDisposition);

            if (att.ContentStream != null)
            {
                byte[] bytes = new byte[att.ContentStream.Length];
                att.ContentStream.Read(bytes, 0, bytes.Length);

                saa.ContentStream = new MemoryStream(bytes);
            }

            saa.ContentType      = SerializeableContentType.GetSerializeableContentType(att.ContentType);
            saa.Name             = att.Name;
            saa.TransferEncoding = att.TransferEncoding;
            saa.NameEncoding     = att.NameEncoding;
            return(saa);
        }
        internal static SerializeableContentDisposition GetSerializeableContentDisposition(System.Net.Mime.ContentDisposition cd)
        {
            if (cd == null)
            {
                return(null);
            }

            SerializeableContentDisposition scd = new SerializeableContentDisposition();

            scd.CreationDate     = cd.CreationDate;
            scd.DispositionType  = cd.DispositionType;
            scd.FileName         = cd.FileName;
            scd.Inline           = cd.Inline;
            scd.ModificationDate = cd.ModificationDate;
            scd.Parameters       = SerializeableCollection.GetSerializeableCollection(cd.Parameters);
            scd.ReadDate         = cd.ReadDate;
            scd.Size             = cd.Size;

            return(scd);
        }