/// <summary>
        /// 
        /// </summary>
        /// <param name="parameter"></param>
        /// <returns></returns>
        public QueryResults Query(QueryParameter parameter)
        {
            IDynamicPage actualPage = this.actual as IDynamicPage;
            setupArgs = new SetupApplicationContextVariablesEventArgs();
            sender = new RequestHandlerMock();
            dynamicPageArgs = new EventArgs();

            actualPage.SetupContextTempVariables(sender, setupArgs);
            actualPage.OnInit(sender, dynamicPageArgs);
            actualPage.OnLoad(sender, dynamicPageArgs);

            return actualPage.Query(parameter);
        }
        /// <summary>
        /// When User call Create method in IDetailPanelPage,
        /// This method will be invoked, and help user do the pre-required conditions, setup parameters
        /// </summary>
        /// <returns></returns>
        public string Create()
        {
            Validate();
            setupArgs = new SetupApplicationContextVariablesEventArgs();
            detailPanelArgs = new DetailPanelPageEventArgs("", DetailPanelPageRenderModes.New);
            sender = new RequestHandlerMock();
            sender.isPostBack = true;
            IDetailPanelPage actualPanel = actual as IDetailPanelPage;
            actualPanel.SetupContextTempVariables(sender, setupArgs);
            actualPanel.OnInit(sender, detailPanelArgs);
            actualPanel.OnLoad(sender, detailPanelArgs);

            return actualPanel.Create();
        }
        /// <summary>
        /// When User call Save method in IAggregatePanelPage,
        /// This method will be invoked, and help user do the pre-required conditions, setup parameters
        /// </summary>
        /// <param name="commandArgument"></param>
        /// <param name="entityIdEnumerable"></param>
        public void Save(string commandArgument, IEnumerable<string> entityIdEnumerable)
        {
            setupArgs = new SetupApplicationContextVariablesEventArgs();
            aggregatePanelPageArgs = new AggregatePanelPageEventArgs("Save", entityIdEnumerable);
            sender = new RequestHandlerMock();

            IAggregatePanelPage actualPanel = actual as IAggregatePanelPage;

            actualPanel.SetupContextTempVariables(sender, setupArgs);
            actualPanel.OnInit(sender, aggregatePanelPageArgs);
            actualPanel.OnLoad(sender, aggregatePanelPageArgs);

            actualPanel.Save(commandArgument, entityIdEnumerable);
        }
        /// <summary>
        /// When User call Update method in IDetailPanelPage,
        /// This method will be invoked, and help user do the pre-required conditions, setup parameters
        /// </summary>
        /// <param name="entityId"></param>
        public void Update(string entityId)
        {
            Validate();
            setupArgs = new SetupApplicationContextVariablesEventArgs();
            detailPanelArgs = new DetailPanelPageEventArgs(entityId, DetailPanelPageRenderModes.Update);
            sender = new RequestHandlerMock();
            sender.isPostBack = true;
            IDetailPanelPage actualPanel = actual as IDetailPanelPage;

            actualPanel.SetupContextTempVariables(sender, setupArgs);
            actualPanel.OnInit(sender, detailPanelArgs);
            actualPanel.OnLoad(sender, detailPanelArgs);

            actualPanel.Update(entityId);
        }