76 lines
2.2 KiB
C#
76 lines
2.2 KiB
C#
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;
|
|
}
|
|
}
|