Esempio n. 1
0
        protected override void OnParse(ConvertEventArgs e)
        {
            // this doesn't 't call the base implementation as we're overriding behavior, not extending...

            // log...
            if (this.Log.IsInfoEnabled)
            {
                this.Log.Info(string.Format(Cultures.Log, "Requested parse of '{0}' to '{1}'", LogSet.ToString(e.Value), e.DesiredType));
            }

            // unwrap an entity view...
            object value = EntityView.Unwrap(e.Value);

            // get the entity type...
            if (e.DesiredType.IsAssignableFrom(value.GetType()) == true)
            {
                e.Value = value;
            }
            else
            {
                throw new InvalidOperationException(string.Format(Cultures.Exceptions, "Cannot convert '{0}' to '{1}'.", value.GetType(), e.DesiredType));
            }

            // log...
            if (this.Log.IsInfoEnabled)
            {
                this.Log.Info(string.Format(Cultures.Log, "\tResult: {0}", LogSet.ToString(e.Value)));
            }
        }
Esempio n. 2
0
        protected override void OnFormat(ConvertEventArgs e)
        {
            // this doesn't 't call the base implementation as we're overriding behavior, not extending...

            // log...
            if (this.Log.IsInfoEnabled)
            {
                this.Log.Info(string.Format(Cultures.Log, "Requested format of '{0}' to '{1}'", LogSet.ToString(e.Value), e.DesiredType));
            }

            // convert...
            if (typeof(string).IsAssignableFrom(e.DesiredType))
            {
                e.Value = ConversionHelper.ToString(e.Value, Cultures.User);
            }
            else
            {
                e.Value = ConversionHelper.ChangeType(e.Value, e.DesiredType, Cultures.User, ConversionFlags.Safe);
            }

            // log...
            if (this.Log.IsInfoEnabled)
            {
                this.Log.Info(string.Format(Cultures.Log, "\tResult: {0}", LogSet.ToString(e.Value)));
            }
        }