/// <inheritdoc />
        public override int Construct
        (
            Expression expression,
            object[] arguments,
            out object value,
            out bool wasHandled
        )
        {
            var memberInit = (MemberInitExpression)expression;

            int i = ConstructionHelper.Invoke(memberInit.NewExpression, arguments, out value);

            foreach (MemberBinding binding in memberInit.Bindings)
            {
                var memberAssignment = binding as MemberAssignment;

                if (memberAssignment != null)
                {
                    object temp;

                    i += ConstructionHelper.Invoke(memberAssignment.Expression, arguments.Skip(i).ToArray(), out temp);

                    SetValue(binding.Member, value, temp);
                }
            }

            wasHandled = true;

            return(i);
        }
Esempio n. 2
0
        public void GetListByExpressionReturnsNullIfSelectionIsNull()
        {
            Expression <Func <UserEntity, object> > expression = x => new { x.IsOnline };

            IEnumerable <int> list = ConstructionHelper.GetListByExpression <int>(expression, null);

            Assert.That(list, Is.Null);
        }
Esempio n. 3
0
        static void DiggerLimitResearch(AbstractResearchable res, ColonyScienceState manager, EResearchCompletionReason reason)
        {
            int current = manager.Colony.TemporaryData.GetAsOrDefault("pipliz.diggerlimit", 0);
            int next    = DiggerLimits[res.GetKey()];

            manager.Colony.TemporaryData.SetAs("pipliz.diggerlimit", Math.Max(current, next));
            ConstructionHelper.SendPacket(manager.Colony);
        }
Esempio n. 4
0
 public void GetObjectByExpressionConverterThrowsWhenExpressionIsNull()
 {
     Assert
     .That
     (
         () => ConstructionHelper.GetObjectByExpressionConverter <int>(null),
         Throws.InstanceOf <ArgumentNullException>()
     );
 }
Esempio n. 5
0
 public void GetListByExpressionThrowsWhenExpressionIsNull()
 {
     Assert
     .That
     (
         () => ConstructionHelper.GetListByExpression <int>(null, new object[] { }),
         Throws.InstanceOf <ArgumentNullException>()
     );
 }
Esempio n. 6
0
        /// <inheritdoc />
        public override int Construct
        (
            Expression expression,
            object[] arguments,
            out object value,
            out bool wasHandled
        )
        {
            wasHandled = true;

            return(ConstructionHelper.Invoke(((LambdaExpression)expression).Body, arguments, out value));
        }
Esempio n. 7
0
        public void CanGetListByExpression()
        {
            Expression <Func <UserEntity, object> > expression = x => new Wrapper {
                Value = x.IsOnline
            };

            IEnumerable enumerable = Session.CreateCriteria <UserEntity>()
                                     .SetProjection(Projections.Property("IsOnline"))
                                     .List();

            IEnumerable <Wrapper> isOnline = ConstructionHelper.GetListByExpression <Wrapper>(expression, enumerable);

            Assert.That(isOnline.Count(), Is.EqualTo(4));
        }
Esempio n. 8
0
        public void GetObjectByExpressionConverterWorksForNewExpression()
        {
            Expression <Func <int, ObjectWrapper <int> > > newExpression = x => new ObjectWrapper <int>(x);

            Func <object, ObjectWrapper <int> > converter =
                ConstructionHelper.GetObjectByExpressionConverter <ObjectWrapper <int> >(newExpression);

            ObjectWrapper <int> test1 = converter(1);
            ObjectWrapper <int> test2 = converter(2);
            ObjectWrapper <int> test3 = converter(3);

            Assert.That(test1, Is.Not.Null);
            Assert.That(test2, Is.Not.Null);
            Assert.That(test3, Is.Not.Null);

            Assert.That(test1.Object, Is.EqualTo(1));
            Assert.That(test2.Object, Is.EqualTo(2));
            Assert.That(test3.Object, Is.EqualTo(3));
        }
        /// <inheritdoc />
        public override int Construct
        (
            Expression expression,
            object[] arguments,
            out object value,
            out bool wasHandled
        )
        {
            var methodCall = expression as MethodCallExpression;

            if (methodCall != null)
            {
                var lambda = ExpressionHelper.GetValue <LambdaExpression>(methodCall.Arguments[1]);

                if (lambda != null)
                {
                    wasHandled = true;

                    return(ConstructionHelper.Invoke(lambda, arguments, out value));
                }
            }

            return(base.Construct(expression, arguments, out value, out wasHandled));
        }
Esempio n. 10
0
 public override void OnResearchComplete(ColonyScienceState manager, EResearchCompletionReason reason)
 {
     manager.Colony.TemporaryData.SetAs("pipliz.builderlimit", 25000000);
     ConstructionHelper.SendPacket(manager.Colony);
 }
Esempio n. 11
0
 static void SendData(Players.Player player, Colony oldColony, Colony newColony)
 {
     ConstructionHelper.OnColonyChange(player, oldColony, newColony);
 }