jeudi 22 mars 2012

Update ["Created by"] (Author) & ["Modified By"](Editor) in a sharepoint Item)

Si vous voulez changer les metadonnées d'un dossier et vous avez utilisé :
myfolder.Folders.Add(subFolder);
vous pouvez changer les "Metadata"  de cette façon:

CamlQuery camlQuery = new CamlQuery();
user=clientContext.Web.EnsureUser(UserName);              
clientContext.Load(user);           
clientContext.ExecuteQuery();
var items = YourSharepointList.GetItems(camlQuery);
clientContext.Load(items,item =>item.Where(i=>i.DisplayName==subFolder));
clientContext.ExecuteQuery();
Utils utils = new Utils(_clientContext);
if ((user != null)&& (items.Count>0))
{
 items[0]["Author"] = user;
 items[0]["Editor"] = user;
 items[0].Update();
 clientContext.ExecuteQuery();
}


Si vous voulez changer les metadonnées d'un DocSet  utilisez cette méthode après avoir créé le DocSet:

private void ManageFields(ListItem listItem)
        {
            Utils utils = new Utils(_clientContext);
            var user = FieldUserValue.FromUser(AuthorName);
            var xuser = utils.User_GetByLoginName(AuthorName);
            if ((xuser.ServerObjectIsNull != null))
                listItem["Author"] = user;
            user = FieldUserValue.FromUser(EditorName);
            xuser = utils.User_GetByLoginName(EditorName);
            if ((xuser.ServerObjectIsNull != null))                 listItem["Editor"] = user;             DateTime dt;             if (DateTime.TryParse(item.CreationDate, out dt))                 listItem["Created"] = dt;             if (DateTime.TryParse(item.LastModificationDate, out dt))                 listItem["Modified"] = dt;             listItem.Update();             clientContext.ExecuteQuery();         }

1 commentaire: