Beispiel #1
0
        public void load_Wsdl_From_WSDL_File(string wsdlToLoad)
        {
            markGuiAs_Busy();
            O2Thread.mtaThread(
                () => {
                var cacheLocation = getCacheFileName(wsdlToLoad);

                var sdl_Wsdl = new DotNet_SDK_WSDL();
                if (wsdlToLoad.fileExists().isFalse() && wsdlToLoad.isUri() && wsdlToLoad.ends("wsdl").isFalse())
                {
                    wsdlToLoad += "?wsdl";
                }
                var extraWsdlParameres = ExtraWsdlParameres.get_Text();
                "extraWsdlParameres: {0}".debug(extraWsdlParameres ?? "");
                var cSharpFile = sdl_Wsdl.wsdl_CreateAssembly(wsdlToLoad, null, extraWsdlParameres);
                //var cSharpFile = sdl_Wsdl.wsdl_CreateCSharp(wsdlToLoad);
                var compiledAssemblyPath = load_Wsdl_From_CSharpFile(cSharpFile);
                if (Cache_WSDL_Dll)
                {
                    //create a cache copy of the dll
                    "Saving {0} dll cache to {1}".info(compiledAssemblyPath, cacheLocation);
                    Files.Copy(compiledAssemblyPath, cacheLocation);
                }
            });
        }
Beispiel #2
0
        //doesn't work because dll will be in use

        /*public void deleteCachedFile()
         * {
         *      var loadedWsdl = WsdlLocation.get_Text();
         *      if (loadedWsdl.valid())
         *      {
         *              var cachedFile = getCacheFileName(loadedWsdl);
         *              if(cachedFile.fileExists())
         *              {
         *                      "Deleting File: {0}".info(cachedFile);
         *                      Files.deleteFile(cachedFile);
         *              }
         *      }
         * }*/

        public void addScriptingSupport()
        {
            Func <string> getDefaultScript =
                () => {
                var cSharpFile = new DotNet_SDK_WSDL().wsdl_CreateCSharp(this.WsdlLocation.get_Text());

                var parametersCreation   = "".line();
                var invocationParameters = "";

                foreach (var parameter in this.CurrentMethod.parameters())
                {
                    var parameterName         = parameter.Name.lowerCaseFirstLetter();
                    var parameterDefaultValue = "";
                    switch (parameter.ParameterType.FullName)
                    {
                    case "System.String":
                        parameterDefaultValue = "\"\"";
                        break;

                    case "System.Int32":
                        parameterDefaultValue = "0";
                        break;

                    default:
                        parameterDefaultValue = "new {0}()".format(parameter.ParameterType.FullName);
                        break;
                    }
                    parametersCreation   += "var {0} = {1};".line().format(parameterName, parameterDefaultValue);
                    invocationParameters += "{0} ,".format(parameterName);
                }

                parametersCreation   = (parametersCreation.valid()) ? parametersCreation.lineBeforeAndAfter() : "";
                invocationParameters = invocationParameters.removeLastChar();

                var varName    = this.CurrentMethod.DeclaringType.Name.lowerCaseFirstLetter();
                var scriptText = "var {0} = new {1}();".line().format(varName, this.CurrentMethod.DeclaringType.FullName) +
                                 parametersCreation +
                                 "var response = {0}.{1}({2});".line().format(varName, this.CurrentMethod.Name, invocationParameters) +
                                 "return response; // response type is: {0}".line().format(this.CurrentMethod.ReturnType.FullName) +
                                 "".line() +
                                 "//O2File:{0}".line().format(cSharpFile) +
                                 "//O2Ref:System.Web.Services.dll";
                return(scriptText);
            };

            Action openScriptEditorForCurrentMethod =
                () => {
                //O2.Kernel.O2LiveObjects.set("SoapParametersObject", wsdlCreation.SoapParametersObject);
                //O2.Kernel.O2LiveObjects.set("CurrentMethod", wsdlCreation.CurrentMethod);


                var script = "WebService Script Execution".showAsForm(700, 400).add_Script(false);

                script.InvocationParameters.Add("assembly", this.WsdlAssembly);
                script.InvocationParameters.Add("currentType", this.CurrentMethod.DeclaringType.Name);
                script.InvocationParameters.Add("currentMethod", this.CurrentMethod.Name);
                script.Code = "....Creating WebService Method invocation script ...";
                script.Code = getDefaultScript();
            };

            //return wsdlCreation.CurrentMethod.typeName();


            this.Methods_TreeView.insert_Above(20)
            .add_Link("Open Script Editor for selected Method", 0, 0, () => openScriptEditorForCurrentMethod());
        }