stylist / backend / Stylist.Domain / Repositories / Implementations / HairdresserRepository.cs
HairdresserRepository.cs
Raw
using Microsoft.EntityFrameworkCore;
using Stylist.Data.Models;
using Stylist.Data.Models.Dtos.Hairdresser;
using Stylist.Domain.Mapping;
using Stylist.Domain.Repositories.Interfaces;

namespace Stylist.Domain.Repositories.Implementations
{
    public class HairdresserRepository : IHairdresserRepository
    {
        public HairdresserRepository(StylistContext context)
        {
            _context = context;
        }

        private readonly StylistContext _context;

        public async Task<IEnumerable<HairdresserChooseServicePage>> GetAllHairdressersBySalonAsync(int salonId)
        {
            var hairdressers = await _context
                .Hairdressers
                .Include(h => h.HairdresserServices)
                .ThenInclude(hs => hs.Service)
                .Where(h => h.HairdresserServices.Any(hs => hs.Service.SalonId == salonId))
                .Select(HairdresserMapping.MapToHairdresserChooseServicePage)
                .ToListAsync();

            return hairdressers;
        }
    }
}