/// <summary> /// Converts a <see cref="T:Tridion.ContentDelivery.Meta.CustomMeta" /> to a <see cref="T:TcmCDService.Contracts.CustomMeta" /> data contract. /// </summary> /// <param name="customMeta"><see cref="T:Tridion.ContentDelivery.Meta.CustomMeta" /></param> /// <returns><see cref="I:System.Collections.Generic.IEnumerable{TcmCDService.Contracts.CustomMeta}" /></returns> internal static IEnumerable <Contracts.CustomMeta> ToContract(this CustomMeta customMeta) { if (customMeta != null) { List <Contracts.CustomMeta> result = new List <Contracts.CustomMeta>(); foreach (NameValuePair metaValue in customMeta.NameValues.Values) { try { Contracts.CustomMeta contract = new Contracts.CustomMeta() { Name = metaValue.Name, DataType = (Contracts.CustomMetaType)metaValue.ValueType }; switch (metaValue.ValueType) { case (int)Contracts.CustomMetaType.String: contract.StringValues = metaValue.MultipleValues.Cast <String>(); break; case (int)Contracts.CustomMetaType.Date: contract.DateTimeValues = metaValue.MultipleValues.Cast <DateTime>().Select(d => DateTime.SpecifyKind(d, DateTimeKind.Unspecified)); break; case (int)Contracts.CustomMetaType.Float: contract.FloatValues = metaValue.MultipleValues.Cast <float>(); break; } result.Add(contract); } catch (Exception ex) { Logger.Error("CustomMeta: Error parsing value {0}.", ex, metaValue.Name); } } return(result); } return(null); }
/// <summary> /// Converts a <see cref="T:Tridion.ContentDelivery.Meta.CustomMeta" /> to a <see cref="T:TcmCDService.Contracts.CustomMeta" /> data contract. /// </summary> /// <param name="customMeta"><see cref="T:Tridion.ContentDelivery.Meta.CustomMeta" /></param> /// <returns><see cref="I:System.Collections.Generic.IEnumerable{TcmCDService.Contracts.CustomMeta}" /></returns> internal static IEnumerable<Contracts.CustomMeta> ToContract(this CustomMeta customMeta) { if (customMeta != null) { List<Contracts.CustomMeta> result = new List<Contracts.CustomMeta>(); foreach (NameValuePair metaValue in customMeta.NameValues.Values) { try { Contracts.CustomMeta contract = new Contracts.CustomMeta() { Name = metaValue.Name, DataType = (Contracts.CustomMetaType)metaValue.ValueType }; switch (metaValue.ValueType) { case (int)Contracts.CustomMetaType.String: contract.StringValues = metaValue.MultipleValues.Cast<String>(); break; case (int)Contracts.CustomMetaType.Date: contract.DateTimeValues = metaValue.MultipleValues.Cast<DateTime>().Select(d => DateTime.SpecifyKind(d, DateTimeKind.Unspecified)); break; case (int)Contracts.CustomMetaType.Float: contract.FloatValues = metaValue.MultipleValues.Cast<float>(); break; } result.Add(contract); } catch (Exception ex) { Logger.Error("CustomMeta: Error parsing value {0}.", ex, metaValue.Name); } } return result; } return null; }