Existem 2 tipos de eventos a serem manipulados no SharePoint: eventos -ing
e eventos -ed
.
Os eventos -ing
representam algo que está acontecendo e você pode cancelar: creating, saving, deleting, etc.. Para tratar estes eventos, você implementa o método ProcessEvent
da interface IRemoteEventService
.
Os eventos -ed
representam algo que aconteceu e você poderá mais cancelar: created, saved, deleted, etc.. Para tratar estes eventos, você implementa o método ProcessOneWayEvent
.
Então em seu caso, você usará um evento ed
e o tratará em ProcessOneWayEvent
.
Com a propriedade do argumento properties.ItemEventProperties
você poderá acessar o ListId
e o ListItemId
do item copiado para a sua lista.
Com isso, você poderá obter o arquivo representado na classe Microsoft.SharePoint.Client.File e usar o método File.CheckIn.
No fim, você terá algo assim:
public SPRemoteEventResult ProcessOneWayEvent(SPRemoteEventProperties properties)
{
SPRemoteEventResult result = new SPRemoteEventResult();
using (ClientContext clientContext = TokenHelper.CreateRemoteEventReceiverClientContext(properties))
{
if (clientContext != null)
{
clientContext.Load(clientContext.Web);
clientContext.ExecuteQuery();
var file = clientContext.Web.GetFileById(properties.ItemEventProperties.ListItemId);
clientContext.Load(file);
clientContext.ExecuteQuery();
file.CheckIn("CheckIn automático", CheckinType.MajorCheckIn);
clientContext.ExecuteQuery();
}
}
return result;
}