internal static void CreateEmptyWebResource(string extension, TreeView tv, Control mainControl) { var callerNode = tv.SelectedNode; var nwrDialog = new NewWebResourceDialog(extension) { StartPosition = FormStartPosition.CenterParent }; if (nwrDialog.ShowDialog(mainControl) == DialogResult.OK) { var tempNode = callerNode; string name = callerNode.Text; while (tempNode.Parent != null) { name = string.Format("{0}/{1}", tempNode.Parent.Text, name); tempNode = tempNode.Parent; } var webResource = new Entity("webresource"); webResource["content"] = ""; webResource["webresourcetype"] = new OptionSetValue(WebResource.GetTypeFromExtension(extension)); webResource["name"] = string.Format("{0}/{1}", name, string.Format("{0}.{1}", nwrDialog.WebResourceName, extension)); var wr = new WebResource(webResource, null); var parts = nwrDialog.WebResourceName.Split('/'); for (int i = 0; i < parts.Length; i++) { if (i != parts.Length - 1) { var folderNode = new TreeNode(parts[i]) { ImageIndex = 1, SelectedImageIndex = 1 }; callerNode.Nodes.Add(folderNode); callerNode.Expand(); callerNode = folderNode; } else { var node = new TreeNode(string.Format("{0}.{1}", parts[i], extension)) { ImageIndex = WebResource.GetImageIndexFromExtension (extension) }; node.SelectedImageIndex = node.ImageIndex; node.Tag = wr; callerNode.Nodes.Add(node); callerNode.Expand(); } } } }
internal static void AddExistingWebResource(TreeView tv, Control mainControl) { TreeNode selectedNode = tv.SelectedNode; TreeNode tempNode = selectedNode; string name = tempNode.Text; while (tempNode.Parent != null) { name = string.Format("{0}/{1}", tempNode.Parent.Text, name); tempNode = tempNode.Parent; } var ofd = new OpenFileDialog { Multiselect = true, Title = "Select file(s) for web resource(s)" }; if (ofd.ShowDialog(mainControl) == DialogResult.OK) { var errorList = new List <string>(); foreach (string fileName in ofd.FileNames) { var fi = new FileInfo(fileName); //Test valid characters if (WebResource.IsInvalidName(fi.Name)) { errorList.Add(fileName); } else { var webResource = new Entity("webresource"); webResource["content"] = Convert.ToBase64String(File.ReadAllBytes(fileName)); webResource["webresourcetype"] = new OptionSetValue(WebResource.GetTypeFromExtension(fi.Extension.Remove(0, 1))); webResource["name"] = string.Format("{0}/{1}", name, fi.Name); webResource["displayname"] = string.Format("{0}/{1}", name, fi.Name); var wr = new WebResource(webResource, fileName); var node = new TreeNode(fi.Name) { ImageIndex = WebResource.GetImageIndexFromExtension(fi.Extension.Remove(0, 1)) }; node.SelectedImageIndex = node.ImageIndex; node.Tag = wr; selectedNode.Nodes.Add(node); selectedNode.Expand(); } if (errorList.Count > 0) { MessageBox.Show("Some file have not been added since their name does not match naming policy\r\n" + string.Join("\r\n", errorList)); } } } tv.TreeViewNodeSorter = new NodeSorter(); tv.Sort(); }