public void SaveCode(HttpApplication httpApplication) { ManagementService managementService = new ManagementService(); Project project = managementService.GetProject(); HttpRequest httpRequest = httpApplication.Request; //string serviceName = httpRequest.QueryString["service"]; //string uid = httpRequest.QueryString["uid"]; string location = httpRequest.QueryString["location"]; string templateFolder = Path.Combine("templates", location); templateFolder = HttpContext.Current.Server.MapPath(templateFolder); string serviceName = httpRequest.QueryString["service"]; TemplateInfo templateInfo = new TemplateInfo(string.Empty, templateFolder); Hashtable context = new Hashtable(); context["Project"] = project; context["Service"] = serviceName; string trace = httpRequest.QueryString["trace"]; TemplateEngineSettings settings = TemplateEngineSettings.Default; if( trace != null ) settings.Trace = true; WebTemplateGeneratorHost host = new WebTemplateGeneratorHost(context); try { // See if we're running in full trust new SecurityPermission(PermissionState.Unrestricted).Demand(); TemplateEngineProxy proxy = new TemplateEngineProxy(); proxy.Execute(templateInfo, host, settings); } catch (SecurityException) { host.Open(); host.AddFile("", "error.txt", "Security error. Code generation is not available in Medium Trust environment."); host.Close(); } byte[] buffer = host.GetBuffer(); httpApplication.Response.Clear(); httpApplication.Response.Buffer = true; httpApplication.Response.ContentType = "application/zip";//"binary/octet-stream"; httpApplication.Response.AppendHeader("Content-Length", buffer.Length.ToString()); httpApplication.Response.AppendHeader("Content-Disposition", "attachment; filename=template.zip"); httpApplication.Response.Cache.SetCacheability(HttpCacheability.NoCache); if( buffer.Length > 0 ) httpApplication.Response.OutputStream.Write( buffer, 0, buffer.Length ); try { httpApplication.Response.Flush(); } catch (SecurityException) { } }
public void UploadProject(HttpApplication httpApplication) { ManagementService managementService = new ManagementService(); managementService.UploadProject(httpApplication); }
/// <summary> /// Returns a list of remote services that are available. /// /// {services: /// { /// "assembly1": /// { /// namespaces: /// { /// "com": /// { /// "packageName": /// [ /// {name:"Class1",type:"service"}, /// {name:"Class2",type:"service"} /// ] /// } /// , /// "-": /// [ /// {name:"Class1",type:"service"}, /// {name:"Class2",type:"service"} /// ] /// } /// } /// } /// webservices: /// { /// } /// } /// </summary> /// <returns>An array of array ready to be bound to a Tree.</returns> public Project getServices() { ManagementService managementService = new ManagementService(); Project project = managementService.GetProject(); //ASObject result = new ASObject(); //result["services"] = GetLibraryServices(); //result["webservices"] = GetWebServices(); return project; }
public static ASObject GetCodePreview(string location, string serviceName, string methodName) { ManagementService managementService = new ManagementService(); Project project = managementService.GetProject(); string templateFolder = Path.Combine("templates", location); templateFolder = HttpContext.Current.Server.MapPath(templateFolder); TemplateInfo templateInfo = new TemplateInfo(string.Empty, templateFolder); Hashtable context = new Hashtable(); context["Project"] = project; context["Service"] = serviceName; context["Method"] = methodName; string preview; try { // See if we're running in full trust new SecurityPermission(PermissionState.Unrestricted).Demand(); WebTemplateGeneratorHost host = new WebTemplateGeneratorHost(context); TemplateEngineProxy proxy = new TemplateEngineProxy(); preview = proxy.Preview(templateInfo, host, TemplateEngineSettings.Default); } catch (SecurityException) { preview = "Security error. Code generation is not available in Medium Trust environment."; } ASObject asoCodePreview = new ASObject(); asoCodePreview["code"] = preview; return asoCodePreview; }