public static Microsoft.Xrm.Sdk.OptionSetValueCollection GetMultiEnum <T>(Microsoft.Xrm.Sdk.Entity entity, string attributeLogicalName, System.Collections.Generic.IEnumerable <T> values) { Microsoft.Xrm.Sdk.OptionSetValueCollection collection = new Microsoft.Xrm.Sdk.OptionSetValueCollection(); collection.AddRange(System.Linq.Enumerable.Select(values, v => new Microsoft.Xrm.Sdk.OptionSetValue((int)(object)v))); return(collection); }
public static System.Collections.Generic.IEnumerable <T> GetMultiEnum <T>(Microsoft.Xrm.Sdk.Entity entity, string attributeLogicalName) { Microsoft.Xrm.Sdk.OptionSetValueCollection value = entity.GetAttributeValue <Microsoft.Xrm.Sdk.OptionSetValueCollection>(attributeLogicalName); System.Collections.Generic.List <T> list = new System.Collections.Generic.List <T>(); list.AddRange(System.Linq.Enumerable.Select(value, v => (T)(object)v.Value)); return(list); }
public void ContainValuesTest() { var value = new Microsoft.Xrm.Sdk.OptionSetValueCollection(); value.Add(new Microsoft.Xrm.Sdk.OptionSetValue(1)); value.Add(new Microsoft.Xrm.Sdk.OptionSetValue(2)); var filter = new Microsoft.Xrm.Sdk.Query.ConditionExpression("value", Microsoft.Xrm.Sdk.Query.ConditionOperator.ContainValues, new int[] { 1, 2 }); Assert.IsTrue(value.ContainValues(filter.Values)); filter = new Microsoft.Xrm.Sdk.Query.ConditionExpression("value", Microsoft.Xrm.Sdk.Query.ConditionOperator.ContainValues, new int[] { 1, 2, 3 }); Assert.IsFalse(value.ContainValues(filter.Values)); }
private static object ValueCloning(object value) { if (value == null) { return(null); } if (value.GetType() == typeof(Microsoft.Xrm.Sdk.EntityReference)) { var v = (Microsoft.Xrm.Sdk.EntityReference)value; return(new Microsoft.Xrm.Sdk.EntityReference { Id = v.Id, LogicalName = v.LogicalName, Name = v.Name }); } if (value.GetType() == typeof(Microsoft.Xrm.Sdk.OptionSetValue)) { var v = (Microsoft.Xrm.Sdk.OptionSetValue)value; return(new Microsoft.Xrm.Sdk.OptionSetValue { Value = v.Value }); } if (value.GetType() == typeof(Microsoft.Xrm.Sdk.OptionSetValueCollection)) { var v = (Microsoft.Xrm.Sdk.OptionSetValueCollection)value; var result = new Microsoft.Xrm.Sdk.OptionSetValueCollection(); foreach (var o in v) { result.Add(new Microsoft.Xrm.Sdk.OptionSetValue(o.Value)); } return(result); } if (value.GetType() == typeof(Microsoft.Xrm.Sdk.Money)) { var v = (Microsoft.Xrm.Sdk.Money)value; return(new Microsoft.Xrm.Sdk.Money { Value = v.Value }); } return(value); }
public void OptionSetCollectionToArrayTest() { var entity = new Microsoft.Xrm.Sdk.Entity(); var col = new Microsoft.Xrm.Sdk.OptionSetValueCollection(); col.Add(new Microsoft.Xrm.Sdk.OptionSetValue(1)); col.Add(new Microsoft.Xrm.Sdk.OptionSetValue(2)); entity["enumvaluecol"] = col; var enumcol = entity.Attributes.ValueOf <TestEnum[]>("enumvaluecol"); Assert.AreEqual(TestEnum.V1, enumcol[0]); Assert.AreEqual(TestEnum.V2, enumcol[1]); TestEnum[] notin = entity.Attributes.ValueOf <TestEnum[]>("notinthere"); Assert.IsNull(notin); }