public override string SetFieldValue(object value, ISitecoreService service) { Type pType = Utility.GetGenericArgument(Property.PropertyType); if (EnumSubHandler == null) EnumSubHandler = GetSubHandler(pType, service); IEnumerable list = value as IEnumerable; if (list == null) return ""; List<string> sList = new List<string>(); foreach (object obj in list) { string result = EnumSubHandler.SetFieldValue(obj, service); if (!result.IsNullOrEmpty()) sList.Add(result); } StringBuilder sb = new StringBuilder(); sList.ForEach(x => sb.AppendFormat("{0}|", x.Replace("|", Settings.PipeEncoding))); if (sb.Length > 1) sb.Remove(sb.Length - 1, 1); return sb.ToString(); }
public override object GetFieldValue(string fieldValue, Item item, ISitecoreService service) { Type type = Property.PropertyType; //Get generic type Type pType = Utility.GetGenericArgument(type); if (EnumSubHandler == null) EnumSubHandler = GetSubHandler(pType, service); //The enumerator only works with piped lists IEnumerable<string> parts = fieldValue.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); //replace any pipe encoding with an actual pipe parts = parts.Select(x => x.Replace(Settings.PipeEncoding, "|")).ToArray(); IEnumerable<object> items = parts.Select(x => EnumSubHandler.GetFieldValue(x, item, service)).ToArray(); var list = Utility.CreateGenericType(typeof(List<>), new Type[] { pType }) ; Utility.CallAddMethod(items, list); return list; }
public override object GetFieldValue(string fieldValue, Item item, ISitecoreService service) { Type type = Property.PropertyType; //Get generic type Type pType = Utility.GetGenericArgument(type); if (EnumSubHandler == null) { EnumSubHandler = GetSubHandler(pType, service); } //The enumerator only works with piped lists IEnumerable <string> parts = fieldValue.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); //replace any pipe encoding with an actual pipe parts = parts.Select(x => x.Replace(Settings.PipeEncoding, "|")).ToArray(); IEnumerable <object> items = parts.Select(x => EnumSubHandler.GetFieldValue(x, item, service)).ToArray(); var list = Utility.CreateGenericType(typeof(List <>), new Type[] { pType }); Utility.CallAddMethod(items, list); return(list); }
public override string SetFieldValue(object value, ISitecoreService service) { Type pType = Utility.GetGenericArgument(Property.PropertyType); if (EnumSubHandler == null) { EnumSubHandler = GetSubHandler(pType, service); } IEnumerable list = value as IEnumerable; if (list == null) { return(""); } List <string> sList = new List <string>(); foreach (object obj in list) { string result = EnumSubHandler.SetFieldValue(obj, service); if (!result.IsNullOrEmpty()) { sList.Add(result); } } StringBuilder sb = new StringBuilder(); sList.ForEach(x => sb.AppendFormat("{0}|", x.Replace("|", Settings.PipeEncoding))); if (sb.Length > 1) { sb.Remove(sb.Length - 1, 1); } return(sb.ToString()); }