public override string BuildSql(SqlOptions sqlOptions)
        {
            var columnName = ColumnName.BuildSql(sqlOptions, FlowOptions.Construct(this));
            var value      = Value.BuildSql(sqlOptions, FlowOptions.Construct(this));

            return($"{columnName} = {value}");
        }
Example #2
0
    public DistributedFlow(IDistributedCache distributedCache, ILogger <DistributedFlow>?logger = default,
                           IOptions <FlowOptions>?options = default, ISerializer?serializer = default)
    {
        Instance = distributedCache ?? throw new ArgumentNullException(nameof(distributedCache));

        _activitySource = ActivitySourceContainer.Instance;
        _logger         = logger ?? new NullLogger <DistributedFlow>();
        _serializer     = serializer ?? new TextJsonSerializer();

        if (options is null)
        {
            _logger.LogNoOptionsProvided(nameof(DistributedFlow));
            Options = new FlowOptions();
        }
        else
        {
            Options = options.Value;
        }

        if (Options.DataLoggingLevel is DataLogLevel.Disabled)
        {
            _logger = new NullLogger <DistributedFlow>();
        }

        _executor = new Executor(_logger, Options.SuppressCacheExceptions, Options.DataLoggingLevel);
        _prefix   = CacheKeyHelper.GetFullCacheKeyPrefix(Options.CacheKeyPrefix, Options.CacheKeyDelimiter);

        _logSensitive = Options.DataLoggingLevel is DataLogLevel.Sensitive;
    }
Example #3
0
    public MemoryFlow(IMemoryCache memoryCache, ILogger <MemoryFlow>?logger = default,
                      IOptions <FlowOptions>?options = default)
    {
        _activitySource = ActivitySourceContainer.Instance;
        Instance        = memoryCache ?? throw new ArgumentNullException(nameof(memoryCache));
        _logger         = logger ?? new NullLogger <MemoryFlow>();

        if (options is null)
        {
            _logger.LogNoOptionsProvided(nameof(MemoryFlow));
            Options = new FlowOptions();
        }
        else
        {
            Options = options.Value;
        }

        if (Options.DataLoggingLevel is DataLogLevel.Disabled)
        {
            _logger = new NullLogger <MemoryFlow>();
        }

        _executor = new Executor(_logger, Options.SuppressCacheExceptions, Options.DataLoggingLevel);
        _prefix   = CacheKeyHelper.GetFullCacheKeyPrefix(Options.CacheKeyPrefix, Options.CacheKeyDelimiter);

        _logSensitive = Options.DataLoggingLevel is DataLogLevel.Sensitive;
    }
 public override string BuildSql(SqlOptions sqlOptions)
 {
     var columns = string.Join($",{sqlOptions.NewLine()}{sqlOptions.Indent()}",
         Entities.Select(e => e.BuildSql(sqlOptions, FlowOptions.Construct(this))));
     var command = sqlOptions.Command("VALUES");
     return $"{command} ({sqlOptions.NewLine()}{sqlOptions.Indent()}{columns}{sqlOptions.NewLine()})";
 }
Example #5
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var tableName = Entity.BuildSql(sqlOptions, FlowOptions.Construct(this));
            var command   = sqlOptions.Command("INSERT INTO");

            return($"{command} {tableName}");
        }
Example #6
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var command   = sqlOptions.Command("UPDATE");
            var tableName = TableName.BuildSql(sqlOptions, FlowOptions.Construct(this));

            return($"{command} {tableName}");
        }
Example #7
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            string joinType;

            switch (JoinType)
            {
            case JoinType.Inner:
                joinType = "INNER JOIN";
                break;

            case JoinType.Left:
                joinType = "LEFT JOIN";
                break;

            case JoinType.Right:
                joinType = "RIGHT JOIN";
                break;

            case JoinType.FullOuter:
                joinType = "FULL OUTER JOIN";
                break;

            default: throw new ArgumentException(nameof(JoinType));
            }

            var command = sqlOptions.Command(joinType);
            var table   = TableEntity.BuildSql(sqlOptions, FlowOptions.Construct(this));
            var on      = OnBlock.BuildSql(sqlOptions, FlowOptions.Construct(this));

            return($"{command} {table} {on}");
        }
