public Server.Application.WorkflowUserInteractionResponseBase HandleUserInteraction_ContactEntity(System.Collections.Specialized.NameValueCollection form)
        {
            Server.Application.WorkflowUserInteractionResponseContactEntity contactResponse = null;

            entityContactModel = new Controls.EntityContactModel(form);                 // CREATE MODEL, UPDATE VALUES FROM STORE (EITHER CLIENT OR SESSION)

            entityContactModel.RaiseEvent(form["EventTarget"], form["EventArguments"]); // RAISE EVENT, VALIDATE


            // IF CANCEL WAS REQUESTED, OR A VALID ENTITY CONTACT CREATED, CREATE RESPONSE TO CONTINUE WORKFLOW

            if ((entityContactModel.Canceled) || (entityContactModel.EntityContact != null))
            {
                // CREATE CUSTOM CONTACT RESPONSE

                contactResponse = new Server.Application.WorkflowUserInteractionResponseContactEntity();

                contactResponse.InteractionType = Server.Application.UserInteractionType.ContactEntity;

                if (entityContactModel.EntityContact != null)
                {
                    contactResponse.EntityContact = (Mercury.Server.Application.EntityContact)entityContactModel.EntityContact.ToServerObject();
                }

                contactResponse.Cancel = entityContactModel.Canceled;
            }

            return(contactResponse);
        }
        protected void EntityContactControl_OnContact(Object sender, Web.Application.Controls.ContactEntityEventArgs eventArgs)
        {
            Server.Application.WorkflowUserInteractionResponseContactEntity contactResponse = new Server.Application.WorkflowUserInteractionResponseContactEntity();

            contactResponse.InteractionType = Mercury.Server.Application.UserInteractionType.ContactEntity;


            if (!eventArgs.Cancel)
            {
                contactResponse.EntityContact = (Mercury.Server.Application.EntityContact)eventArgs.EntityContact.ToServerObject();

                // contactResponse.EntityType = eventArgs.Entity.EntityType;

                // contactResponse.EntityId = eventArgs.EntityContact.EntityId;

                //contactResponse.Entity = (Mercury.Server.Application.Entity)eventArgs.Entity.ToServerObject ();

                //contactResponse.RelatedEntity = (eventArgs.RelatedEntity != null) ? (Mercury.Server.Application.Entity)eventArgs.RelatedEntity.ToServerObject () : null;

                //contactResponse.EntityContactInformationId = eventArgs.EntityContact.EntityContactInformationId;

                //contactResponse.ContactType = eventArgs.EntityContact.ContactType;

                //contactResponse.ContactDate = eventArgs.EntityContact.ContactDate;

                //contactResponse.Direction = eventArgs.EntityContact.Direction;

                //contactResponse.Regarding = eventArgs.EntityContact.Regarding;

                //contactResponse.Remarks = eventArgs.EntityContact.Remarks;

                //contactResponse.Successful = eventArgs.EntityContact.Successful && (!eventArgs.Cancel);

                //contactResponse.ContactOutcome = eventArgs.EntityContact.ContactOutcome;
            }

            contactResponse.Cancel = eventArgs.Cancel;



            WorkflowPage.UserInteractionResponse = contactResponse;


            if (!String.IsNullOrEmpty(ResponseScript))
            {
                Telerik.Web.UI.RadAjaxManager ajaxManager = (Telerik.Web.UI.RadAjaxManager)Page.FindControl("TelerikAjaxManager");

                if (ajaxManager != null)
                {
                    ajaxManager.ResponseScripts.Add(ResponseScript);
                }
            }

            return;
        }