Example #1
0
        public override void InvokeMethod(ClientObject clientObject, string methodName, object[] methodParameters)
        {
            var context = clientObject.Context;
            var query   = new ClientActionInvokeMethod(clientObject, methodName, methodParameters);

            context.AddQuery(query);
        }
        public override void ProcessUserResource(object parentObject, object userResource, ValueForUICulture locValue)
        {
            var typedUserResource = userResource as ClientObject;

            if (typedUserResource == null)
            {
                throw new SPMeta2Exception("userResource should be an instance of ClientObject");
            }

            if (typedUserResource.GetType().Name.ToUpper() != "UserResource".ToUpper())
            {
                throw new SPMeta2Exception("userResource should be an instance of UserResource");
            }

            var context     = typedUserResource.Context;
            var cultureInfo = GetUserResourceCultureInfo(locValue);

            var query = new ClientActionInvokeMethod(typedUserResource, "SetValueForUICulture", new object[]
            {
                cultureInfo.Name,
                locValue.Value,
            });

            context.AddQuery(query);
        }
        public void Update()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "Update", null);

            context.AddQuery(query);
        }
        public void UndoCheckOut()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "UndoCheckOut", null);

            context.AddQuery(query);
        }
Example #5
0
        public void DeleteWebPart()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "DeleteWebPart", null);

            context.AddQuery(query);
        }
Example #6
0
        public void RecreateMissingDefaultRoleDefinitions()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "RecreateMissingDefaultRoleDefinitions", null);

            context.AddQuery(query);
        }
        public ClientResult <Guid> Add(AlertCreationInformation alertCreationInformation)
        {
            ClientRuntimeContext context = base.Context;

            if (base.Context.ValidateOnClient)
            {
                if (alertCreationInformation == null)
                {
                    throw ClientUtility.CreateArgumentNullException("alertCreationInformation");
                }
                if (alertCreationInformation != null && alertCreationInformation.User == null)
                {
                    throw ClientUtility.CreateArgumentNullException("alertCreationInformation.User");
                }
            }
            ClientAction clientAction = new ClientActionInvokeMethod(this, "Add", new object[]
            {
                alertCreationInformation
            });

            context.AddQuery(clientAction);
            ClientResult <Guid> clientResult = new ClientResult <Guid>();

            context.AddQueryIdAndResultObject(clientAction.Id, clientResult);
            return(clientResult);
        }
Example #8
0
        public void MoveWebPartTo(string zoneID, int zoneIndex)
        {
            ClientRuntimeContext context = base.Context;

            if (base.Context.ValidateOnClient)
            {
                if (zoneID == null)
                {
                    throw ClientUtility.CreateArgumentNullException("zoneID");
                }
                if (zoneID != null && zoneID.Length == 0)
                {
                    throw ClientUtility.CreateArgumentException("zoneID");
                }
                if (zoneID != null && zoneID.Length > 64)
                {
                    throw ClientUtility.CreateArgumentException("zoneID");
                }
                if (zoneIndex < 0)
                {
                    throw ClientUtility.CreateArgumentException("zoneIndex");
                }
            }
            ClientAction query = new ClientActionInvokeMethod(this, "MoveWebPartTo", new object[]
            {
                zoneID,
                zoneIndex
            });

            context.AddQuery(query);
        }
Example #9
0
        public void SaveWebPartChanges()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "SaveWebPartChanges", null);

            context.AddQuery(query);
        }
Example #10
0
        public virtual void ResetRoleInheritance()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "ResetRoleInheritance", null);

            context.AddQuery(query);
        }
        public void DeleteObject()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "DeleteObject", null);

            context.AddQuery(query);
            base.RemoveFromParentCollection();
        }
        public void SystemUpdate()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "SystemUpdate", null);

            context.AddQuery(query);
            this.RefreshLoad();
        }
        public void RemoveAll()
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "RemoveAll", null);

            context.AddQuery(query);
            this.OnRemoveAll();
        }
        public void RemoveById(int id)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "RemoveById", new object[]
            {
                id
            });

            context.AddQuery(query);
        }
        public void RemoveByLoginName(string loginName)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "RemoveByLoginName", new object[]
            {
                loginName
            });

            context.AddQuery(query);
        }
        public void SetShowInNewForm(bool value)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "SetShowInNewForm", new object[]
            {
                value
            });

            context.AddQuery(query);
        }
        public void SetComplianceTagWithNoHold(string complianceTag)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "SetComplianceTagWithNoHold", new object[]
            {
                complianceTag
            });

            context.AddQuery(query);
        }
Example #18
0
        public void AddSubFolder(string leafName)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "AddSubFolder", new object[]
            {
                leafName
            });

            context.AddQuery(query);
        }
Example #19
0
        public void Reorder(string[] internalNames)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "Reorder", new object[]
            {
                internalNames
            });

            context.AddQuery(query);
        }
