static async Task <OperationResult <T> > CUDOperationAsync <T>(Func <string, CommandType, IEnumerable <KeyValuePair <string, object> >, Task <OperationResult <T> > > cudOperation, IAliasedCommandTypeDataOrder dataOrder, Func <Type> declaringTypeCallback, string callingMethod)
        {
            if (dataOrder.Query.IsMeaningful() == false)
            {
                return(new OperationResult <T>(false, default(T)));
            }

            OperationResult <T> operation = await cudOperation(dataOrder.Query, dataOrder.CommandType, dataOrder.Parameters);

            if (operation.HadErrors)
            {
                Perform.ExceptionTypeAndMethodRecord(operation, declaringTypeCallback(), callingMethod);
            }
            return
                (operation.HadErrors ?
                 new OperationResult <T>(operation.Exceptions) :
                 new OperationResult <T>(operation.Result));
        }