public static IEnumerable<Comic> GetComicsForList(BCRUser user, Guid id) { var list = Program.Database.ComicLists.FindItem(id); if (list == null) { return Enumerable.Empty<Comic>(); } return list.GetBooks().Select(x => x.ToComic(user)); }
// Get all comics from a specific series public static IEnumerable<Comic> GetComicsFromSeries(BCRUser user, Guid id) { var books = ComicRackWebViewer.Plugin.Application.GetLibraryBooks(); var book = books.Where(x => x.Id == id).First(); var series = books.Where(x => x.ShadowSeries == book.ShadowSeries) .Where(x => x.ShadowVolume == book.ShadowVolume) .Select(x => x.ToComic(user)) .OrderBy(x => x.ShadowVolume) .ThenBy(x => x.ShadowNumber).ToList(); return series; }
/* * */ public static IEnumerable<Comic> GetSeries(BCRUser user, Guid id, NancyContext context) { var books = ComicRackWebViewer.Plugin.Application.GetLibraryBooks(); var book = books.Where(x => x.Id == id).First(); var series = books.Where(x => x.ShadowSeries == book.ShadowSeries) .Where(x => x.ShadowVolume == book.ShadowVolume) .Select(x => x.ToComic(user)) .OrderBy(x => x.ShadowNumber).ToList(); int totalCount = 0; return context.ApplyODataUriFilter(series, ref totalCount).Cast<Comic>(); }
// TODO: add timeout for apikey. public static IUserIdentity GetUserFromApiKey(string apiKey) { if (apiKey == null) return null; BCRUser user; if (users.TryGetValue(apiKey, out user)) return user; NameValueCollection result = Database.Instance.QuerySingle("SELECT user.id as id, username, apikey, fullname FROM user JOIN user_apikeys ON user.id=user_apikeys.user_id WHERE apikey = '" + apiKey + "' LIMIT 1;"); if (result == null) return null; user = new BCRUser { UserName = result["username"], UserId = Convert.ToInt32(result["id"]), FullName = result["fullname"] }; user.Initialize(); lock (lockObject) { users[apiKey] = user; } return user; }
public static Comic GetComic(BCRUser user, Guid id) { try { var comic = GetComics().First(x => x.Id == id); return comic.ToComic(user); } catch//(Exception e) { //MessageBox.Show(e.ToString()); return null; } }