Example #20
0
        public void MoveTo(string newUrl)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "MoveTo", new object[]
            {
                newUrl
            });

            context.AddQuery(query);
        }
        public void UpdateAndPushChanges(bool pushChangesToLists)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "UpdateAndPushChanges", new object[]
            {
                pushChangesToLists
            });

            context.AddQuery(query);
        }
        public void Update(bool updateChildren)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "Update", new object[]
            {
                updateChildren
            });

            context.AddQuery(query);
        }
        public void DeleteAlert(Guid idAlert)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "DeleteAlert", new object[]
            {
                idAlert
            });

            context.AddQuery(query);
        }
        public void DeleteByID(int vid)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "DeleteByID", new object[]
            {
                vid
            });

            context.AddQuery(query);
        }
        public void CancelUpload(Guid uploadId)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "CancelUpload", new object[]
            {
                uploadId
            });

            context.AddQuery(query);
        }
        public void DeleteAlertAtIndex(int index)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "DeleteAlertAtIndex", new object[]
            {
                index
            });

            context.AddQuery(query);
        }
Example #27
0
        public void ImportRoleDefinitionBindings(RoleDefinitionBindingCollection roleDefinitionBindings)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "ImportRoleDefinitionBindings", new object[]
            {
                roleDefinitionBindings
            });

            context.AddQuery(query);
        }
        public void Deny(string comment)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "Deny", new object[]
            {
                comment
            });

            context.AddQuery(query);
        }
        public ClientResult <Stream> OpenBinaryStream()
        {
            ClientRuntimeContext context      = base.Context;
            ClientAction         clientAction = new ClientActionInvokeMethod(this, "OpenBinaryStream", null);

            context.AddQuery(clientAction);
            ClientResult <Stream> clientResult = new ClientResult <Stream>();

            context.AddQueryIdAndResultObject(clientAction.Id, clientResult);
            return(clientResult);
        }
Example #30
0
        public virtual void BreakRoleInheritance(bool copyRoleAssignments, bool clearSubscopes)
        {
            ClientRuntimeContext context = base.Context;
            ClientAction         query   = new ClientActionInvokeMethod(this, "BreakRoleInheritance", new object[]
            {
                copyRoleAssignments,
                clearSubscopes
            });

            context.AddQuery(query);
        }
        public override void ProcessUserResource(object parentObject, object userResource, ValueForUICulture locValue)
        {
            var typedUserResource = userResource as ClientObject;

            if (typedUserResource == null)
                throw new SPMeta2Exception("userResource should be an instance of ClientObject");

            if (typedUserResource.GetType().Name.ToUpper() != "UserResource".ToUpper())
                throw new SPMeta2Exception("userResource should be an instance of UserResource");

            var context = typedUserResource.Context;
            var cultureInfo = GetUserResourceCultureInfo(locValue);

            var query = new ClientActionInvokeMethod(typedUserResource, "SetValueForUICulture", new object[]
            {
                        cultureInfo.Name, 
                        locValue.Value,
            });

            context.AddQuery(query);
        }
        public override void DeployModel(object modelHost, DefinitionBase model)
        {
            var webModel = model.WithAssertAndCast<SupportedUICultureDefinition>("model", value => value.RequireNotNull());
            var typedHost = modelHost.WithAssertAndCast<WebModelHost>("model", value => value.RequireNotNull());

            var web = typedHost.HostWeb;
            var context = web.Context;

            context.Load(web);
            context.Load(web, w => w.SupportedUILanguageIds);

            context.ExecuteQuery();

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model = null,
                EventType = ModelEventType.OnProvisioning,
                Object = web,
                ObjectType = typeof(Web),
                ObjectDefinition = model,
                ModelHost = modelHost
            });

            var shouldUpdate = false;
            var currentLanguages = web.SupportedUILanguageIds;

            if (!currentLanguages.Contains(webModel.LCID))
            {
                // if running nice CSOM, so that method is there and a few web's props
                var supportedRuntime = ReflectionUtils.HasProperty(web, "IsMultilingual")
                                       && ReflectionUtils.HasMethod(web, "AddSupportedUILanguage");


                if (supportedRuntime)
                {
                    // TODO, wrap up into extensions

                    // that's the trick to get all working on CSOM SP2013 SP1+
                    // once props are there, we setup them
                    // if not, giving critical messages in logs

                    // pushing IsMultilingual to true if false
                    var objectData = GetPropertyValue(web, "ObjectData");
                    var objectProperties = GetPropertyValue(objectData, "Properties") as Dictionary<string, object>;

                    var isMultilingual = Convert.ToBoolean(objectProperties["IsMultilingual"]);

                    if (!isMultilingual)
                    {
                        web.Context.AddQuery(new ClientActionSetProperty(web, "IsMultilingual", true));
                    }

                    // adding languages 
                    var query = new ClientActionInvokeMethod(web, "AddSupportedUILanguage", new object[]
                    {
                        webModel.LCID
                    });

                    context.AddQuery(query);

                    // upating the web
                    web.Update();

                    shouldUpdate = true;
                }
                else
                {
                    TraceService.Critical((int)LogEventId.ModelProvisionCoreCall,
                        "CSOM runtime doesn't have Web.IsMultilingual and Web.AddSupportedUILanguage() methods support. Update CSOM runtime to a new version. SupportedUILanguage provision is skipped");
                }
            }

            InvokeOnModelEvent(this, new ModelEventArgs
            {
                CurrentModelNode = null,
                Model = null,
                EventType = ModelEventType.OnProvisioned,
                Object = web,
                ObjectType = typeof(Web),
                ObjectDefinition = model,
                ModelHost = modelHost
            });

            if (shouldUpdate)
            {
                context.ExecuteQueryWithTrace();
            }
        }