using skydiveLogs_api.Domain; using skydiveLogs_api.DomainBusiness.Interfaces; using skydiveLogs_api.DomainService.Repositories; using System; using System.Collections.Generic; using System.Linq; namespace skydiveLogs_api.DomainBusiness { public class AircraftService : IAircraftService { #region Public Constructors public AircraftService(IAircraftRepository aircraftRepository, ICacheService cacheService) { _aircraftRepository = aircraftRepository; _cacheService = cacheService; } #endregion Public Constructors #region Public Methods public void AddNewAircraft(Aircraft newAircraft) { _aircraftRepository.Add(newAircraft); _cacheService.Delete(CacheType.Aircraft); } public void DeleteAircraftById(int id) { throw new NotImplementedException(); } public Aircraft GetAircraftById(int id) { var allAircrafts = GetAllAircrafts(); return allAircrafts.Single(g => g.Id == id); } public IEnumerable GetAllAircrafts() { if (!_cacheService.Contains(CacheType.Aircraft)) _cacheService.Put(CacheType.Aircraft, _aircraftRepository.GetAll(), 5 * 60 * 1000); return _cacheService.Get>(CacheType.Aircraft); } public void UpdateAircraft(int id, Aircraft aircraft) { throw new NotImplementedException(); } #endregion Public Methods #region Private Fields private readonly IAircraftRepository _aircraftRepository; private readonly ICacheService _cacheService; #endregion Private Fields } }