Example #1
0
    public void Invoke (IModelContext modelContext, IEntityAction entityAction, TExtension extension)
    {
      if (modelContext.NotNull ()) {
        var context = TModelContext.CastTo (modelContext);

        var relationList = context.CategoryRelation
          .ToList ()
        ;

        if (entityAction.NotNull ()) {
          var action = TEntityAction.Request (entityAction);
          action.CollectionAction.SetCollection (relationList);

          if (action.Operation.HasExtension) {
            switch (extension) {
              case TExtension.Full: {
                  CollectionFull (context, action);
                }
                break;

              case TExtension.Minimum: {
                  CollectionMinimum (context, action);
                }
                break;

              case TExtension.ById:
              case TExtension.Idle:
              case TExtension.Many:
              case TExtension.Zap: {
                  Models.Infrastructure.THelper.FormatExtensionNotImplementedException (action);
                }
                break;
            }
          }

          else {
            Models.Infrastructure.THelper.FormatExtensionMustExistException (action);
          }
        }
      }
    }
Example #2
0
    public void Invoke (IModelContext modelContext, IEntityAction entityAction, Server.Models.Infrastructure.TExtension extension)
    {
      if (modelContext.NotNull ()) {
        var context = TModelContext.CastTo (modelContext);

        var relationList = context.CategoryRelation
          .ToList ()
        ;

        if (entityAction.NotNull ()) {
          var action = TEntityAction.Request (entityAction);
          action.CollectionAction.SetCollection (relationList);

          if (action.Operation.HasExtension) {
            Server.Models.Infrastructure.THelper.FormatExtensionNotImplementedException (action);
          }

          else {
            Insert (context, action);
          }
        }
      }
    }
Example #3
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);
    }
Example #4
0
    public void Invoke (IModelContext modelContext, IEntityAction entityAction, TExtension extension)
    {
      if (modelContext.NotNull ()) {
        var context = TModelContext.CastTo (modelContext);

        var relationList = context.CategoryRelation
          .ToList ()
        ;

        if (entityAction.NotNull ()) {
          var action = TEntityAction.Request (entityAction);
          action.CollectionAction.SetCollection (relationList);

          if (action.Operation.HasExtension) {
            switch (extension) {
              case TExtension.Settings: {
                  SelectSettings (context, action);
                }
                break;

              case TExtension.ById: {
                  SelectById (context, action);
                }
                break;

              case TExtension.Relation: {
                  SelectRelation (context, action);
                }
                break;

              case TExtension.Many: {
                  SelectMany (context, action);
                }
                break;

              case TExtension.Node: {
                  SelectNode (context, action);
                }
                break;

              case TExtension.Zap: {
                  SelectZap (context, action);
                }
                break;

              case TExtension.Summary: {
                  SelectSummary (context, action);
                }
                break;

              case TExtension.Idle: {
                  //SelectIdle (context, action);
                }
                break;

              case TExtension.Full: {
                  Server.Models.Infrastructure.THelper.FormatExtensionNotImplementedException (action);
                }
                break;
            }
          }

          else {
            Server.Models.Infrastructure.THelper.FormatExtensionMustExistException (action);
          }
        }
      }
    }