/// <summary> /// Loads all controls from given directory and its subdirectories. /// </summary> /// <returns></returns> public static WorkspaceTemplateInfo[] Load() { List <WorkspaceTemplateInfo> list = new List <WorkspaceTemplateInfo>(); FileDescriptor[] files = FileResolver.GetFiles(ControlsDir + Path.DirectorySeparatorChar + "Configs", "*.xml"); foreach (FileDescriptor file in files) { string controlDir = Path.GetDirectoryName(file.FilePath); if (!String.IsNullOrEmpty(controlDir)) { string configsDir = Path.DirectorySeparatorChar + ConfigDir; string tempControlDirString = controlDir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) ? controlDir.Substring(0, controlDir.Length - 1) : controlDir; if (controlDir.EndsWith(configsDir, true, CultureInfo.InvariantCulture)) { controlDir = controlDir.Substring(0, controlDir.LastIndexOf(configsDir)); } } WorkspaceTemplateInfo wti = McXmlSerializer.GetObjectFromFile <WorkspaceTemplateInfo>(file.FilePath); if (string.IsNullOrEmpty(wti.Uid)) { wti.Uid = Path.GetFileNameWithoutExtension(file.FilePath); } list.Add(wti); } return(list.ToArray()); }
public void GetFiles_should_return_expected_results() { var fileResolver = new FileResolver(); var tempDir = Path.Combine(Path.GetTempPath(), $"BICEP_TESTDIR_{Guid.NewGuid()}"); var tempFile = Path.Combine(tempDir, $"BICEP_TEST_{Guid.NewGuid()}"); var tempChildDir = Path.Combine(tempDir, $"BICEP_TESTCHILDDIR_{Guid.NewGuid()}"); // make parent dir Directory.CreateDirectory(tempDir); fileResolver.GetFiles(PathHelper.FilePathToFileUrl(tempDir)).Should().HaveCount(0); // add a file to parent dir File.WriteAllText(tempFile, "abcd\r\ndef"); fileResolver.GetFiles(PathHelper.FilePathToFileUrl(tempDir)).Should().HaveCount(1); // make child dir Directory.CreateDirectory(tempChildDir); fileResolver.GetFiles(PathHelper.FilePathToFileUrl(tempDir)).Should().HaveCount(1); // check child dir fileResolver.GetFiles(PathHelper.FilePathToFileUrl(tempChildDir)).Should().HaveCount(0); // should throw an IOException when called with a file path fileResolver.GetDirectories(PathHelper.FilePathToFileUrl(Path.Join(Path.GetTempPath(), tempFile))); }
/// <summary> /// Loads the entity objects. /// </summary> /// <param name="metaClassName">Name of the meta class.</param> /// <returns></returns> private static EntityObject[] LoadEntityObjects(string metaClassName) { if (metaClassName == null) { throw new ArgumentNullException("metaClassName"); } if (!entityObjectHash.ContainsKey(metaClassName)) { lock (typeof(LocalDiskEntityObjectPlugin)) { if (!entityObjectHash.ContainsKey(metaClassName)) { FileDescriptor[] files = FileResolver.GetFiles(EntityObjectsDirs + Path.DirectorySeparatorChar + metaClassName, "*.xml"); List <EntityObject> items = new List <EntityObject>(); // Load EntityObject From File foreach (FileDescriptor file in files) { PrimaryKeyId pk; if (PrimaryKeyId.TryParse(Path.GetFileNameWithoutExtension(file.FilePath), out pk)) { // Load EntityObject From File EntityObject tmpItem = McXmlSerializer.GetObjectFromFile <EntityObject>(file.FilePath); // Create TEntityObject EntityObject item = BusinessManager.InitializeEntity(metaClassName); // Copy Fields From tmpItem To item foreach (EntityObjectProperty property in tmpItem.Properties) { item[property.Name] = property.Value; } // item.PrimaryKeyId = pk; // Add Abstract Property item[IsLoadDiskEntityPropertyName] = true; items.Add(item); } } entityObjectHash[metaClassName] = items.ToArray(); } } } return(entityObjectHash[metaClassName]); }
public static string GetEventControlPath(MetaObject eventObject, string className) { string result = null; string eventTypeName = (string)eventObject.Properties[_eventType].Value; FileDescriptor[] files = FileResolver.GetFiles("EventControls", "*.ascx", new Selector(eventTypeName, className)); if (files.Length > 0) { result = files[files.Length - 1].FilePath; } return(result); }
public static DynamicCategoryInfo[] Load() { List <DynamicCategoryInfo> list = new List <DynamicCategoryInfo>(); //string structureVirtualPath //string structurePath = HostingEnvironment.MapPath(structureVirtualPath); FileDescriptor[] files = FileResolver.GetFiles(ControlsDir + Path.DirectorySeparatorChar + ConfigDir, "*.xml"); foreach (FileDescriptor file in files) { string controlDir = Path.GetDirectoryName(file.FilePath); if (!string.IsNullOrEmpty(controlDir)) { string configsDir = Path.DirectorySeparatorChar + ConfigDir; string tempControlDirString = controlDir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) ? controlDir.Substring(0, controlDir.Length - 1) : controlDir; if (controlDir.EndsWith(configsDir, StringComparison.OrdinalIgnoreCase)) { controlDir = controlDir.Substring(0, controlDir.LastIndexOf(configsDir)); } } XmlDocument doc = new XmlDocument(); doc.Load(file.FilePath); foreach (XmlNode node in doc.DocumentElement.SelectNodes("DynamicCategoryInfo")) { DynamicCategoryInfo dci = McXmlSerializer.GetObject <DynamicCategoryInfo>(node.OuterXml); //McXmlSerializer.GetObjectFromFile<DynamicCategoryInfo>(file.FilePath); if (string.IsNullOrEmpty(dci.Uid) || list.Contains(dci)) { throw new ArgumentNullException("DynamicCategoryInfo must have unique <Uid>"); } list.Add(dci); } list.Sort(DynamicCategoryInfoComparasion); } return(list.ToArray()); }
/// <summary> /// Loads all controls from given directory and its subdirectories. /// </summary> /// <returns></returns> public static DynamicControlInfo[] Load() { List <DynamicControlInfo> list = new List <DynamicControlInfo>(); //string structureVirtualPath //string structurePath = HostingEnvironment.MapPath(structureVirtualPath); FileDescriptor[] files = FileResolver.GetFiles(ControlsDir + Path.DirectorySeparatorChar + "Configs", "*.xml"); foreach (FileDescriptor file in files) { string controlDir = Path.GetDirectoryName(file.FilePath); if (!string.IsNullOrEmpty(controlDir)) { string configsDir = Path.DirectorySeparatorChar + ConfigDir; string tempControlDirString = controlDir.EndsWith(Convert.ToString(Path.DirectorySeparatorChar)) ? controlDir.Substring(0, controlDir.Length - 1) : controlDir; if (controlDir.EndsWith(configsDir, StringComparison.OrdinalIgnoreCase)) { controlDir = controlDir.Substring(0, controlDir.LastIndexOf(configsDir)); } } DynamicControlInfo dci = McXmlSerializer.GetObjectFromFile <DynamicControlInfo>(file.FilePath); if (string.IsNullOrEmpty(dci.Uid)) { dci.Uid = Path.GetFileNameWithoutExtension(file.FilePath); } dci.AdapterPath = MakeVirtualPath(controlDir, dci.AdapterPath); dci.IconPath = dci.IconPath; dci.Path = dci.Path; //MakeVirtualPath(structurePath, structureVirtualPath, controlDir, dci.Path); dci.PropertyPagePath = dci.PropertyPagePath; //MakeVirtualPath(structurePath, structureVirtualPath, controlDir, dci.PropertyPagePath); dci.LargeThumbnail = dci.LargeThumbnail; dci.SmallThumbnail = dci.SmallThumbnail; list.Add(dci); } return(list.ToArray()); }