ceed44f997
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>
106 lines
3.5 KiB
C#
106 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 JumpTypeService : IJumpTypeService
|
|
{
|
|
#region Public Constructors
|
|
|
|
public JumpTypeService(IJumpTypeRepository jumpTypeRepository,
|
|
ICacheService cacheService)
|
|
{
|
|
_jumpTypeRepository = jumpTypeRepository;
|
|
_cacheService = cacheService;
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Adds a new jump type to the system.
|
|
/// </summary>
|
|
/// <param name="newJumpType">The JumpType entity containing the new jump type data.</param>
|
|
public void AddNewJumpType(JumpType newJumpType)
|
|
{
|
|
_jumpTypeRepository.Add(newJumpType);
|
|
_cacheService.Delete(CacheType.JumpType);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Deletes a jump type by its ID.
|
|
/// </summary>
|
|
/// <param name="id">The jump type ID to delete.</param>
|
|
public void DeleteJumpTypeById(int id)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves all jump types.
|
|
/// </summary>
|
|
/// <returns>A collection of JumpType entities containing all jump types.</returns>
|
|
public IEnumerable<JumpType> GetAllJumpTypes()
|
|
{
|
|
if (!_cacheService.Contains(CacheType.JumpType))
|
|
_cacheService.Put(CacheType.JumpType,
|
|
_jumpTypeRepository.GetAll(),
|
|
5 * 60 * 1000);
|
|
|
|
return _cacheService.Get<IEnumerable<JumpType>>(CacheType.JumpType);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves jump types specifically used for tunnel operations.
|
|
/// </summary>
|
|
/// <returns>A collection of JumpType entities containing tunnel jump types.</returns>
|
|
public IEnumerable<JumpType> GetJumpTypesForTunnel()
|
|
{
|
|
return GetAllJumpTypes().Where(t => t.InTunnel);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves a jump type by its ID.
|
|
/// </summary>
|
|
/// <param name="id">The jump type ID to retrieve.</param>
|
|
/// <returns>A JumpType entity containing the jump type details.</returns>
|
|
public JumpType GetJumpTypeById(int id)
|
|
{
|
|
var allJumpTypes = GetAllJumpTypes();
|
|
return allJumpTypes.Single(g => g.Id == id);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Updates an existing jump type.
|
|
/// </summary>
|
|
/// <param name="id">The jump type ID to update.</param>
|
|
/// <param name="jumpType">JumpType entity containing the updated jump type 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 UpdateJumpType(int id, JumpType jumpType, bool resetCache = true)
|
|
{
|
|
jumpType.Id = id;
|
|
|
|
var result = _jumpTypeRepository.Update(jumpType);
|
|
if (resetCache && result)
|
|
_cacheService.Delete(CacheType.JumpType);
|
|
|
|
return result;
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Private Fields
|
|
|
|
private readonly ICacheService _cacheService;
|
|
private readonly IJumpTypeRepository _jumpTypeRepository;
|
|
|
|
#endregion Private Fields
|
|
}
|
|
}
|