コード例 #1
0
ファイル: ConceptMetadata.cs プロジェクト: quocngo2cs/Rhetos
        public T Get <T>(IConceptInfo conceptInfo, ConceptMetadataType <T> metadataType)
        {
            Func <string> missingMetadataMessage = () => "There is no metadata of requested type for concept " + conceptInfo.GetUserDescription() + ". Metadata type is " + metadataType + ".";
            var           conceptMetadataByType  = _metadata.GetValue(conceptInfo.GetKey(), missingMetadataMessage);
            var           metadataValue          = conceptMetadataByType.GetValue(metadataType.Id, missingMetadataMessage);

            return((T)metadataValue);
        }
コード例 #2
0
ファイル: ConceptMetadata.cs プロジェクト: quocngo2cs/Rhetos
        public bool Contains <T>(IConceptInfo conceptInfo, ConceptMetadataType <T> metadataType)
        {
            Dictionary <Guid, object> conceptMetadataByType;

            if (!_metadata.TryGetValue(conceptInfo.GetKey(), out conceptMetadataByType))
            {
                return(false);
            }
            return(conceptMetadataByType.ContainsKey(metadataType.Id));
        }
コード例 #3
0
ファイル: ConceptMetadata.cs プロジェクト: quocngo2cs/Rhetos
        public void Set <T>(IConceptInfo conceptInfo, ConceptMetadataType <T> metadataType, T value)
        {
            Dictionary <Guid, object> conceptMetadataByType;
            string conceptKey = conceptInfo.GetKey();

            if (!_metadata.TryGetValue(conceptKey, out conceptMetadataByType))
            {
                conceptMetadataByType = new Dictionary <Guid, object>();
                _metadata.Add(conceptKey, conceptMetadataByType);
            }

            if (conceptMetadataByType.ContainsKey(metadataType.Id))
            {
                throw new FrameworkException(string.Format(
                                                 "The metadata is already set for concept {0}. Metadata type {1}.",
                                                 conceptInfo.GetUserDescription(),
                                                 metadataType));
            }

            conceptMetadataByType.Add(metadataType.Id, value);
        }
コード例 #4
0
ファイル: ConceptMetadata.cs プロジェクト: quocngo2cs/Rhetos
 public T GetOrDefault <T>(IConceptInfo conceptInfo, ConceptMetadataType <T> metadataType, T defaultValue)
 {
     return(Contains(conceptInfo, metadataType)
         ? Get(conceptInfo, metadataType)
         : defaultValue);
 }
コード例 #5
0
 public bool Contains <T>(IConceptInfo conceptInfo, ConceptMetadataType <T> metadataType)
 {
     return(_metadata.ContainsKey(conceptInfo.GetKey()));
 }