예제 #1
0
 private void ProvisionLists(AppManifestBase manifest)
 {
     if (manifest.ListCreators != null && manifest.ListCreators.Count > 0)
     {
         var lm = new ListInstanceManager(_ctx, _web, _isHostWeb)
         {
             Creators = manifest.ListCreators
         };
         lm.Notify += Provisioner_Notify;
         lm.CreateAll();
     }
 }
        public void Deprovision(ClientContext ctx, Web web, AppManifestBase manifest)
        {
            Ctx       = ctx;
            Web       = web;
            IsHostWeb = !WebHasAppinstanceId(Web);

            var customActionManager = new CustomActionManager(ctx)
            {
                CustomActions = manifest.CustomActionCreators
            };

            customActionManager.DeleteAll();

            var fileManager = new FileManager
            {
                Folders  = manifest.Folders,
                Creators = manifest.FileCreators
            };

            fileManager.DeleteAll(ctx, web);

            var listManager = new ListInstanceManager(ctx, IsHostWeb)
            {
                Creators = manifest.ListCreators
            };

            listManager.DeleteAll();

            var contentTypeManager = new ContentTypeManager
            {
                Creators = manifest.ContentTypeCreators
            };

            contentTypeManager.DeleteAll(ctx);

            var fieldManager = new FieldManager
            {
                FieldDefinitions = manifest.Fields
            };

            fieldManager.DeleteAll(ctx);

            var remoteEventRegistrationManager = new RemoteEventRegistrationManager();

            remoteEventRegistrationManager.DeleteAll(ctx, web, manifest.RemoteEventRegistrationCreators);
        }