Exemplo n.º 1
0
        /// <summary>
        ///     Executes a request to update values in a row of a table, with constraints on the previous values.
        ///     This is the synchronous implementation.
        /// </summary>
        /// <parameters>
        /// <param name="context">Description of the request.</param>
        /// </parameters>
        /// <returns>
        ///     The request result.
        /// </returns>
        protected virtual IUpdateResult Execute(IUpdateContext context)
        {
            if (!IsOperationThreadStarted)
            {
                return(new UpdateResult(false, ResultError.ErrorFatalNoOperationThread));
            }

            IActiveOperation <IUpdateResultInternal> ActiveOperation = Connector.Update(context);
            IUpdateResultInternal Result = ActiveOperation.Result;

            FinalizeOrQueue(ActiveOperation);

            return(Result);
        }
 public virtual string FinalizeOperation(MySqlCommand command, IUpdateResultInternal result)
 {
     try
     {
         int ModifiedLines = command.EndExecuteNonQuery(result.AsyncResult);
         if (ModifiedLines > 0)
         {
             result.SetCompleted(true);
             return($"succeeded, {ModifiedLines} row(s) modified");
         }
         else
         {
             result.SetCompleted(false, ResultError.ErrorNoRowModified);
             return("failed");
         }
     }
     catch
     {
         result.SetCompleted(false, ResultError.ErrorExceptionCompletingUpdate);
         throw;
     }
 }