using AutoMapper; using AzureDataModel.Dtos; using Microsoft.EntityFrameworkCore; using TaskScheduler = AzureDataModel.Entities.TaskScheduler; namespace AzureDataModel.Services; public class TaskSchedulerService(AzureDbContext context, IMapper mapper) : ITaskSchedulerService { public async Task> GetTaskSchedulers() { return await context.TaskSchedulers.Select(x => mapper.Map(x)).ToListAsync(); } 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(); } }