Example #8
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var orders = Entities.Select(s => s.BuildSql(sqlOptions, FlowOptions.Construct(this)));
            var order  = string.Join($",{sqlOptions.NewLine()}{sqlOptions.Indent()}", orders);

            return($"{sqlOptions.Command("ORDER BY")}{sqlOptions.NewLine()}{sqlOptions.Indent()}{order}");
        }
Example #9
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var command  = sqlOptions.Command("ON");
            var property = Property.BuildSql(sqlOptions, FlowOptions.Construct(this));

            return($"{command} {property}");
        }
Example #10
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var entities = Entities.Select(c => $"{c.BuildSql(sqlOptions, FlowOptions.Construct(this))}");
            var columns  = string.Join($",{sqlOptions.NewLine()}{sqlOptions.Indent()}", entities);
            var command  = sqlOptions.Command("SET");

            return($"{command}{sqlOptions.NewLine()}{sqlOptions.Indent()}{columns}");
        }
Example #11
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var columnName   = ColumnName.BuildSql(sqlOptions, FlowOptions.Construct(this));
            var propertyName = PropertyName.BuildSql(sqlOptions, FlowOptions.Construct(this));
            var command      = "=";

            return($"{columnName} {command} {propertyName}");
        }
Example #12
0
 public FlowClient(IPAddress address, int port, FlowOptions options = null)
 {
     this.address = address;
     this.port    = port;
     this.options = options ?? new FlowOptions();
     flowBinder   = new FlowBinder(this.options);
     clientSocket = new TcpClient();
 }
Example #13
0
 public static void Clear()
 {
     FlowOptions = null;
     IsGitFlow = false;
     BranchName = string.Empty;
     SolutionDir = string.Empty;
     TortoiseGitProc = string.Empty;
     HasStash = false;
     Git = string.Empty;
 }
Example #14
0
        internal override string BuildSql(SqlOptions sqlOptions, FlowOptions flowOptions)
        {
            var r = base.BuildSql(sqlOptions, flowOptions);
            var parentPriority = flowOptions.Parent?.GetPriority(sqlOptions);
            var priority       = GetPriority(sqlOptions);

            if (priority > parentPriority)
            {
                return($"({r})");
            }
            return(r);
        }
Example #15
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var tableColumnName = TableColumn.BuildSql(sqlOptions, FlowOptions.Construct(this));

            if (Value?.Present(sqlOptions) != true)
            {
                return($"{tableColumnName}");
            }

            var property = Value.BuildSql(sqlOptions, FlowOptions.Construct(this));
            var command  = sqlOptions.Command("AS");

            return($"{tableColumnName} {command} {property}");
        }
Example #16
0
    public DoubleFlow(IDistributedFlow distributed, IMemoryFlow memory, ILogger <DoubleFlow>?logger = default, IOptions <FlowOptions>?options = default)
    {
        _distributed = distributed;
        _memory      = memory;

        if (options is null)
        {
            logger?.LogNoOptionsProvided(nameof(DoubleFlow));
            Options = new FlowOptions();
        }
        else
        {
            Options = options.Value;
        }
    }
Example #17
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            AndOperator andBlock;

            if (Entities.Count == 1 && Entities[0] is AndOperator andOperator)
            {
                andBlock = andOperator;
            }
            else
            {
                andBlock = new AndOperator(Entities);
            }
            andBlock.Indent  = true;
            andBlock.NewLine = true;
            var conditions = andBlock.BuildSql(sqlOptions, FlowOptions.Construct(this));
            var command    = sqlOptions.Command("WHERE");

            return($"{command}{sqlOptions.NewLine()}{sqlOptions.Indent("    ")}{conditions}");
        }
