Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }