Was.OrcSearch – Rev 1

Subversion Repositories:
Rev:
using System;
using System.Collections.Generic;
using Was.OrcSearch.Models.Interfaces;

namespace Was.OrcSearch.Models
{
    public class DictionaryMetadata : IMetadata
    {
        #region Fields

        private readonly string _key;

        #endregion

        #region Constructors

        public DictionaryMetadata()
        {
        }

        public DictionaryMetadata(string key, Type expectedType)
            : this()
        {
            _key = key;
            DisplayName = key;
            Type = expectedType;
        }

        #endregion

        #region Properties

        public virtual string DisplayName { get; set; }

        public virtual string Name => _key;

        public virtual Type Type { get; }

        #endregion

        #region Methods

        public virtual object GetValue(object instance)
        {
            object result = null;

            var dictionary = instance as IDictionary<string, object>;
            if (dictionary != null) dictionary.TryGetValue(_key, out result);

            return result;
        }

        public virtual void SetValue(object instance, object value)
        {
            var dictionary = instance as IDictionary<string, object>;
            if (dictionary == null) return;

            dictionary[_key] = value;
        }

        #endregion
    }
}

Generated by GNU Enscript 1.6.5.90.