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 JumpTypeService : IJumpTypeService { #region Public Constructors public JumpTypeService(IJumpTypeRepository jumpTypeRepository, ICacheService cacheService) { _jumpTypeRepository = jumpTypeRepository; _cacheService = cacheService; } #endregion Public Constructors #region Public Methods public void AddNewJumpType(JumpType newJumpType) { _jumpTypeRepository.Add(newJumpType); _cacheService.Delete(CacheType.JumpType); } public void DeleteJumpTypeById(int id) { throw new NotImplementedException(); } public IEnumerable GetAllJumpTypes() { if (!_cacheService.Contains(CacheType.JumpType)) _cacheService.Put(CacheType.JumpType, _jumpTypeRepository.GetAll(), 5 * 60 * 1000); return _cacheService.Get>(CacheType.JumpType); } public JumpType GetJumpTypeById(int id) { var allJumpTypes = GetAllJumpTypes(); return allJumpTypes.Single(g => g.Id == id); } public void UpdateJumpType(int id, JumpType value) { throw new NotImplementedException(); } #endregion Public Methods #region Private Fields private readonly ICacheService _cacheService; private readonly IJumpTypeRepository _jumpTypeRepository; #endregion Private Fields } }