66 lines
2.4 KiB
C#
66 lines
2.4 KiB
C#
using AutoMapper;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using OrdersManagementDataModel.Dtos;
|
|
using OrdersManagementDataModel.Queries;
|
|
using TaskScheduler = OrdersManagementDataModel.Entities.TaskScheduler;
|
|
|
|
namespace OrdersManagementDataModel.Services;
|
|
|
|
public class TaskSchedulerService(OrdersManagementDbContext context, IMapper mapper) : ITaskSchedulerService
|
|
{
|
|
public async Task<IEnumerable<TaskSchedulerDto>> GetTaskSchedulers()
|
|
{
|
|
List<TaskSchedulerDto> taskSchedulers =
|
|
(await Task.FromResult(OrdersManagementQueries.GetSchedulers(context))).ToList();
|
|
|
|
return taskSchedulers;
|
|
}
|
|
|
|
public async Task<TaskSchedulerDto?> GetTaskSchedulerById(Guid id)
|
|
{
|
|
TaskSchedulerDto? taskScheduler = await context.TaskSchedulers.Where(x => x.RowPointer == id)
|
|
.Select(x => mapper.Map<TaskSchedulerDto>(x)).FirstOrDefaultAsync();
|
|
return taskScheduler;
|
|
}
|
|
|
|
public async Task<TaskSchedulerDto?> GetTaskSchedulerByTaskName(string taskName)
|
|
{
|
|
TaskSchedulerDto? taskScheduler = await context.TaskSchedulers.Where(x => x.Name == taskName)
|
|
.Select(x => mapper.Map<TaskSchedulerDto>(x)).FirstOrDefaultAsync();
|
|
return taskScheduler;
|
|
}
|
|
|
|
public async Task<int> AddTaskScheduler(TaskSchedulerDto taskSchedulerDto)
|
|
{
|
|
TaskScheduler taskScheduler = new TaskScheduler
|
|
{
|
|
Name = taskSchedulerDto.Name,
|
|
Path = taskSchedulerDto.Path,
|
|
RowPointer = Guid.NewGuid(),
|
|
CronOptions = taskSchedulerDto.CronOptions,
|
|
CreateDate = DateTime.Now,
|
|
ActiveFrom = DateTime.Now
|
|
};
|
|
|
|
context.TaskSchedulers.Add(taskScheduler);
|
|
return await context.SaveChangesAsync();
|
|
}
|
|
|
|
public async Task<int> UpdateTaskScheduler(TaskSchedulerDto taskSchedulerDto)
|
|
{
|
|
TaskScheduler taskScheduler = mapper.Map<TaskScheduler>(taskSchedulerDto);
|
|
context.TaskSchedulers.Update(taskScheduler);
|
|
return await context.SaveChangesAsync();
|
|
}
|
|
|
|
public async Task<int> DeleteTaskScheduler(Guid id)
|
|
{
|
|
TaskScheduler? taskScheduler =
|
|
await context.TaskSchedulers.Where(x => x.RowPointer == id).FirstOrDefaultAsync() ?? null;
|
|
|
|
if (taskScheduler == null) return 0;
|
|
|
|
context.TaskSchedulers.Remove(taskScheduler);
|
|
return await context.SaveChangesAsync();
|
|
}
|
|
} |