AuthorBuddy/Services/QuickMarkdownService.cs

77 lines
2.2 KiB
C#
Raw Normal View History

2026-07-04 10:32:35 +02:00
using AuthorBuddy.Web.Data;
using LiteDB;
namespace AuthorBuddy.Web.Services;
public class QuickMarkdownService : IQuickMarkdownService
{
private readonly ILiteDatabase _db;
public QuickMarkdownService(ILiteDatabase db)
{
_db = db;
}
public Task<List<QuickMarkdownEntry>> GetAllAsync(int userId)
{
var col = _db.GetCollection<QuickMarkdownEntry>("quick_md");
return Task.FromResult(col.Find(e => e.UserId == userId)
.OrderByDescending(e => e.Timestamp)
.ToList());
}
public Task<QuickMarkdownEntry?> GetByIdAsync(int id)
{
var col = _db.GetCollection<QuickMarkdownEntry>("quick_md");
return Task.FromResult<QuickMarkdownEntry?>(col.FindById(id));
}
public Task SaveAsync(QuickMarkdownEntry entry)
{
var col = _db.GetCollection<QuickMarkdownEntry>("quick_md");
if (entry.Id > 0)
col.Update(entry);
else
col.Insert(entry);
return Task.CompletedTask;
}
public Task DeleteAsync(int id)
{
var col = _db.GetCollection<QuickMarkdownEntry>("quick_md");
col.Delete(id);
return Task.CompletedTask;
}
public Task<List<QuickMarkdownPrompt>> GetPromptsAsync(int userId)
{
var col = _db.GetCollection<QuickMarkdownPrompt>("quick_md_prompts");
return Task.FromResult(col.Find(p => p.UserId == userId)
.OrderByDescending(p => p.Timestamp)
.ToList());
}
public Task<QuickMarkdownPrompt?> GetPromptByIdAsync(int id)
{
var col = _db.GetCollection<QuickMarkdownPrompt>("quick_md_prompts");
return Task.FromResult<QuickMarkdownPrompt?>(col.FindById(id));
}
public Task SavePromptAsync(QuickMarkdownPrompt prompt)
{
var col = _db.GetCollection<QuickMarkdownPrompt>("quick_md_prompts");
if (prompt.Id > 0)
col.Update(prompt);
else
col.Insert(prompt);
return Task.CompletedTask;
}
public Task DeletePromptAsync(int id)
{
var col = _db.GetCollection<QuickMarkdownPrompt>("quick_md_prompts");
col.Delete(id);
return Task.CompletedTask;
}
}