コード例 #1
0
        public void EnumIsConvertedCorrectly()
        {
            var sample = new WithEnum {
                Choice = Choices.One
            };

            var serialized = Json.Serialize(sample);

            var deserialized = Json.Deserialize <WithEnum>(serialized);

            Assert.AreEqual(sample.Choice, deserialized.Choice);
        }
コード例 #2
0
        private void ForEachEnumValue(WithEnum withValue, object p)
        {
            Type pType = p.GetType();

            if (!CycTypeInfo.IsFlagType(pType))
            {
                PlTerm fort = (PlTerm)ToFort(p);
                withValue(fort);
                return;
            }
            Array pTypeValues = System.Enum.GetValues(pType);

            Array.Reverse(pTypeValues);

            if (p is byte)
            {
                byte b = (byte)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    byte bv = (byte)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is sbyte)
            {
                sbyte b = (sbyte)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    sbyte bv = (sbyte)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is UInt16)
            {
                ushort b = (UInt16)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    ushort bv = (ushort)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is Int16)
            {
                short b = (Int16)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    short bv = (short)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is UInt32)
            {
                uint b = (UInt32)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    uint bv = (uint)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is Int32)
            {
                int b = (Int32)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    int bv = (int)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is UInt64)
            {
                ulong b = (UInt64)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    ulong bv = (ulong)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is Int64)
            {
                long b = (Int64)p;
                if (b == 0)
                {
                    withValue((PlTerm)ToFort(p));
                    return;
                }
                foreach (object v in pTypeValues)
                {
                    long bv = (long)v;
                    if (bv >= b)
                    {
                        withValue((PlTerm)ToFort(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            string s = p.ToString();
            bool   unfolded;

            foreach (var unfold in Unfold(p, out unfolded))
            {
                withValue((PlTerm)ToFort(unfold));
                //return;
            }
            if (unfolded)
            {
                return;
            }
            Trace();
            if (p is IConvertible)
            {
                withValue((PlTerm)ToFort(p));
                return;
            }

            if (p is Enum)
            {
                withValue((PlTerm)ToFort(p));
                return;
            }
            withValue((PlTerm)ToFort(p));
        }
コード例 #3
0
ファイル: WithEnumController.cs プロジェクト: Lundalogik/isop
 public string Index(WithEnum? value = null)
 {
     return OnIndex(value);
 }
コード例 #4
0
        private void ForEachEnumValue(WithEnum withValue, object p)
        {
            Type  pType       = p.GetType();
            Array pTypeValues = System.Enum.GetValues(pType);

            if (p is byte)
            {
                byte b = (byte)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    byte bv = (byte)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is sbyte)
            {
                sbyte b = (sbyte)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    sbyte bv = (sbyte)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is UInt16)
            {
                ushort b = (UInt16)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    ushort bv = (ushort)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is Int16)
            {
                short b = (Int16)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    short bv = (short)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is UInt32)
            {
                uint b = (UInt32)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    uint bv = (uint)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is Int32)
            {
                int b = (Int32)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    int bv = (int)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is UInt64)
            {
                ulong b = (UInt64)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    ulong bv = (ulong)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            if (p is Int64)
            {
                long b = (Int64)p;
                if (b == 0)
                {
                    withValue((Enum)(p));
                }
                foreach (object v in pTypeValues)
                {
                    long bv = (long)v;
                    if (bv >= b)
                    {
                        withValue((Enum)(v));
                        b -= bv;
                    }
                    if (b == 0)
                    {
                        return;
                    }
                }
                return;
            }
            string s = p.ToString();

            foreach (var unfold in Unfold(p))
            {
                withValue((Enum)(unfold));
                return;
            }

            if (p is IConvertible)
            {
                withValue((Enum)(p));
                return;
            }

            if (p is Enum)
            {
                withValue((Enum)(p));
                return;
            }
            withValue((Enum)(p));
        }