44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using IM_API.Interface.Services;
|
|
using IM_API.Models;
|
|
using IM_API.Models.Upload;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace IM_API.Services
|
|
{
|
|
public class UploadTaskService : IUploadTaskService
|
|
{
|
|
private readonly ImContext _context;
|
|
public UploadTaskService(ImContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task AddAsync(UploadTask task)
|
|
{
|
|
_context.UploadTasks.Add(task);
|
|
await _context.SaveChangesAsync();
|
|
}
|
|
|
|
public async Task<UploadTask?> GetTaskAsync(Guid taskId)
|
|
{
|
|
return await _context.UploadTasks.FirstOrDefaultAsync(x => x.Id == taskId);
|
|
}
|
|
|
|
public async Task<UploadTask?> GetTaskAsync(string hash)
|
|
{
|
|
return await _context.UploadTasks.FirstOrDefaultAsync(x => x.FileHash == hash);
|
|
}
|
|
|
|
public async Task UpdateStatusAsync(Guid taskId, UploadStatus status)
|
|
{
|
|
var task = await _context.UploadTasks.FirstOrDefaultAsync(x => x.Id == taskId);
|
|
if (task != null)
|
|
{
|
|
task.Status = status;
|
|
_context.UploadTasks.Update(task);
|
|
await _context.SaveChangesAsync();
|
|
}
|
|
}
|
|
}
|
|
}
|