Content Studio Web Content Management System
Assembly: CSServer5 (in CSServer5.dll) Version: 5.7.5016.0 (5.7.5016.0)
Top
This interface is new in Content Studio 5.2
[This is preliminary documentation and is subject to change.]
The IEPTXmlParserEvents interface defines events implemented by all classes that inherits the EPTXmlParser base class.
Namespace: ContentStudio.Document.EPT
Assembly: CSServer5 (in CSServer5.dll) Version: 5.7.5016.0 (5.7.5016.0)
Syntax
The IEptXmlParserEvents type exposes the following members.
Events
Name | Description | |
---|---|---|
EptFieldAdded |
Occurs when an EPT field is added.
| |
EptFieldRemoved |
Occurs when an EPT field is removed.
| |
EptFieldValueChanged |
Occurs when an EPT field value has been changed.
| |
EptFieldValueChanging |
Occurs when a field value is about to be changed.
|
Remarks
Examples
This sample shows a small Winform application that uses a EPTXmlEditableParser to load an Ept document and consumes the events connected to such an object. In order to work Content Studio 5.2 must be installed on the computer and running.
- Create a new WinForm project and name it TestCSServer
- Add a Textbox, named textBox1, to the main form (Form1)
- Add a commandbutton to Form1 and name it btnEptEvents
- Set a reference to Content Studio server (CSServer5.dll)
- Set a reference to System.Runtime.Remoting which is a part of .NET 2.0
- Add a new class name ChannelConfigurator to the project. This class is used to configure the remoting infrastructure and its source code is a part of the Content Studio SDK - just search for ChannelConfigurator and you will find source code for this class.
- Paste in the code sample into the code source for Form1
- Set the btnEptEvents_Click method to be the On_Click event handler for the btnEptEvents command button.
- Replace the value of the ConnectionId with a value that is applicable to your system
- Replace the value of the EptDocumentIdToWorkWith member to represent an Ept document on your system.
- You now should be able to run the application and add breakpoints of your choice.
C#
using System; using System.Text; using System.Windows.Forms; using ContentStudio.Document; using ContentStudio.Document.EPT; namespace TestCSServer { public partial class Form1 : Form { private const int ConnectionId = 52; private const string App_Title = "CS Test application"; private const int EptDocumentIdToWorkWith = 1556; public Form1() { InitializeComponent(); //config the remoting try { ChannelConfigurator config = new ChannelConfigurator(ChannelConfigurator.TransportProtocol.IPC); config.Configure(); } catch (Exception ex) { MessageBox.Show(String.Concat(ex.Message, "\r\n", ex.GetType().ToString()), App_Title, MessageBoxButtons.OK, MessageBoxIcon.Error); } } #region Helpers private void DisplayError(Exception theException) { if (theException != null) { string message = String.Concat(theException.Message, Environment.NewLine, theException.GetType().ToString()); MessageBox.Show(message, App_Title, MessageBoxButtons.OK, MessageBoxIcon.Error); } } private static int OpenSession() { ContentStudio.Security.SessionManager session = new ContentStudio.Security.SessionManager(); return session.OpenSession(ConnectionId); } #endregion private void btnEptEvents_Click(object sender, EventArgs e) { Exception theException = null; try { int session = OpenSession(); textBox1.Text = ""; CSDocumentInformation dinf = new CSDocumentInformation(ConnectionId, session, EptDocumentIdToWorkWith, CSDocumentInformation.ContentToLoad.DraftOrApproved); EPTXmlEditableParser ept = new EPTXmlEditableParser(dinf.Content); //add event handlers ept.EptFieldAdded += new EptFieldAddedEventHandler(ept_EptFieldAdded); ept.EptFieldRemoved += new EptFieldRemovedEventHandler(ept_EptFieldRemoved); ept.EptFieldValueChanging += new EptFieldValueChangingEventHandler(ept_EptFieldValueChanging); ept.EptFieldValueChanged += new EptFieldValueChangedEventHandler(ept_EptFieldValueChanged); //Add a field, this triggers the EptFieldAdded event. ept.Add("theNewField", "The value"); //Change the value to an empty string, this triggers the //EptFieldValueChanging event. The event handler will //cancel the event if the value is empty ept["theNewField"] = String.Empty; //Change the value to something that is allowed, this triggers //the EptFieldValueChanging followed by the PropertyChanged event. ept["theNewField"] = "The new value"; //Remove the field, this triggers the EptFieldRemoved event. ept.Remove("theNewField"); } catch (System.Net.Sockets.SocketException socka) { theException = socka; } catch (ContentStudio.CSException cex) { theException = cex; } catch (ArgumentException ax) { theException = ax; } finally { DisplayError(theException); } } void ept_EptFieldValueChanged(object sender, EptXmlParserEventArgs e) { textBox1.Text += String.Format("Event EptFieldValueChanged: FieldName:{0}\r\n", e.FieldName); } void ept_EptFieldValueChanging(object sender, EptXmlParserOnBeforeEventArgs e) { textBox1.Text += String.Format("Event EptFieldValueChanging: FieldName:{0}\r\n\tOldValue:\r\n{1}\r\n\tNewValue:\r\n{2}\r\n", e.FieldName, e.CurrentFieldValue, e.NewFieldValue); if (String.IsNullOrEmpty(e.NewFieldValue)) { e.Cancel = true; textBox1.Text += "\t The value is empty, the update operation has been canceled!\r\n"; } } void ept_EptFieldRemoved(object sender, EptXmlParserEventArgs e) { textBox1.Text += String.Format("Event FieldRemoved: FieldName:{0}\r\n", e.FieldName); } void ept_EptFieldAdded(object sender, EptXmlParserEventArgs e) { textBox1.Text += String.Format("Event FieldAdded: FieldName:{0}\r\n", e.FieldName); } } }
See Also