public static List <string> GetProfiles(Project project, ToolWindowType toolWindowType) { if (toolWindowType == ToolWindowType.PluginTraceViewer) { return(null); } SpklConfig spklConfig = ConfigFile.GetSpklConfigFile(project); string projectPath = ProjectWorker.GetProjectPath(project); switch (toolWindowType) { case ToolWindowType.PluginDeployer: return(GetConfigProfiles(projectPath, spklConfig.plugins)); case ToolWindowType.SolutionPackager: return(GetConfigProfiles(projectPath, spklConfig.solutions)); case ToolWindowType.WebResourceDeployer: return(GetConfigProfiles(projectPath, spklConfig.webresources)); default: return(null); } }
/// <summary>Gets the existing or creates a new configuration file.</summary> /// <param name="project">The project.</param> /// <param name="isRetry">if set to <c>true</c> [is retry].</param> /// <returns>Configuration file.</returns> public static SpklConfig GetSpklConfigFile(Project project, bool isRetry = false) { var projectPath = ProjectWorker.GetProjectPath(project); var path = Path.Combine(projectPath, ExtensionConstants.SpklConfigFile); ExLogger.LogToFile(Logger, $"{Resource.Message_ReadingFile}: {path}", LogLevel.Info); try { SpklConfig spklConfig; using (var file = File.OpenText(path)) { var serializer = new JsonSerializer(); spklConfig = (SpklConfig)serializer.Deserialize(file, typeof(SpklConfig)); } return spklConfig; } catch (Exception ex) { ExceptionHandler.LogException(Logger, $"{Resource.ErrorMessage_UnableReadDeserializeConfig}: {path}", ex); MessageBox.Show($"{Resource.ErrorMessage_UnableReadDeserializeConfig}: {path}"); if (!isRetry) return RecreateConfig(project, path); throw; } }
public static SpklConfig GetSpklConfigFile(Project project, bool isRetry = false) { string projectPath = ProjectWorker.GetProjectPath(project); string path = Path.Combine(projectPath, ExtensionConstants.SpklConfigFile); try { SpklConfig spklConfig; using (StreamReader file = File.OpenText(path)) { JsonSerializer serializer = new JsonSerializer(); spklConfig = (SpklConfig)serializer.Deserialize(file, typeof(SpklConfig)); } return(spklConfig); } catch (Exception ex) { ExceptionHandler.LogException(Logger, $"{Resource.ErrorMessage_UnableReadDeserializeConfig}: {path}", ex); MessageBox.Show($"{Resource.ErrorMessage_UnableReadDeserializeConfig}: {path}"); if (!isRetry) { return(RecreateConfig(project, path)); } throw; } }
private void PostHandleTypeScriptProject(Project project) { NpmProcessor.InstallPackage("@types/xrm", _typesXrmVersion, ProjectWorker.GetProjectPath(project), true); _dte.ExecuteCommand("ProjectandSolutionContextMenus.CrossProjectMultiItem.RefreshFolder"); }
public static ObservableCollection <WebResourceItem> HandleSpklMappings(Project project, string profile, ObservableCollection <WebResourceItem> webResourceItems) { var spklConfig = D365DeveloperExtensions.Core.Config.Mapping.GetSpklConfigFile(project); var mappedWebResources = GetSpklConfigWebresourceFiles(profile, spklConfig); if (mappedWebResources == null) { return(webResourceItems); } //Lock mappings where CRM web resource was deleted foreach (var spklConfigWebresourceFile in mappedWebResources) { if (webResourceItems.Count(w => w.Name == spklConfigWebresourceFile.uniquename) == 0) { webResourceItems.Where(w => w.Name == spklConfigWebresourceFile.uniquename).ToList() .ForEach(ww => ww.Locked = true); } } //Add bound file & description from mapping foreach (var spklConfigWebresourceFile in mappedWebResources) { if (webResourceItems.Count(w => w.Name == spklConfigWebresourceFile.uniquename) <= 0) { continue; } var matches = webResourceItems.Where(w => w.Name == spklConfigWebresourceFile.uniquename).ToList(); foreach (var match in matches) { match.Description = string.IsNullOrEmpty(spklConfigWebresourceFile.description) ? null : spklConfigWebresourceFile.description; match.BoundFile = string.IsNullOrEmpty(spklConfigWebresourceFile.ts) ? spklConfigWebresourceFile.file : spklConfigWebresourceFile.ts; } } //Lock mappings where project file was deleted foreach (var spklConfigWebresourceFile in mappedWebResources) { var mappedFilePath = FileSystem.BoundFileToLocalPath(spklConfigWebresourceFile.file, project.FullName); var relativePath = ProjectItemWorker.GetRelativePathFromPath(ProjectWorker.GetProjectPath(project), mappedFilePath); var inProject = ProjectWorker.IsFileInProjectFile(project.FullName, relativePath); if (File.Exists(mappedFilePath) && inProject) { continue; } if (!string.IsNullOrEmpty(spklConfigWebresourceFile.ts)) { mappedFilePath = FileSystem.BoundFileToLocalPath(spklConfigWebresourceFile.ts, project.FullName); } if (File.Exists(mappedFilePath) && inProject) { continue; } webResourceItems.Where(w => w.BoundFile == spklConfigWebresourceFile.file).ToList().ForEach(w => w.Locked = true); } return(webResourceItems); }