Example #18
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            string command;

            switch (sqlOptions.DatabaseType)
            {
            case SqlDatabaseType.MsSql:

                command = sqlOptions.Command("FETCH NEXT");
                break;

            default:
                command = sqlOptions.Command("LIMIT");
                break;
            }

            var limitBy = LimitBy?.BuildSql(sqlOptions, FlowOptions.Construct(this));

            return($"{command} {limitBy}");
        }
Example #19
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            string dir;

            switch (Direction)
            {
            case OrderDirection.Asc:
                dir = "ASC";
                break;

            case OrderDirection.Desc:
                dir = "DESC";
                break;

            default: return(null);
            }

            var command   = sqlOptions.Command(dir);
            var orderItem = OrderItemOperand?.BuildSql(sqlOptions, FlowOptions.Construct(this)) ??
                            throw new ArgumentException(nameof(OrderItemOperand));

            return($"{orderItem} {command}");
        }
Example #20
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var properties = string.Join($",{sqlOptions.NewLine()}{sqlOptions.Indent()}",
                                         Entities.Select(e => e.BuildSql(sqlOptions, FlowOptions.Construct(this))));
            string command;

            switch (sqlOptions.DatabaseType)
            {
            case SqlDatabaseType.Postgres:
            case SqlDatabaseType.SqLite:
                command = sqlOptions.Command("DO UPDATE SET");
                break;

            case SqlDatabaseType.MySql:
            case SqlDatabaseType.MariaDb:
                command = sqlOptions.Command("UPDATE");
                break;

            default: return(null);
            }

            return($"{command}{sqlOptions.NewLine()}{sqlOptions.Indent()}{properties}");
        }
Example #21
0
 public static void GetFlowOptions()
 {
     FlowOptions = GitHelper.GetFlowOptions();
     IsGitFlow = !string.IsNullOrEmpty(FlowOptions.MasterBranch);
 }
Example #22
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            if (sqlOptions == null)
            {
                throw new ArgumentException(nameof(sqlOptions));
            }

            CheckBeforeBuild(sqlOptions);
            IEnumerable <SqlBuilderEntity> data = new SqlBuilderEntity[]
            {
                CustomSqlBlocks[SqlSelectPosition.Start],
                SelectValuesBlock,
                CustomSqlBlocks[SqlSelectPosition.Select],
                FromTablesBlock,
                CustomSqlBlocks[SqlSelectPosition.From],
                JoinsBlock,
                CustomSqlBlocks[SqlSelectPosition.Join],
                WhereBlock,
                CustomSqlBlocks[SqlSelectPosition.Where],
                OrdersBlock,
                CustomSqlBlocks[SqlSelectPosition.Order],
                OffsetBlock,
                CustomSqlBlocks[SqlSelectPosition.Offset],
                LimitBlock,
                CustomSqlBlocks[SqlSelectPosition.Limit]
            };
            var commands = data.Where(b => CheckBlock(b, sqlOptions)).Select(b => b.BuildSql(sqlOptions, FlowOptions.Construct(this)));

            return(string.Join(sqlOptions.NewLine(), commands));
        }
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var tables  = string.Join(", ", Entities.Select(e => e.BuildSql(sqlOptions, FlowOptions.Construct(this))));
            var command = sqlOptions.Command("FROM");

            return($"{command} {tables}");
        }
Example #24
0
 public FlowServer(FlowOptions options = null)
 {
     this.options  = options ?? new FlowOptions();
     flowBinder    = new FlowBinder(this.options);
     serverClients = new FlowGroup(this);
 }
Example #25
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var joins = Entities.Select(e => e.BuildSql(sqlOptions, FlowOptions.Construct(this)));

            return(string.Join(sqlOptions.NewLine(), joins));
        }
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var operands = string.Join(", ",
                                       Operands.Where(operand => operand.Present(sqlOptions))
                                       .Select(operand => operand.BuildSql(sqlOptions, FlowOptions.Construct(this))));
            var command = sqlOptions.Command(Command);

            return($"{command}({operands})");
        }
