private Item GetConnectedItem(Item parentItem, SharepointItem listItem, BaseList list) { if (this.idResolver != null) { return(parentItem.Database.GetItem(this.idResolver(parentItem, listItem, list))); } List <Func <Item, SharepointItem, BaseList, ID> > canditates = new List <Func <Item, SharepointItem, BaseList, ID> > { (item, baseItem, baseList) => Utils.GetID(item.ID.ToString(), baseItem.UniqueID), (item, baseItem, baseList) => Utils.GetID(item.ID.ToString(), UniqueIdV10(baseItem, baseList)) }; foreach (var canditate in canditates) { var item = parentItem.Database.GetItem(canditate(parentItem, listItem, list)); { if (item != null) { this.idResolver = canditate; return(item); } } } return(null); }
protected void Process( [NotNull] Item integrationItem, [NotNull] ObjectModel.Entities.Items.BaseItem sourceSharepointItem, [NotNull] SynchContext synchContext) { Assert.ArgumentNotNull(integrationItem, "integrationItem"); Assert.ArgumentNotNull(sourceSharepointItem, "sourceSharepointItem"); Assert.ArgumentNotNull(synchContext, "synchContext"); var sourceSharepointDocumentItem = sourceSharepointItem as DocumentItem; if (sourceSharepointDocumentItem == null) { return; } var sharepointDataModifiedField = integrationItem.Fields[FieldNames.SharepointDataModified]; if (sharepointDataModifiedField != null && DateUtil.ToServerTime(new DateField(sharepointDataModifiedField).DateTime) == DateUtil.ToServerTime(System.Convert.ToDateTime(sourceSharepointDocumentItem["ows_Modified"]).ToUniversalTime())) { return; } IntegrationItemProvider.UpdateBlob(integrationItem, sourceSharepointDocumentItem, synchContext); }
private static string UniqueIdV10(SharepointItem baseItem, BaseList list) { var values = new StringCollection { baseItem.WebUrl.ToString(), list.Name, baseItem.ID, OldFolder(baseItem, list) }; return(StringUtil.StringCollectionToString(values)); }
private static string OldFolder(SharepointItem baseItem, BaseList list) { string fileDirRef = StringUtil.RemovePrefix('/', StringUtil.RemovePostfix('/', baseItem["ows_FileDirRef"])); int webUrlLength = StringUtil.RemovePrefix('/', StringUtil.RemovePostfix('/', baseItem.WebUrl.PathAndQuery)).Length; int listStartIndex = fileDirRef.IndexOf(list.Name, webUrlLength + 1, StringComparison.Ordinal); int folderStartIndex = listStartIndex + list.Name.Length + 1; if (folderStartIndex >= fileDirRef.Length) { return(string.Empty); } return(fileDirRef.Substring(folderStartIndex)); }
public ComparableUpdateSharepointItemAction(ObjectModel.Entities.Items.BaseItem sharepointItem, IntegrationItem item, SynchContext synchContext) : base(sharepointItem, item, synchContext) { }
public UpdateSharepointItemAction(ObjectModel.Entities.Items.BaseItem sharepointItem, IntegrationItem item, SynchContext synchContext) : base(item, synchContext) { this.sharepointItem = sharepointItem; }
public ComparableUpdateIntegrationItemAction(IntegrationItem item, ObjectModel.Entities.Items.BaseItem sharepointItem, SynchContext synchContext, ProcessIntegrationItemsOptions options) : base(item, sharepointItem, synchContext, options) { }
/// <summary> /// Initializes a new instance of the <see cref="IntegrationItemProviderTests"/> class. /// </summary> public IntegrationItemProviderTests() { this.sourceSharepointItem = Substitute.For <ObjectModel.Entities.Items.BaseItem>(string.Empty, new Uri("http://uri.uri"), this.context); }
public UpdateIntegrationItemAction(IntegrationItem item, ObjectModel.Entities.Items.BaseItem sharepointItem, SynchContext synchContext, ProcessIntegrationItemsOptions options) : base(sharepointItem, synchContext) { this.item = item; this.options = options; }