Recycle Bin.. Continued

The second class for the second event handler:

/*=====================================================================

File: EventSinkData.cs

Summary: Class to collect data for the event sink.

---------------------------------------------------------------------

 

using System;

using System.Xml;

using System.Xml.Serialization;

using System.Text;

using System.IO;

using System.Configuration;

using System.Collections.Specialized;

using System.Collections;

namespace RecycleBin.SharePoint.Configuration

{

      [XmlRoot("Data",Namespace="")]

      /// <summary>

      /// Summary description for EventSinkData.

      /// </summary>

      public class EventSinkData

      {

            private string _strMirrorLib;

            private string _strRecycleBinLib;

            private string _strMainLib;

            private string _strUserName;

            private string _strDomain;

            private string _strPassword;

            private string _strFileType;

            private string _strFileSize;

            # region Properties for Configuration

            public string MirrorLib{get{return _strMirrorLib;}set{_strMirrorLib= value;}}

            public string RecycleBinLib{get{return _strRecycleBinLib;}set{_strRecycleBinLib= value;}}

            public string MainLib{get{return _strMainLib;}set{_strMainLib= value;}}

            public string Domain {get{return _strDomain;}set{_strDomain= value;}}

            public string UserName{get{return _strUserName;}set{_strUserName= value;}}

            public string Password{get{return _strPassword;}set{_strPassword= value;}}

            public string FileType{get{ return _strFileType;}set{_strFileType= value;}}

            public string FileSize{get{ return _strFileSize;}set{_strFileSize= value;}}

            # endregion

                       

            /// <summary>

            /// Static Methods creates an instance of the object from XML string

            /// </summary>

            /// <param name="text">XML String passed from SinkData property of the SPEventList object</param>

            /// <returns></returns>

            public static EventSinkData GetInstance(string text)

            {

                  XmlSerializer objXmlSer = new XmlSerializer(typeof(EventSinkData));

                  using(MemoryStream objMemStr = new MemoryStream())

      {

                        try

                        {

                              if (text!= "")

                              {

                                    //return array of bytes

                                    byte[] input = Encoding.UTF8.GetBytes(text);

                                    //load array of bytes to memory stream

                                    objMemStr.Write(input,0,(int)input.Length);

                                    objMemStr.Seek(0,0);

                                    EventSinkData e = null;

                                    e = (EventSinkData)objXmlSer.Deserialize(objMemStr);

                                    return e;}

                              else

                              {

                                    XmlNodeList nl;

                                    string xmlPath ="C:\\sharepoint\\Trashconfiguration.xml";

                                    XmlDocument objDoc = new XmlDocument();

                                    objDoc.Load(xmlPath);

                                    nl = objDoc.GetElementsByTagName("Data");

                                   

                                    EventSinkData e = new EventSinkData();

                                    e.MirrorLib = nl.Item(0).ChildNodes.Item(0).InnerText;

                                    e.RecycleBinLib = nl.Item(0).ChildNodes.Item(1).InnerText;

                                    e.MainLib = nl.Item(0).ChildNodes.Item(2).InnerText;

                                    e.UserName = nl.Item(0).ChildNodes.Item(4).InnerText;

                                    e.Password= nl.Item(0).ChildNodes.Item(5).InnerText;

                                    e.FileSize = nl.Item(0).ChildNodes.Item(7).InnerText;

                                    e.FileType = nl.Item(0).ChildNodes.Item(6).InnerText;

                                    e.Domain = nl.Item(0).ChildNodes.Item(3).InnerText;

                                    return e;

                              }

                        }

                        catch (Exception ex)

                        {

                              throw ex;

                        }

                       

                  }

            }

            /// <summary>

            /// Save Object structure into XML

            /// </summary>

            /// <returns>String in XML format</returns>

            public string Persist()

            {

                  XmlSerializer ser = new XmlSerializer(typeof(EventSinkData));

                 

                  using(MemoryStream mstr =new MemoryStream())

                  {

                        try

                        {

                              ser.Serialize(mstr, this);

                              return Encoding.UTF8.GetString(mstr.ToArray());

                        }

                        catch (Exception ex)

                        {

                              throw ex;

                        }

                  }

            }

      }

}

 

With all this code its kind of getting confusing. So the next post will show you how the project structure is going to look like.