Example #1
0
        public void Quote_WithString_QuotesString()
        {
            var dialect = new SQLiteDialect();

            var quoted = dialect.Quote("product");

            quoted.Should().Be("\"product\"");
        }
Example #2
0
        private void InitGraphTableColumn(ColumnMetadata columnMetadata, string tableName)
        {
            var columnName = columnMetadata.FriendlyColumnName;


            var type        = ResolveColumnMetaType(columnMetadata.DataType);
            var graphQLType = type.GetGraphTypeFromType(true);

            FieldType columnField;

            if (columnMetadata.FkReference)
            {
                if (columnMetadata.IsOneToManyRelationship)
                {
                    columnField = new FieldType
                    {
                        Name         = columnName,
                        Description  = columnMetadata.TargetTableName,      //Using description to store the key to the dictionary for later
                        Type         = typeof(ListGraphType <EntityType>),
                        ResolvedType = EntitiesAlreadyCreated.ContainsKey(columnMetadata.TargetTableName)
                            ? EntitiesAlreadyCreated[columnMetadata.TargetTableName] : null
                    };
                    columnField.SqlJoin(delegate(JoinBuilder @join, IReadOnlyDictionary <string, object> arguments,
                                                 IResolveFieldContext context, SqlTable node)
                    {
                        @join.Raw(
                            $"{_dialect.Quote(columnName)}.{_dialect.Quote(columnMetadata.ChildFkName)} = {_dialect.Quote(columnMetadata.SourceTableName)}.{_dialect.Quote(columnMetadata.ParentFkName)}",
                            null,
                            $"LEFT JOIN {_dialect.Quote(columnMetadata.TargetTableName)} as {_dialect.Quote(columnName)}");
                    });
                    //columnField.Resolver = new Helpers.NameFieldResolver();
                    AddField(columnField);
                }
                else
                {
                    columnField = new FieldType
                    {
                        Name         = columnName,
                        Type         = typeof(EntityType),
                        ResolvedType = EntitiesAlreadyCreated.ContainsKey(columnMetadata.TargetTableName)
                            ? EntitiesAlreadyCreated[columnMetadata.TargetTableName] : null
                    };
                    columnField.SqlJoin((join, arguments, context, node) => join.On(columnMetadata.ParentFkName, columnMetadata.ChildFkName));
                    columnField.SqlColumn();
                    //columnField.Resolver = new Helpers.NameFieldResolver();
                    AddField(columnField);
                }
            }
            else
            {
                columnField = new FieldType
                {
                    Name = columnName,
                    Type = columnName == "id" ? typeof(IdGraphType) : graphQLType,
                    //ResolvedType = new ObjectGraphType()
                };
                columnField.SqlColumn();
                //columnField.Resolver = new Helpers.NameFieldResolver();
                AddField(columnField);
            }


            FillArgs(columnName);
        }