示例#1
0
        public void CreateMetadata()
        {
            const Behavior mockBehavior = Behavior.Strict;

            var metadataBuilder     = Mock.Create <IMetadataBuilder>(mockBehavior);
            var testObject          = new MetadataRepository(metadataBuilder);
            var environmentMetadata = Mock.Create <IEnvironmentMetadata>(mockBehavior);
            var hierarchyMetadata   = Mock.Create <IHierarchyMetadata>(mockBehavior);
            var graphMetadata       = Mock.Create <IGraphMetadata>(mockBehavior);
            var metadata            = new Model.Metadata(environmentMetadata, hierarchyMetadata, graphMetadata);

            Mock.Arrange(() => metadataBuilder.BuildEnvironmentMetadata()).Returns(environmentMetadata);
            Mock.Arrange(() => metadataBuilder.BuildHierarchyMetadata(environmentMetadata)).Returns(hierarchyMetadata);
            Mock.Arrange(() => metadataBuilder.BuildGraphMetadata(hierarchyMetadata)).Returns(graphMetadata);

            var result = testObject.CreateMetadata();

            Assert.Same(metadata.EnvironmentMetadata, result.EnvironmentMetadata);
            Assert.Same(metadata.HierarchyMetadata, result.HierarchyMetadata);
            Assert.Same(metadata.GraphMetadata, result.GraphMetadata);
        }
示例#2
0
        public override void OnInspectorGUI()
        {
            Model.Metadata metadata = (Model.Metadata)target;

            if (metadata.data != null)
            {
                foreach (KeyValuePair <string, object> pair in metadata.data)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        EditorGUILayout.SelectableLabel(pair.Key, EditorStyles.textField, GUILayout.Height(EditorGUIUtility.singleLineHeight), GUILayout.Width(EditorGUIUtility.labelWidth - 4));
                        EditorGUILayout.SelectableLabel(pair.Value != null  ? pair.Value.ToString() : "", EditorStyles.textField, GUILayout.Height(EditorGUIUtility.singleLineHeight));
                    }
                    EditorGUILayout.EndHorizontal();
                }
            }

            if (GUI.changed)
            {
                EditorUtility.SetDirty(metadata);
            }
        }
        public static void AddMetadata(FileInfo fileInfo, int fileId)
        {
            string ext = Util.GetFileExtension(fileInfo.Extension);

            List <string> txt = new List <string> {
                "Length", "Name", "CreationTime", "IsReadOnly", "LastAccessTime", "LastWriteTime", "Attributes"
            };
            List <string> jpg = new List <string> {
                "Length", "Name", "CreationTime", "IsReadOnly", "LastAccessTime", "LastWriteTime", "Attributes"
            };
            List <string> pdf = new List <string> {
                "Length", "Name", "CreationTime", "IsReadOnly", "LastAccessTime", "LastWriteTime", "Attributes"
            };

            //if the set of metadatas for the new extension does not exist in the database use the defaultList of metadata
            List <string> defaultList = new List <string> {
                "Length", "Name", "CreationTime", "IsReadOnly", "LastAccessTime", "LastWriteTime", "Attributes"
            };


            //all the metadata extensions
            Dictionary <string, List <string> > extensions = new Dictionary <string, List <string> >()
            {
                { "default", defaultList },
                { "txt", txt },
                { "jpg", jpg },
                { "pdf", pdf }
            };

            ext = extensions.ContainsKey(ext) ? ext : "default";
            foreach (string metadataTypeName in extensions[ext])
            {
                var metadata = new Model.Metadata();
                metadata.Value = ReflectPropertyValuefileInfo(fileInfo, metadataTypeName).ToString();

                RepositoryMetadata.SaveMetadataToDb(metadata, GetMetadataTypeId(metadataTypeName), fileId);
            }
        }
示例#4
0
 /// <summary>
 /// To the assimp metadata.
 /// </summary>
 /// <param name="m">The m.</param>
 /// <returns></returns>
 public static IEnumerable <KeyValuePair <string, Metadata.Entry> > ToAssimpMetadata(this Model.Metadata m)
 {
     foreach (var d in m)
     {
         yield return(new KeyValuePair <string, Metadata.Entry>(d.Key, new Metadata.Entry(d.Value.DataType.ToAssimpMetadataType(), d.Value.Data)));
     }
 }