using AutoMapper; using HanyadikHetVan.Data; using HanyadikHetVan.Data.Entities; using HanyadikHetVan.DTO; using Microsoft.EntityFrameworkCore; using System; using System.Linq; using System.Threading.Tasks; namespace HanyadikHetVan.Services { public class HanyadikHetVanEntityService { private readonly ApplicationDbContext _dbContext; private readonly IMapper _mapper; public HanyadikHetVanEntityService(ApplicationDbContext dbContext, IMapper mapper) { _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper)); } public async Task GetDefaultWeek() { var latest = await _dbContext.WeeklyTimeSpans.Include(x => x.Pauses).OrderBy(x => x.Id).LastAsync(); var latestDto = _mapper.Map(latest); return latestDto.CurrentWeek; } public async Task GetUserDefaultWeek(string userId) { var latest = await _dbContext.WeeklyTimeSpans.Include(x => x.Pauses).Where(x => x.UserId == userId).OrderBy(x => x.Id).LastAsync(); var latestDto = _mapper.Map(latest); return latestDto.CurrentWeek; } public async Task GetWeekById(int weeklytimespanId) { var wts = await _dbContext.WeeklyTimeSpans.Include(x => x.Pauses).Where(x => x.Id == weeklytimespanId).FirstOrDefaultAsync(); var wtsDto = _mapper.Map(wts); return wtsDto.CurrentWeek; } } }