public void StoreAttachmentsInLiteDb <T>(long maxFilesize) where T : AweCsomeListItem, new() { var guid = StartMeasurement(); ClearAttachmentsInLiteDB <T>(); var allItems = _baseTable.SelectAllItems <T>(); foreach (var itemId in allItems.Select(q => q.Id)) { var files = _baseTable.SelectFilesFromItem <T>(itemId); if (files == null) { continue; } foreach (var file in files) { long fileSize = file.Length; if (fileSize > maxFilesize) { AttachFileToItem <T>(itemId, file.Filename, file.Stream, true, false); _log.Debug($"Attachment '{file.Filename}' NOT stored into LiteDB (too big: {EntityHelper.PrettyLong(fileSize)})"); } else { AttachFileToItem <T>(itemId, file.Filename, file.Stream, false, false); _log.Debug($"Stored Attachment '{file.Filename}' into LiteDB ({EntityHelper.PrettyLong(fileSize)})"); } } } StopMeasurement(guid, "StoreAttachmentsInLiteDb (SharePoint)"); }
public void ReadAllFromList <T>() where T : new() { if (!_aweCsomeTable.Exists <T>()) { return; } var spItems = _aweCsomeTable.SelectAllItems <T>(); _log.Debug($"Replacing Data in LiteDB for {typeof(T).Name} ({spItems.Count} items)"); DropCollection <T>(null); if (spItems.Count == 0) { return; } if (typeof(T).GetProperty("Id") == null) { _log.Warn($"Collection {typeof(T).Name} has no ID-Field. Cannot insert"); return; } var targetCollection = GetCollection <T>(); foreach (var item in spItems) { targetCollection.Insert(item); } }