public void RaiseAjaxPostBackEvent(string eventArgument, ParameterCollection extraParams)
{
bool success = true;
string msg = null;
Response response = new Response();
try
{
if (eventArgument.IsEmpty())
{
throw new ArgumentNullException("eventArgument");
}
XmlNode xmlData = this.SubmitConfig;
string data = null;
if (xmlData != null)
{
XmlNode serviceNode = xmlData.SelectSingleNode("config/serviceParams");
if (serviceNode != null)
{
data = serviceNode.InnerText;
}
}
switch (eventArgument)
{
case "nodeload":
NodeLoadEventArgs e = new NodeLoadEventArgs(extraParams);
PageTreeLoader loader = (PageTreeLoader)this.Loader.Primary;
loader.OnNodeLoad(e);
TreeNodeCollection nodes = e.Nodes;
success = e.Success;
msg = e.ErrorMessage;
response.Data = nodes != null?nodes.ToJson() : null;
break;
case "submit":
SubmitEventArgs se = new SubmitEventArgs(extraParams, JSON.Deserialize <SubmittedNode>(data, new CamelCasePropertyNamesContractResolver()));
this.OnSubmit(se);
break;
case "raRename":
RemoteRenameEventArgs rr = new RemoteRenameEventArgs(data, extraParams);
this.OnRemoteRename(rr);
success = rr.Accept;
msg = rr.RefusalMessage;
break;
case "raRemove":
RemoteActionEventArgs rrm = new RemoteActionEventArgs(data, extraParams);
this.OnRemoteRemove(rrm);
success = rrm.Accept;
msg = rrm.RefusalMessage;
break;
case "raInsert":
case "raAppend":
RemoteAppendEventArgs ra = new RemoteAppendEventArgs(eventArgument == "raInsert", data, extraParams);
this.OnRemoteAppend(ra);
success = ra.Accept;
msg = ra.RefusalMessage;
break;
case "raMove":
RemoteMoveEventArgs rm = new RemoteMoveEventArgs(data, extraParams);
this.OnRemoteMove(rm);
success = rm.Accept;
msg = rm.RefusalMessage;
break;
}
}
catch (Exception ex)
{
success = false;
msg = this.IsDebugging ? ex.ToString() : ex.Message;
if (this.ResourceManager.RethrowAjaxExceptions)
{
throw;
}
}
response.Success = success;
response.Message = msg;
ResourceManager.ServiceResponse = response;
}