private static void AddSpklMapping(SpklConfig spklConfig, Project project, string profile, WebResourceItem webResourceItem) { var spklConfigWebresourceFile = new SpklConfigWebresourceFile { uniquename = webResourceItem.Name, file = webResourceItem.BoundFile, description = webResourceItem.Description }; if (WebResourceTypes.GetExtensionType(webResourceItem.BoundFile) == D365DeveloperExtensions.Core.Enums.FileExtensionType.Ts) { spklConfigWebresourceFile.file = TsHelper.GetJsForTsPath(webResourceItem.BoundFile, project); spklConfigWebresourceFile.ts = webResourceItem.BoundFile; } if (profile.StartsWith(ExtensionConstants.NoProfilesText)) { spklConfig.webresources[0].files.Add(spklConfigWebresourceFile); } else { spklConfig.webresources.FirstOrDefault(w => w.profile == profile)?.files.Add(spklConfigWebresourceFile); } var projectPath = D365DeveloperExtensions.Core.Vs.ProjectWorker.GetProjectPath(project); ConfigFile.UpdateSpklConfigFile(projectPath, spklConfig); }
public void NoVersion() { const int majorVersion = 0; ObservableCollection <WebResourceType> types = WebResourceTypes.GetTypes(majorVersion, false); var min = types.Count(t => t.CrmMinimumMajorVersion > majorVersion); var max = types.Count(t => t.CrmMaximumMajorVersion < majorVersion); Assert.IsTrue(min == 0 && max == 0 && types.Count == 0); }
public int GetWebResourceType(string extention) { if (extention != null && extention.StartsWith(".")) { extention = extention.Substring(1); } if (WebResourceTypes.ContainsKey(extention)) { return(WebResourceTypes[extention]); } throw new NotSupportedException(string.Format("No matching web resource type implemented for extention {0}", extention)); }
public static string AddMissingExtension(string name, int webResourceType) { if (!string.IsNullOrEmpty(Path.GetExtension(name))) { return(name); } string ext = WebResourceTypes.GetWebResourceTypeNameByNumber(webResourceType.ToString()).ToLower(); name += "." + ext; return(name); }
private static void UpdateSpklMapping(SpklConfig spklConfig, Project project, string profile, WebResourceItem webResourceItem) { var spklConfigWebresourceFiles = GetSpklConfigWebresourceFiles(profile, spklConfig); if (spklConfigWebresourceFiles == null) { return; } if (!string.IsNullOrEmpty(webResourceItem.BoundFile)) { var isTs = WebResourceTypes.GetExtensionType(webResourceItem.BoundFile) == D365DeveloperExtensions.Core.Enums.FileExtensionType.Ts; foreach (var spklConfigWebresourceFile in spklConfigWebresourceFiles.Where(w => w.uniquename == webResourceItem.Name)) { spklConfigWebresourceFile.file = webResourceItem.BoundFile; spklConfigWebresourceFile.description = webResourceItem.Description; spklConfigWebresourceFile.ts = null; if (!isTs) { continue; } spklConfigWebresourceFile.file = TsHelper.GetJsForTsPath(webResourceItem.BoundFile, project); spklConfigWebresourceFile.ts = webResourceItem.BoundFile; } } else { spklConfigWebresourceFiles.RemoveAll(w => w.uniquename == webResourceItem.Name); } if (profile.StartsWith(ExtensionConstants.NoProfilesText)) { spklConfig.webresources[0].files = spklConfigWebresourceFiles; } else { var webresourceDeployConfig = spklConfig.webresources.FirstOrDefault(w => w.profile == profile); if (webresourceDeployConfig != null) { webresourceDeployConfig.files = spklConfigWebresourceFiles; } } var projectPath = D365DeveloperExtensions.Core.Vs.ProjectWorker.GetProjectPath(project); ConfigFile.UpdateSpklConfigFile(projectPath, spklConfig); }
public static WebResourceItem WebResourceItemFromNew(NewWebResource newWebResource, Guid solutionId) { WebResourceItem webResourceItem = new WebResourceItem { WebResourceId = newWebResource.NewId, Name = newWebResource.NewName, DisplayName = newWebResource.NewDisplayName, TypeName = WebResourceTypes.GetWebResourceTypeNameByNumber(newWebResource.NewType.ToString()), Type = newWebResource.NewType, SolutionId = solutionId, Description = newWebResource.NewDescription, PreviousDescription = newWebResource.NewDescription, IsManaged = false }; return(webResourceItem); }
private static string GetFileContent(string filePath) { FileExtensionType extension = WebResourceTypes.GetExtensionType(filePath); string content; //Images if (WebResourceTypes.IsImageType(extension)) { content = EncodedImage(filePath, extension); return(content); } //Everything else content = File.ReadAllText(filePath); return(EncodeString(content)); }
private static string GetFileContent(string filePath, Project project) { FileExtensionType extension = WebResourceTypes.GetExtensionType(filePath); //Images if (WebResourceTypes.IsImageType(extension)) { var content = EncodedImage(filePath, extension); return(content); } //TypeScript if (extension == FileExtensionType.Ts) { string jsPath = TsHelper.GetJsForTsPath(filePath, project); jsPath = FileSystem.BoundFileToLocalPath(jsPath, D365DeveloperExtensions.Core.Vs.ProjectWorker.GetProjectPath(project)); return(GetNonImageFileContext(jsPath)); } //Everything else return(GetNonImageFileContext(filePath)); }
public static ObservableCollection <WebResourceItem> CreateWebResourceItemView(EntityCollection webResources, string projectName) { ObservableCollection <WebResourceItem> webResourceItems = new ObservableCollection <WebResourceItem>(); foreach (Entity webResource in webResources.Entities) { WebResourceItem webResourceItem = new WebResourceItem { WebResourceId = (Guid)webResource.GetAttributeValue <AliasedValue>("webresource.webresourceid").Value, Name = webResource.GetAttributeValue <AliasedValue>("webresource.name").Value.ToString(), IsManaged = (bool)webResource.GetAttributeValue <AliasedValue>("webresource.ismanaged").Value, TypeName = WebResourceTypes.GetWebResourceTypeNameByNumber(((OptionSetValue)webResource.GetAttributeValue <AliasedValue>("webresource.webresourcetype").Value).Value.ToString()), Type = ((OptionSetValue)webResource.GetAttributeValue <AliasedValue>("webresource.webresourcetype").Value).Value, SolutionId = webResource.GetAttributeValue <EntityReference>("solutionid").Id }; bool hasDescription = webResource.Attributes.TryGetValue("webresource.description", out var description); if (hasDescription) { webResourceItem.Description = ((AliasedValue)description).Value.ToString(); webResourceItem.PreviousDescription = webResourceItem.Description; } bool hasDisplayName = webResource.Attributes.TryGetValue("webresource.displayname", out var displayName); if (hasDisplayName) { webResourceItem.DisplayName = ((AliasedValue)displayName).Value.ToString(); } webResourceItems.Add(webResourceItem); } webResourceItems = new ObservableCollection <WebResourceItem>(webResourceItems.OrderBy(w => w.Name)); return(webResourceItems); }