using skydiveLogs_api.Domain; using skydiveLogs_api.DomainBusiness.Interfaces; using skydiveLogs_api.DomainService.Repositories; using System; using System.Collections.Generic; namespace skydiveLogs_api.DomainBusiness { public class TunnelFlightService : ITunnelFlightService { #region Public Constructors public TunnelFlightService(ITunnelFlightRepository tunnelFlightRepository, IDropZoneService dropZoneService, IIdentityService identityService) { _dropZoneService = dropZoneService; _identityService = identityService; _tunnelFlightRepository = tunnelFlightRepository; } #endregion Public Constructors #region Public Methods public IEnumerable GetAllTunnelFlights() { return _tunnelFlightRepository.GetAll(_identityService.ConnectedUser); } public TunnelFlight GetTunnelFlightById(int id) { return _tunnelFlightRepository.GetById(id); } public void AddNewFlight(int tunnelId, TunnelFlight newFlight) { var tmp = _dropZoneService.GetDzById(tunnelId); var selectedTunnel = new Tunnel { Id = tmp.Id, Name = tmp.Name, Website = tmp.Website, Address = tmp.Address, Email = tmp.Email, Latitude = tmp.Latitude, Longitude = tmp.Longitude }; newFlight.Tunnel = selectedTunnel; _tunnelFlightRepository.Add(newFlight); } public int GetTunnelFlightCount() { return _tunnelFlightRepository.GetCount(_identityService.ConnectedUser); } public IEnumerable GetTunnelFlightsByIndexes(int beginIndex, int endIndex) { return _tunnelFlightRepository.GetBetweenIndex(_identityService.ConnectedUser, beginIndex, endIndex); } public IEnumerable GetTunnelFlightByDates(string beginDate, string endDate) { var convertedBeginDate = Convert.ToDateTime(beginDate); var convertedEndDate = Convert.ToDateTime(endDate); return _tunnelFlightRepository.GetBetweenDate(_identityService.ConnectedUser, convertedBeginDate, convertedEndDate); } #endregion Public Methods #region Private Fields private readonly IDropZoneService _dropZoneService; private readonly ITunnelFlightRepository _tunnelFlightRepository; private readonly IIdentityService _identityService; #endregion Private Fields } }