// ordering is an implementation detail defined by getComicQuery // returns null if data is invalid private Comic ComicFromRow(SQLiteDictionaryReader reader) { var path = reader.GetString(key_path); var title = reader.GetString(key_title); var author = reader.GetString(key_author); var category = reader.GetString(key_category); var rowid = reader.GetInt32("rowid"); var metadata = this.ComicMetadataFromRow(reader); try { var comic = new Comic(title, author, category, path, metadata, validate: false); return(comic); } catch (ComicLoadException) { this.InvalidateComic(rowid); } return(null); }
private Metadata ComicMetadataFromRow(SQLiteDictionaryReader reader) { var rowid = reader.GetInt32("rowid"); var m = new Metadata { Title = reader.GetStringOrNull(key_display_title), Author = reader.GetStringOrNull(key_display_author), Category = reader.GetStringOrNull(key_display_category), ThumbnailSource = reader.GetStringOrNull(key_thumbnail_source), Loved = reader.GetBoolean(key_loved), Disliked = reader.GetBoolean(key_disliked), Tags = new HashSet <string>(this.ReadTags(rowid)), DateAdded = reader.GetString(key_date_added) }; return(m); }