Example #1
0
    public Task<IEntityAction> OperationAsync (IEntityAction entityAction)
    {
      var task = Task.Factory.StartNew (() =>
        {
          if (entityAction.NotNull ()) {
            IModelContext context = Request (entityAction.ConnectionString);

            if (context.NotNull ()) {
              try {
                if (ContainsOperation (entityAction)) {
                  Invoke (context, entityAction);
                }

                else {
                // operation not found!
                string msg = $"context: {entityAction.Operation.CategoryType.Category} - operation: {entityAction.Operation.Operation} - NOT FOUND!";
                  entityAction.Result.CopyFrom (new rr.Library.Helper.TValidationResult (msg));
                }
              }

              catch (Exception exception) {
                THelper.FormatException ("Operation", exception, entityAction);
              }
            }

            context.DisposeNow ();
          }

          return (entityAction);
        }, 
        CancellationToken.None,
        TaskCreationOptions.None,
        TaskScheduler.Default
      );

      return (task);
    }