예제 #1
0
        internal virtual void OnRemoteRemove(RemoteActionEventArgs e)
        {
            RemoteActionEventHandler handler = (RemoteActionEventHandler)Events[EventRemove];

            if (handler != null)
            {
                handler(this, e);
            }
        }
예제 #2
0
        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;
        }