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)); }
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(); }
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(); } }