internal PnP.Core.Model.SharePoint.IContentType GetContentType(PnPBatch batch, PnP.Core.Model.SharePoint.IList list) { PnPCore.IContentType returnCt = null; if (_contentType is object) { var stringId = _contentType.EnsureProperty(c => c.StringId); var batchedCt = batch.GetCachedContentType(stringId); if (batchedCt != null) { return(batchedCt); } returnCt = list.ContentTypes.FirstOrDefault(c => c.StringId == stringId); } var id = _idOrName.ToLower().StartsWith("0x0") ? _idOrName : null; if (!string.IsNullOrEmpty(id)) { var batchedCt = batch.GetCachedContentType(id); if (batchedCt != null) { return(batchedCt); } returnCt = list.ContentTypes.FirstOrDefault(c => c.Id == id); } else { var batchedCt = batch.GetCachedContentType(_idOrName); if (batchedCt != null) { return(batchedCt); } returnCt = list.ContentTypes.FirstOrDefault(c => c.Name == _idOrName); } if (returnCt != null) { returnCt.EnsureProperties(ct => ct.StringId); batch.CacheContentType(returnCt); } return(returnCt); }
public ContentTypePipeBind(PnPCore.IContentType contentType) { _coreContentType = contentType ?? throw new ArgumentNullException(nameof(contentType)); }