bulletboards/ImageBoardServerApp/Data/Repository/ImagesRepository.cs

46 lines
No EOL
1.4 KiB
C#

using Microsoft.EntityFrameworkCore;
namespace ImageBoardServerApp.Data.Repository;
public static class ImagesRepository
{
public static async Task<List<ImageData>> getImagesAsync()
{
await using var db = new AppDBContext();
return await db.Images.ToListAsync();
}
public static async Task<ImageData> getImageByIdAsync(int imageId)
{
await using var db = new AppDBContext();
return await db.Images.FirstOrDefaultAsync(image => image.ImageID == imageId);
}
public static async Task<int> createImageAsync(ImageData imageToCreate)
{
await using var db = new AppDBContext();
await db.Images.AddAsync(imageToCreate);
if (await db.SaveChangesAsync() >= 1)
{
Console.WriteLine($"Created image with ID: {imageToCreate.ImageID}");
return imageToCreate.ImageID;
}
return -1;
}
public static async Task<bool> updateImageAsync(ImageData imageToCreate)
{
await using var db = new AppDBContext();
db.Images.Update(imageToCreate);
return await db.SaveChangesAsync() >= 1;
}
public static async Task<bool> deleteImageAsync(int imageId)
{
ImageData imageToDelete = await getImageByIdAsync(imageId);
await using var db = new AppDBContext();
db.Remove(imageToDelete);
return await db.SaveChangesAsync() >= 1;
}
}