コード例 #1
0
        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)");
        }
コード例 #2
0
        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);
            }
        }