using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using DevHive.Data.Interfaces; using DevHive.Data.Models; using Microsoft.EntityFrameworkCore; namespace DevHive.Data.Repositories { public class TechnologyRepository : BaseRepository, ITechnologyRepository { private readonly DevHiveContext _context; public TechnologyRepository(DevHiveContext context) : base(context) { this._context = context; } #region Read public async Task GetByNameAsync(string technologyName) { return await this._context.Technologies .FirstOrDefaultAsync(x => x.Name == technologyName); } /// /// Returns all technologies that exist in the database /// public HashSet GetTechnologies() { return this._context.Technologies.ToHashSet(); } #endregion #region Validations public async Task DoesTechnologyNameExistAsync(string technologyName) { return await this._context.Technologies .AsNoTracking() .AnyAsync(r => r.Name == technologyName); } public async Task DoesTechnologyExistAsync(Guid id) { return await this._context.Technologies .AsNoTracking() .AnyAsync(x => x.Id == id); } #endregion } }