private void Tv_ShowInvalidFilesRequested(object sender, InvalidFilesEventArgs e) { if (ifnd == null || ifnd.IsDisposed) { ifnd = new InvalidFilenamesDialog { DockPanel = dpMain }; } ifnd.InvalidFiles = e.InvalidFilesList; ifnd.ShowDocked(DockState.DockBottom); }
private void LoadFromDisk() { try { // Let the user decides where to find files var fbd = new CustomFolderBrowserDialog(true); if (!string.IsNullOrWhiteSpace(Settings.Instance.LastFolderUsed) && Directory.Exists(Settings.Instance.LastFolderUsed)) { fbd.FolderPath = Settings.Instance.LastFolderUsed; } if (fbd.ShowDialog() == DialogResult.OK) { Settings.Instance.LastFolderUsed = fbd.FolderPath; Settings.Instance.Save(); if (fbd.FolderPath.EndsWith("\\")) { fbd.FolderPath = fbd.FolderPath.Substring(0, fbd.FolderPath.Length - 1); } CloseOpenedContents(); var invalidFilenames = new List <string>(); WebresourcesCache.Clear(); tv.DisplayWaitingForUpdatePanel(); var resources = Webresource.RetrieveFromDirectory(this, fbd.FolderPath, fbd.ExtensionsToLoad, invalidFilenames, ConnectionDetail?.OrganizationMajorVersion ?? -1); tv.DisplayNodes(resources, null, Settings.Instance.ExpandAllOnLoadingResources); if (invalidFilenames.Count > 0) { if (ifnd == null || ifnd.IsDisposed) { ifnd = new InvalidFilenamesDialog(); } ifnd.InvalidFiles = invalidFilenames; ifnd.Show(dpMain, DockState.DockBottom); } else if (ifnd != null && !ifnd.IsDisposed) { ifnd.InvalidFiles = invalidFilenames; } } } catch (Exception error) { MessageBox.Show(this, $@"An error occured while loading webresources from disk: {error.Message}", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void ShowInvalidFiles(List <string> invalidFileNames) { if (invalidFileNames.Any()) { if (ifnd?.DockPanel == null || ifnd.IsDisposed) { ifnd = new InvalidFilenamesDialog { DockPanel = dpMain }; } ifnd.InvalidFiles = invalidFileNames; ifnd.ShowDocked(DockState.DockBottom); } }
private void cmsWebresourceTreeview_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem != tsmiAddNewResource) { cmsWebresourceTreeview.Hide(); } if (e.ClickedItem == tsmiProperties) { if (rpd.IsDisposed) { rpd = new ResourcePropertiesDialog(); } rpd.Resource = contextStripResource; rpd.ShowDocked(); } else if (e.ClickedItem == tsmiSetDependencies) { var dialog = new DependencyDialog(contextStripResource, this); if (dialog.ShowDialog(this) == DialogResult.OK) { contextStripResource.DependencyXml = dialog.UpdatedDependencyXml; } } else if (e.ClickedItem == tsmiCopyNameToClipboard) { Clipboard.SetData(DataFormats.StringFormat, contextStripResource.Name); } else if (e.ClickedItem == tsmiOpenInCrm) { if (contextStripResource.Id == Guid.Empty) { MessageBox.Show(this, @"This web resource does not exist on the CRM organization or is not synced", @"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Process.Start($"{ConnectionDetail.WebApplicationUrl}/main.aspx?id={contextStripResource.Id}&etc=9333&pagetype=webresourceedit"); } else if (e.ClickedItem == tsmiDelete) { ExecuteMethod(DeleteWebresource, contextStripResource); } else if (e.ClickedItem == tsmiUpdate) { var us = new UpdateResourcesSettings { Webresources = new List <Webresource> { contextStripResource }, }; ExecuteMethod(UpdateWebResources, us); } else if (e.ClickedItem == tsmiUpdatePublish) { var us = new UpdateResourcesSettings { Webresources = new List <Webresource> { contextStripResource }, Publish = true }; ExecuteMethod(UpdateWebResources, us); } else if (e.ClickedItem == tsmiUpdatePublishAdd) { var us = new UpdateResourcesSettings { Webresources = new List <Webresource> { contextStripResource }, Publish = true, AddToSolution = true }; ExecuteMethod(UpdateWebResources, us); } else if (e.ClickedItem == tsmiGetLatest) { try { contextStripResource.GetLatestVersion(); } catch (Exception error) { MessageBox.Show(this, error.Message, @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else if (e.ClickedItem == tsmiRefreshFileFromDisk) { if (string.IsNullOrEmpty(contextStripResource.FilePath)) { MessageBox.Show(this, @"This webresource is not synced with a local file", @"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } contextStripResource.RefreshFromDisk(); } else if (e.ClickedItem == tsmiUpdateFolderFromDisk) { if (string.IsNullOrEmpty(contextFolderNode.FolderPath)) { MessageBox.Show(this, @"This folder node is not synced with a local folder. Cannot refresh from disk", @"Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var invalidFileNames = new List <string>(); tv.RefreshFolderNodeContent(contextFolderNode, invalidFileNames, null); if (invalidFileNames.Any()) { if (ifnd == null || ifnd.IsDisposed) { ifnd = new InvalidFilenamesDialog(); } ifnd.InvalidFiles = invalidFileNames; ifnd.ShowDocked(DockState.DockBottom); } } else if (e.ClickedItem == tsmiRenameWebresource) { var renameDialog = new RenameWebResourceDialog(contextStripResource.Name, ConnectionDetail?.OrganizationMajorVersion ?? -1); if (renameDialog.ShowDialog(this) == DialogResult.OK) { if (contextStripResource.Name != renameDialog.WebResourceName) { ExecuteMethod(RenameWebresource, renameDialog.WebResourceName); } } } else if (e.ClickedItem == tsmiAddNewFolder) { var newFolderDialog = new NewFolderDialog(ConnectionDetail?.OrganizationMajorVersion ?? -1); if (newFolderDialog.ShowDialog(this) == DialogResult.OK) { tv.AddSingleFolder(contextFolderNode, newFolderDialog.FolderName); } } else if (e.ClickedItem == tsmiAddExistingFile) { var ofd = new OpenFileDialog { Multiselect = true, Title = @"Select file(s) to add as webresource(s)" }; if (ofd.ShowDialog(ParentForm) == DialogResult.OK) { var invalidFileNames = new List <string>(); tv.AddFilesAsNodes(contextFolderNode, ofd.FileNames.ToList(), invalidFileNames); if (invalidFileNames.Any()) { if (ifnd == null || ifnd.IsDisposed) { ifnd = new InvalidFilenamesDialog(); } ifnd.InvalidFiles = invalidFileNames; ifnd.ShowDocked(DockState.DockBottom); } } } else if (e.ClickedItem == tsmiNewCss) { tv.AddNewWebresource(contextFolderNode, WebresourceType.Css); } else if (e.ClickedItem == tsmiNewData) { tv.AddNewWebresource(contextFolderNode, WebresourceType.Data); } else if (e.ClickedItem == tsmiNewHtml) { tv.AddNewWebresource(contextFolderNode, WebresourceType.WebPage); } else if (e.ClickedItem == tsmiNewResx) { tv.AddNewWebresource(contextFolderNode, WebresourceType.Resx); } else if (e.ClickedItem == tsmiNewScript) { tv.AddNewWebresource(contextFolderNode, WebresourceType.Script); } else if (e.ClickedItem == tsmiNewXsl) { tv.AddNewWebresource(contextFolderNode, WebresourceType.Xsl); } else if (e.ClickedItem == tsmiExpand) { contextFolderNode.ExpandAll(); } else if (e.ClickedItem == tsmiCollapse) { contextFolderNode.Collapse(false); } }