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> GetTaskSchedulers() { List taskSchedulers = (await Task.FromResult(OrdersManagementQueries.GetSchedulers(context))).ToList(); return taskSchedulers; } public async Task GetTaskSchedulerById(Guid id) { TaskSchedulerDto? taskScheduler = await context.TaskSchedulers.Where(x => x.RowPointer == id) .Select(x => mapper.Map(x)).FirstOrDefaultAsync(); return taskScheduler; } public async Task GetTaskSchedulerByTaskName(string taskName) { TaskSchedulerDto? taskScheduler = await context.TaskSchedulers.Where(x => x.Name == taskName) .Select(x => mapper.Map(x)).FirstOrDefaultAsync(); return taskScheduler; } public async Task AddTaskScheduler(TaskSchedulerDto taskSchedulerDto) { TaskScheduler taskScheduler = mapper.Map(taskSchedulerDto); context.TaskSchedulers.Add(taskScheduler); return await context.SaveChangesAsync(); } public async Task UpdateTaskScheduler(TaskSchedulerDto taskSchedulerDto) { TaskScheduler taskScheduler = mapper.Map(taskSchedulerDto); context.TaskSchedulers.Update(taskScheduler); return await context.SaveChangesAsync(); } public async Task 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(); } }