Files
SkydiveLogs/Back/skydiveLogs-api.DomainBusiness/AircraftService.cs
T
sandre ceed44f997 Little test with AI + Add the equipment (#8)
Tests using local LLM AI to add comments in the C# files
For the flights tunnel, show the total to day/hours
For the jump, add the equipment (now just with the wingsuit)

Reviewed-on: #8
Co-authored-by: sandre <perso@sebastienandre.com>
Co-committed-by: sandre <perso@sebastienandre.com>
2026-05-16 09:24:13 +00:00

102 lines
3.5 KiB
C#

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
/// <summary>
/// Initializes a new instance of the <see cref="AircraftService"/> class.
/// </summary>
/// <param name="aircraftRepository">The aircraft repository for data access.</param>
/// <param name="cacheService">The cache service for caching operations.</param>
public AircraftService(IAircraftRepository aircraftRepository,
ICacheService cacheService)
{
_aircraftRepository = aircraftRepository;
_cacheService = cacheService;
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Adds a new aircraft to the system.
/// </summary>
/// <param name="newAircraft">The Aircraft entity containing the data for the new aircraft.</param>
public void AddNewAircraft(Aircraft newAircraft)
{
_aircraftRepository.Add(newAircraft);
_cacheService.Delete(CacheType.Aircraft);
}
/// <summary>
/// Deletes an aircraft by its ID.
/// </summary>
/// <param name="id">The aircraft ID to delete.</param>
public void DeleteAircraftById(int id)
{
throw new NotImplementedException();
}
/// <summary>
/// Retrieves an aircraft by its ID.
/// </summary>
/// <param name="id">The aircraft ID to retrieve.</param>
/// <returns>An Aircraft entity containing the aircraft details.</returns>
public Aircraft GetAircraftById(int id)
{
var allAircrafts = GetAllAircrafts();
return allAircrafts.Single(g => g.Id == id);
}
/// <summary>
/// Retrieves all aircrafts.
/// </summary>
/// <returns>A collection of Aircraft entities containing all aircraft data.</returns>
public IEnumerable<Aircraft> GetAllAircrafts()
{
if (!_cacheService.Contains(CacheType.Aircraft))
_cacheService.Put(CacheType.Aircraft,
_aircraftRepository.GetAll(),
5 * 60 * 1000);
return _cacheService.Get<IEnumerable<Aircraft>>(CacheType.Aircraft);
}
/// <summary>
/// Updates an existing aircraft.
/// </summary>
/// <param name="id">The aircraft ID to update.</param>
/// <param name="aircraft">Aircraft entity containing the updated aircraft data.</param>
/// <param name="resetCache">Whether to reset the cache after update.</param>
/// <returns>True if the update was successful, false otherwise.</returns>
public bool UpdateAircraft(int id, Aircraft aircraft, bool resetCache = true)
{
aircraft.Id = id;
var result = _aircraftRepository.Update(aircraft);
if (resetCache && result)
_cacheService.Delete(CacheType.JumpType);
return result;
}
#endregion Public Methods
#region Private Fields
private readonly IAircraftRepository _aircraftRepository;
private readonly ICacheService _cacheService;
#endregion Private Fields
}
}