Exemplo n.º 1
0
        public Task <T> FirstOrDefaultAsync <T>(CancellationToken CancellationToken)
        {
            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                return(command.ExecuteReaderAsync(CommandBehavior.SingleRow, CancellationToken)
                       .ContinueWith(task =>
                {
                    T callback = default;

                    using (SqlDataReader reader = task.Result)
                    {
                        if (reader.HasRows)
                        {
                            callback = DatabaseReaderSelect <T> .FirstAsync(reader, CancellationToken);
                        }

                        reader.Close();
                    }

                    return callback;
                }));
            }
        }
Exemplo n.º 2
0
        public T FirstOrDefault <T>()
        {
            T callback = default;

            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleRow))
                {
                    if (reader.HasRows)
                    {
                        callback = DatabaseReaderSelect <T> .First(reader);
                    }

                    reader.Close();
                }
            }

            return(callback);
        }
Exemplo n.º 3
0
        public int Execute()
        {
            SqlCommand command = connection.GetCommand(commandText);

            DatabaseTrace.Append(command.CommandText, Constant.Query);

            if (connection.HasTransaction)
            {
                command.Transaction = connection.Transaction;
            }

            return(command.ExecuteNonQuery());
        }
Exemplo n.º 4
0
        public Task <int> ExecuteAsync(CancellationToken CancellationToken)
        {
            SqlCommand command = connection.GetCommand(commandText);

            DatabaseTrace.Append(command.CommandText, Constant.Query);

            if (connection.HasTransaction)
            {
                command.Transaction = connection.Transaction;
            }

            return(command.ExecuteNonQueryAsync(CancellationToken));
        }
Exemplo n.º 5
0
        public T SingleOrDefault <T>()
        {
            T result = default;

            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                object o = command.ExecuteScalar();

                result = Cast <T> .Scalar(o);
            }

            return(result);
        }
Exemplo n.º 6
0
        public Task <T> FirstAsync <T>(CancellationToken CancellationToken)
        {
            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                return(command.ExecuteReaderAsync(CommandBehavior.SingleRow, CancellationToken)
                       .ContinueWith(task =>
                {
                    bool read = false;
                    T callback = default;

                    using (SqlDataReader reader = task.Result)
                    {
                        if (reader.HasRows)
                        {
                            read = true;
                        }

                        if (read)
                        {
                            callback = DatabaseReaderSelect <T> .FirstAsync(reader, CancellationToken);
                        }

                        reader.Close();

                        if (!read)
                        {
                            throw new EntityDatabaseException($"Database Select FirstAsync {typeof(T).Name} Failed, Nothing Returned With Query : \n\n {commandText}");
                        }

                        return callback;
                    }
                }));
            }
        }
Exemplo n.º 7
0
        public Task <T> SingleAsync <T>(CancellationToken CancellationToken)
        {
            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                return(command.ExecuteScalarAsync(CancellationToken)
                       .ContinueWith(task =>
                {
                    bool read = false;
                    T result = default;

                    object o = task.Result;

                    if (o != null)
                    {
                        read = true;
                    }

                    if (read)
                    {
                        result = Cast <T> .Scalar(o);
                    }

                    if (!read)
                    {
                        throw new EntityDatabaseException($"Database Select Single {typeof(T).Name} Failed, Nothing Returned With Query : \n\n {commandText}");
                    }

                    return result;
                }));
            }
        }
Exemplo n.º 8
0
        public T[] ToArray <T>()
        {
            T[] callback;

            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.Default))
                {
                    callback = DatabaseReaderSelect <T> .ToArray(reader);

                    reader.Close();
                }
            }

            return(callback);
        }
Exemplo n.º 9
0
        public T First <T>()
        {
            bool read     = false;
            T    callback = default;

            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleRow))
                {
                    if (reader.HasRows)
                    {
                        read = true;
                    }

                    if (read)
                    {
                        callback = DatabaseReaderSelect <T> .First(reader);
                    }

                    reader.Close();
                }
            }

            if (!read)
            {
                throw new EntityDatabaseException($"Database Select First {typeof(T).Name} Failed, Nothing Returned With Query : \n\n {commandText}");
            }

            return(callback);
        }
Exemplo n.º 10
0
        public void Refresh(EntitySet <TEntity> EntitySet)
        {
            if (EntitySet.Context.ContextType != typeof(TEntityContext))
            {
                throw new EntityDatabaseException($"{this}, Write Failed, {EntitySet} Context Must Be Type Of {typeof(TEntityContext)}");
            }

            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                using (SqlDataReader reader = command.ExecuteReader(CommandBehavior.Default))
                {
                    EntityDatabaseReaderSelect <TEntityContext, TEntity, TEntityCallBack> .Refresh(reader, EntitySet);

                    reader.Close();
                }
            }
        }
Exemplo n.º 11
0
        public Task <T> SingleOrDefaultAsync <T>(CancellationToken CancellationToken)
        {
            using (SqlCommand command = connection.GetCommand(commandText))
            {
                DatabaseTrace.Append(command.CommandText, Constant.Query);

                if (connection.HasTransaction)
                {
                    command.Transaction = connection.Transaction;
                }

                return(command.ExecuteScalarAsync(CancellationToken)
                       .ContinueWith(task =>
                {
                    T result = default;

                    object o = task.Result;

                    result = Cast <T> .Scalar(o);

                    return result;
                }));
            }
        }
Exemplo n.º 12
0
 static DatabaseTrace()
 {
     tracer = new DatabaseTrace();
 }
Exemplo n.º 13
0
 public void BeginTransaction(IsolationLevel Isolation)
 {
     Transaction = Provider.BeginTransaction(Isolation); DatabaseTrace.Append($"{Isolation} Transaction Begin");
 }
Exemplo n.º 14
0
 public void CommitTransaction()
 {
     Transaction.Commit(); DatabaseTrace.Append($"Transaction Committd");
 }
Exemplo n.º 15
0
 public void RollbackTransaction()
 {
     Transaction.Rollback(); DatabaseTrace.Append($"Transaction Rollbacked");
 }
Exemplo n.º 16
0
 public void Open()
 {
     Provider.Open(); DatabaseTrace.Append($"Connection Opened");
 }
Exemplo n.º 17
0
 public void Close()
 {
     Provider.Close(); DatabaseTrace.Append($"Connection Closed");
 }