Example #27
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var offset = Offset?.BuildSql(sqlOptions, FlowOptions.Construct(this));

            return($"{sqlOptions.Command("OFFSET")} {offset}");
        }
 internal virtual string BuildSql(SqlOptions sqlOptions, FlowOptions flowOptions)
 {
     return(BuildSql(sqlOptions));
 }
Example #29
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            var columns = string.Join($",{sqlOptions.NewLine()}{sqlOptions.Indent()}", Entities.Select(e => e.BuildSql(sqlOptions, FlowOptions.Construct(this))));

            return($"{sqlOptions.Command("SELECT")}{sqlOptions.NewLine()}{sqlOptions.Indent()}{columns}");
        }
Example #30
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            if (sqlOptions == null)
            {
                throw new ArgumentException(nameof(sqlOptions));
            }

            var updatedSqlOptions = ((SqlOptions)sqlOptions.Clone()).WithoutTableNames();

            CheckBeforeBuild(updatedSqlOptions);
            IEnumerable <SqlBuilderEntity> data = new SqlBuilderEntity[]
            {
                CustomBlocks[SqlDeletePosition.Start],
                DeleteFromBlock,
                CustomBlocks[SqlDeletePosition.From],
                WhereBlock,
                CustomBlocks[SqlDeletePosition.Where],
                ReturningsBlock,
                CustomBlocks[SqlDeletePosition.Return]
            };
            var commands = data.Where(b => CheckBlock(b, updatedSqlOptions)).Select(b => b.BuildSql(updatedSqlOptions, FlowOptions.Construct(this)));

            return(string.Join(sqlOptions.NewLine(), commands));
        }
Example #31
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            if (sqlOptions == null)
            {
                throw new ArgumentException(nameof(sqlOptions));
            }

            CheckBeforeBuild(sqlOptions);
            IEnumerable <SqlBuilderEntity> data = new SqlBuilderEntity[]
            {
                CustomBlocks[SqlInsertPosition.Start],
                InsertIntoBlock,
                CustomBlocks[SqlInsertPosition.Into],
                InsertColumnsBlock,
                InsertValuesBlock,
                CustomBlocks[SqlInsertPosition.Values],
                ConflictUpdate,
                CustomBlocks[SqlInsertPosition.Conflict],
                DoUpdateBlock,
                DoNothingBlock,
                CustomBlocks[SqlInsertPosition.Do],
                WhereBlock,
                CustomBlocks[SqlInsertPosition.Where],
                ReturningBlock,
                CustomBlocks[SqlInsertPosition.Return],
            };
            var commands = data.Where(b => CheckBlock(b, sqlOptions)).Select(b => b.BuildSql(sqlOptions, FlowOptions.Construct(this)));

            return(string.Join(sqlOptions.NewLine(), commands));
        }
Example #32
0
        public override string BuildSql(SqlOptions sqlOptions)
        {
            if (sqlOptions == null)
            {
                throw new ArgumentException(nameof(sqlOptions));
            }

            CheckBeforeBuild(sqlOptions);

            IEnumerable <SqlBuilderEntity> data = new SqlBuilderEntity[]
            {
                CustomBlocks[SqlUpdatePosition.Start],
                UpdateTableBlock,
                CustomBlocks[SqlUpdatePosition.Table],
                ColumnsBlock,
                CustomBlocks[SqlUpdatePosition.Columns],
                WhereBlock,
                CustomBlocks[SqlUpdatePosition.Where],
                ReturningsBlock,
                CustomBlocks[SqlUpdatePosition.Return]
            };
            var commands = data.Where(b => CheckBlock(b, sqlOptions)).Select(b => b.BuildSql(sqlOptions, FlowOptions.Construct(this)));

            return(string.Join(sqlOptions.NewLine(), commands));
        }