/// <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());
        }
Example #2
0
        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)));
        }
Example #3
0
        /// <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]);
        }
Example #4
0
        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);
        }
Example #5
0
        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());
        }