public ApiAppsPublishImpl(IRegistrationOwnership registrationOwnership, ICategorizationPermission categorizationPermission, Uri imagesUri)
     : base(registrationOwnership)
 {
     _categorizationPermission = categorizationPermission;
     _imagesUri = imagesUri;
 }
        async Task InvokePOST(IOwinContext context)
        {
            IRegistrationOwnership    registrationOwnership    = CreateRegistrationOwnership(context);
            ICategorizationPermission categorizationPermission = CategorizationPermission();

            switch (context.Request.Path.Value)
            {
            case "/apiapp/checkaccess":
            {
                CheckAccessImpl uploader = new CheckAccessImpl(registrationOwnership);
                await uploader.CheckAccess(context);

                break;
            }

            case "/apiapp/upload":
            {
                PublishImpl uploader = new ApiAppsPublishImpl(registrationOwnership, categorizationPermission);
                await uploader.Upload(context);

                break;
            }

            case "/apiapp/edit":
            {
                PublishImpl uploader = new ApiAppsPublishImpl(registrationOwnership, categorizationPermission);
                await uploader.Edit(context);

                break;
            }

            case "/delete":
            {
                DeleteImpl deleteImpl = new DeleteImpl(registrationOwnership);
                await deleteImpl.Delete(context);

                break;
            }

            case "/tenant/enable":
            {
                PublishImpl uploader = new ApiAppsPublishImpl(registrationOwnership);
                await uploader.TenantEnable(context);

                break;
            }

            case "/tenant/disable":
            {
                PublishImpl uploader = new ApiAppsPublishImpl(registrationOwnership);
                await uploader.TenantDisable(context);

                break;
            }

            case "/catalog/powershell":
            {
                PublishImpl uploader = new PowerShellPublishImpl(registrationOwnership);
                await uploader.Upload(context);

                break;
            }

            default:
            {
                await context.Response.WriteAsync("NotFound");

                context.Response.StatusCode = (int)HttpStatusCode.NotFound;
                break;
            }
            }
        }
 public ApiAppsPublishImpl(IRegistrationOwnership registrationOwnership, ICategorizationPermission categorizationPermission)
     : base(registrationOwnership)
 {
     _categorizationPermission = categorizationPermission;
 }