Organization publishers, subscriptions to publishers

This commit is contained in:
2025-05-12 21:48:16 +08:00
parent b20bc3c443
commit b275f06061
14 changed files with 6197 additions and 19 deletions

View File

@ -71,21 +71,21 @@ public class StickerService(AppDatabase db, FileService fs, IMemoryCache cache)
public async Task<Sticker?> LookupStickerByIdentifierAsync(string identifier)
{
// Try to get from cache first
string cacheKey = $"StickerLookup_{identifier}";
identifier = identifier.ToLower();
// Try to get from the cache first
var cacheKey = $"StickerLookup_{identifier}";
if (cache.TryGetValue(cacheKey, out Sticker? cachedSticker))
{
return cachedSticker;
}
// If not in cache, fetch from database
// If not in cache, fetch from the database
IQueryable<Sticker> query = db.Stickers
.Include(e => e.Pack)
.Include(e => e.Image);
query = Guid.TryParse(identifier, out var guid)
? query.Where(e => e.Id == guid)
: query.Where(e => e.Pack.Prefix + e.Slug == identifier);
: query.Where(e => (e.Pack.Prefix + e.Slug).ToLower() == identifier);
var sticker = await query.FirstOrDefaultAsync();