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))); } }
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))); } }