private string GetExtension(WebResourceWebResourceType webresourcetype) { switch (webresourcetype) { case WebResourceWebResourceType.WebpageHtml: return(".html"); case WebResourceWebResourceType.ScriptJScript: return(".js"); case WebResourceWebResourceType.PngFormat: return(".png"); case WebResourceWebResourceType.GifFormat: return(".gif"); case WebResourceWebResourceType.JpgFormat: return(".jpg"); case WebResourceWebResourceType.StyleSheetCss: return(".css"); case WebResourceWebResourceType.IcoFormat: return(".ico"); case WebResourceWebResourceType.DataXml: return(".xml"); case WebResourceWebResourceType.StyleSheetXsl: return(".xsl"); case WebResourceWebResourceType.SilverlightXap: return(".xap"); case WebResourceWebResourceType.StringResx: return(".resx"); case WebResourceWebResourceType.SvgFormat: return(".svg"); } return(".html"); }
private void DeployWebresources(OrganizationServiceContext ctx, ConfigFile config, WebresourceDeployConfig webresources) { var webresourceRoot = Path.Combine(config.filePath, "" + webresources.root); this.Solution = webresources.solution; foreach (var file in webresources.files) { if (file.uniquename == null) { // Make the name uniquename the same as the file name file.uniquename = file.file.Replace("\\", "/"); } if (file.displayname == null) { // make the same as the unique name file.displayname = file.uniquename; } WebResource webresource = ctx.GetWebResource(file.uniquename); if (webresource == null) { webresource = new WebResource(); } var fullPath = Path.Combine(webresourceRoot, file.file); var filecontent = Convert.ToBase64String(File.ReadAllBytes(fullPath)); // Update webresource.Name = file.uniquename; webresource.DisplayName = file.displayname; webresource.Description = file.description; webresource.Content = filecontent; var webResourceFileInfo = new FileInfo(fullPath); WebResourceWebResourceType filetype = WebResourceWebResourceType.Script_JScript; switch (webResourceFileInfo.Extension.ToLower()) { case "html": case "htm": filetype = WebResourceWebResourceType.Webpage_HTML; break; case "js": filetype = WebResourceWebResourceType.Script_JScript; break; case "png": filetype = WebResourceWebResourceType.PNGformat; break; case "gif": filetype = WebResourceWebResourceType.GIFformat; break; case "jpg": case "jpeg": filetype = WebResourceWebResourceType.JPGformat; break; case "css": filetype = WebResourceWebResourceType.StyleSheet_CSS; break; case "ico": filetype = WebResourceWebResourceType.ICOformat; break; case "xml": filetype = WebResourceWebResourceType.Data_XML; break; case "xsl": case "xslt": filetype = WebResourceWebResourceType.StyleSheet_XSL; break; case "xap": filetype = WebResourceWebResourceType.Silverlight_XAP; break; } webresource.WebResourceType = new OptionSetValue((int)filetype); if (webresource.Id == Guid.Empty) { _trace.WriteLine("Creating Webresource '{0}' -> '{1}'", file.file, file.uniquename); // create webresource.Id = _service.Create(webresource); } else { _trace.WriteLine("Updating Webresource '{0}' -> '{1}'", file.file, file.uniquename); // Update _service.Update(webresource); } ; // Add to solution if (Solution != null) { AddWebresourceToSolution(Solution, webresource); } // Publish var publish = new PublishXmlRequest() { ParameterXml = "<importexportxml>" + " <webresources>" + " <webresource>" + webresource.Id.ToString() + "</webresource>" + " </webresources>" + "</importexportxml>" }; } _trace.WriteLine("Deployed {0} webresource(s)", webresources.files.Count); }