示例#1
0
        public void TestStringLiteralGetValue()
        {
            StringLiteral stringLiteral = new StringLiteral()
            {
                Value = "test"
            };

            Assert.AreEqual("test", stringLiteral.GetValue());
        }
 public override Value Visit(StringLiteral literal)
 {
     return(new StringValue(literal.GetValue()));
 }
示例#3
0
            public override LambdaExpression AssignFilter(Identifier attributeName, StringLiteral value)
            {
                string attr = attributeName.GetValue().ToString();
                string val  = value.GetValue().ToString();

                Expression <Func <Sku, bool> > result = p => false;


                switch (attributeName.GetIdentifierType())
                {
                case IdentifierType.AttributeName:
                    result =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(
                                                         r =>
                                                         r.Active && r.Attribute.AttributeName == attr &&
                                                         SqlMethods.Like(r.Value, val) == false)) != null;
                    break;

                case IdentifierType.Field1:
                    result =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(r => r.Active && SqlMethods.Like(r.Field2, val) == false)) != null;
                    break;

                case IdentifierType.Field2:
                    result =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(r => r.Active && SqlMethods.Like(r.Field2, val) == false)) != null;
                    break;

                case IdentifierType.Field3:
                    result =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(r => r.Active && SqlMethods.Like(r.Field3, val) == false)) != null;
                    break;

                case IdentifierType.Field4:
                    result =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(r => r.Active && SqlMethods.Like(r.Field4, val) == false)) != null;
                    break;

                case IdentifierType.Field5:
                    result =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(r => r.Active && SqlMethods.Like(r.Field5OrStatus, val) == false)) != null;
                    break;

                case IdentifierType.ANameValue:
                    result =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(
                                                         r => r.Active && SqlMethods.Like(r.Attribute.AttributeName, val) == false)) != null;
                    break;

                case IdentifierType.ItemID:
                    result = p => SqlMethods.Like(p.ItemID, val) == false;
                    break;

                case IdentifierType.AType:

                    if (val.Contains("Extended"))
                    {
                        result =
                            p =>
                            p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(r => r.Active && r.Attribute.Type != AttributeTypeEnum.Sku)) != null;
                    }
                    else
                    {
                        result =
                            p =>
                            p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(
                                                             r => r.Active && SqlMethods.Like(r.Attribute.AttributeType, val) == false)) != null;
                    }
                    break;
                }

                return(result);
            }
示例#4
0
            public override LambdaExpression AssignFilter(Identifier attributeName, StringLiteral value)
            {
                string attr = attributeName.GetValue().ToString();
                string val  = value.GetValue().ToString();

                Expression <Func <Sku, bool> > result = p => false;

                switch (attributeName.GetIdentifierType())
                {
                case IdentifierType.AttributeName:

                    //Sku should have the attribute first and then value should match with the input.
                    //stops considering blanks
                    Expression <Func <Sku, bool> > x =
                        p =>
                        p.EntityInfos.Any(
                            q =>
                            q.EntityDatas.Any(r => r.Active && r.Attribute.AttributeName == attr && r.Value == val)) ==
                        false;
                    Expression <Func <Sku, bool> > y =
                        p =>
                        p.EntityInfos.FirstOrDefault(q => q.EntityDatas.Any(r => r.Active && r.Attribute.AttributeName == val)) != null;
                    result = x.And(y);
                    break;

                case IdentifierType.Field1:
                    result =
                        p => p.EntityInfos.Any(q => q.EntityDatas.Any(r => r.Active && r.Field1 == val)) == false;
                    break;

                case IdentifierType.Field2:
                    result =
                        p => p.EntityInfos.Any(q => q.EntityDatas.Any(r => r.Active && r.Field2 == val)) == false;
                    break;

                case IdentifierType.Field3:
                    result =
                        p => p.EntityInfos.Any(q => q.EntityDatas.Any(r => r.Active && r.Field3 == val)) == false;
                    break;

                case IdentifierType.Field4:
                    result =
                        p => p.EntityInfos.Any(q => q.EntityDatas.Any(r => r.Active && r.Field4 == val)) == false;
                    break;

                case IdentifierType.Field5:
                    result =
                        p =>
                        p.EntityInfos.Any(q => q.EntityDatas.Any(r => r.Active && r.Field5OrStatus == val)) == false;
                    break;

                case IdentifierType.ANameValue:
                    result =
                        p =>
                        p.EntityInfos.Any(q => q.EntityDatas.Any(r => r.Active && r.Attribute.AttributeName == val)) ==
                        false;
                    break;

                case IdentifierType.ItemID:
                    result = p => p.ItemID != val;
                    break;

                case IdentifierType.AType:

                    if (val.Equals("Extended", StringComparison.CurrentCultureIgnoreCase))
                    {
                        result =
                            p =>
                            p.EntityInfos.Any(
                                q => q.EntityDatas.Any(r => r.Active && r.Attribute.Type != AttributeTypeEnum.Sku)) == false;
                    }
                    else
                    {
                        result =
                            p =>
                            p.EntityInfos.Any(
                                q =>
                                q.EntityDatas.Any(
                                    r =>
                                    r.Active && r.Attribute.Type != AttributeTypeEnum.Sku &&
                                    r.Attribute.AttributeType != val)) == false;
                    }
                    break;
                }

                return(result);
            }
示例#5
0
 public string Visit_StringLiteral(StringLiteral lit)
 {
     Visit_Literal(lit);
     return(lit.GetValue <string>());
 }