Пример #1
0
        public Task AddImage(ImageProvider image)
        {
            if (image == null)
                return TaskExtensions.CompletedTask;

            var onlineImage = image as OnlineImage;
            if (onlineImage != null)
                return AddImage(onlineImage);

            var tagImage = image as TagImage;
            if (tagImage != null)
                return AddImage(tagImage);

            throw new ArgumentException(nameof(image));
        }
Пример #2
0
        public static void AddImage(ImageProvider imageProvider, bool highPriorityQueue = false)
        {
            if (Images.Any(x => x.Guid == imageProvider.Guid))
            {
                if (ImportantImages.All(x => x.Guid != imageProvider.Guid) && highPriorityQueue)
                {
                    Images.Remove(imageProvider); //Level up
                    ImportantImages.Add(imageProvider);
                }
                return;
            }

            if (ImportantImages.Any(x => x.Guid == imageProvider.Guid))
                return;

            if (highPriorityQueue)
                ImportantImages.Add(imageProvider);
            else Images.Add(imageProvider);

            if (_serviceIsRunning)
                return;

            RunService().Forget();
        }
Пример #3
0
        private Task AddImageRow(ImageProvider image, int id, string data)
        {
            Collection.Add(image.Guid, image);

            using (
                var command =
                    new SQLiteCommand(
                        "INSERT INTO `Images` (Type, Guid, Data) VALUES (@type, @guid, @data)",
                        _connection))
            {
                command.Parameters.AddWithValue("@type", id);
                command.Parameters.AddGuid("@guid", image.Guid);
                command.Parameters.AddWithValue("@data", data);

                return command.ExecuteNonQueryAsync();
            }
        }