/// <summary>
        ///     Executes a request request to query values from several tables.
        /// </summary>
        /// <parameters>
        /// <param name="context">Description of the request.</param>
        /// </parameters>
        /// <returns>
        ///     The request result.
        /// </returns>
        public IJoinQueryResult Run(IJoinQueryContext context)
        {
            Debug.Assert(Connector != null);
            Debug.Assert(Connector.IsOpen);

            return(Execute(context));
        }
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
        public Task <IJoinQueryResult> RunAsync(IJoinQueryContext context)
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
        {
            Debug.Assert(Connector != null);
            Debug.Assert(Connector.IsOpen);

            return(Task.Run(() => Execute(context)));
        }
Beispiel #3
0
        public override IActiveOperation <IJoinQueryResultInternal> JoinQuery(IJoinQueryContext context)
        {
            IMySqlJoinQueryOperation Operation = new MySqlJoinQueryOperation(context);

            return(PrepareReaderOperation <IJoinQueryContext, IMySqlJoinQueryOperation, IJoinQueryOperation, IJoinQueryResult, IJoinQueryResultInternal>(
                       Operation,
                       (IJoinQueryOperation operation, IAsyncResult asyncResult) => new JoinQueryResult(operation, asyncResult),
                       (MySqlCommand command, IJoinQueryResultInternal result) => Operation.FinalizeOperation(command, result)));
        }
        /// <summary>
        ///     Executes a request request to query values from several tables.
        ///     This is the synchronous implementation.
        /// </summary>
        /// <parameters>
        /// <param name="context">Description of the request.</param>
        /// </parameters>
        /// <returns>
        ///     The request result.
        /// </returns>
        protected virtual IJoinQueryResult Execute(IJoinQueryContext context)
        {
            if (!IsOperationThreadStarted)
            {
                return(new JoinQueryResult(false, ResultError.ErrorFatalNoOperationThread));
            }

            IActiveOperation <IJoinQueryResultInternal> ActiveOperation = Connector.JoinQuery(context);
            IJoinQueryResultInternal Result = ActiveOperation.Result;

            FinalizeOrQueue(ActiveOperation);

            return(Result);
        }
Beispiel #5
0
 public abstract IActiveOperation <IJoinQueryResultInternal> JoinQuery(IJoinQueryContext context);
Beispiel #6
0
 public MySqlJoinQueryOperation(IJoinQueryContext context)
     : base(context)
 {
 }