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>
172 lines
5.7 KiB
C#
172 lines
5.7 KiB
C#
using AutoMapper;
|
|
using Microsoft.AspNetCore.Cors;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using skydiveLogs_api.DataContract;
|
|
using skydiveLogs_api.DomainBusiness.Interfaces;
|
|
using System.Collections.Generic;
|
|
|
|
namespace skydiveLogs_api.Controllers
|
|
{
|
|
public class StatsController : Base
|
|
{
|
|
#region Public Constructors
|
|
|
|
public StatsController(IStatsService statsService,
|
|
IMapper mapper)
|
|
{
|
|
_statsService = statsService;
|
|
_mapper = mapper;
|
|
}
|
|
|
|
#endregion Public Constructors
|
|
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics grouped by aircraft.
|
|
/// </summary>
|
|
/// <returns>A collection of StatisticResp objects containing aircraft statistics.</returns>
|
|
[HttpGet("ByAircraft")]
|
|
[EnableCors]
|
|
public IEnumerable<StatisticResp> ByAircraft()
|
|
{
|
|
var result = _statsService.GetStatsByAircraft();
|
|
|
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics grouped by drop zone.
|
|
/// </summary>
|
|
/// <returns>A collection of StatisticResp objects containing drop zone statistics.</returns>
|
|
[HttpGet("ByDz")]
|
|
[EnableCors]
|
|
public IEnumerable<StatisticResp> ByDz()
|
|
{
|
|
var result = _statsService.GetStatsByDz();
|
|
|
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics grouped by gear.
|
|
/// </summary>
|
|
/// <returns>A collection of StatisticResp objects containing gear statistics.</returns>
|
|
[HttpGet("ByGear")]
|
|
[EnableCors]
|
|
public IEnumerable<StatisticResp> ByGear()
|
|
{
|
|
var result = _statsService.GetStatsByGear();
|
|
|
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics grouped by jump type.
|
|
/// </summary>
|
|
/// <returns>A collection of StatisticResp objects containing jump type statistics.</returns>
|
|
[HttpGet("ByJumpType")]
|
|
[EnableCors]
|
|
public IEnumerable<StatisticResp> ByJumpType()
|
|
{
|
|
var result = _statsService.GetStatsByJumpType();
|
|
|
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics grouped by year.
|
|
/// </summary>
|
|
/// <returns>A collection of StatisticResp objects containing year statistics.</returns>
|
|
[HttpGet("ByYear")]
|
|
[EnableCors]
|
|
public IEnumerable<StatisticResp> ByYear()
|
|
{
|
|
var result = _statsService.GetStatsByYear();
|
|
|
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics for the last month grouped by drop zone and jump type.
|
|
/// </summary>
|
|
/// <returns>A StatisticForLastMonthResp object containing last month statistics.</returns>
|
|
[HttpGet("ForLastMonth")]
|
|
[EnableCors]
|
|
public StatisticForLastMonthResp ForLastMonth()
|
|
{
|
|
var resultByDz = _statsService.GetStatsForLastMonthByDz();
|
|
var resultByJumpType = _statsService.GetStatsForLastMonthByJumpType();
|
|
|
|
var result = new StatisticForLastMonthResp();
|
|
result.ByDz = _mapper.Map<IEnumerable<StatisticResp>>(resultByDz);
|
|
result.ByJumpType = _mapper.Map<IEnumerable<StatisticResp>>(resultByJumpType);
|
|
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics for the last year grouped by drop zone and jump type.
|
|
/// </summary>
|
|
/// <returns>A StatisticForLastYearResp object containing last year statistics.</returns>
|
|
[HttpGet("ForLastYear")]
|
|
[EnableCors]
|
|
public StatisticForLastYearResp ForLastYear()
|
|
{
|
|
var resultByDz = _statsService.GetStatsForLastYearByDz();
|
|
var resultByJumpType = _statsService.GetStatsForLastYearByJumpType();
|
|
|
|
var result = new StatisticForLastYearResp();
|
|
result.ByDz = _mapper.Map<IEnumerable<StatisticResp>>(resultByDz);
|
|
result.ByJumpType = _mapper.Map<IEnumerable<StatisticResp>>(resultByJumpType);
|
|
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves statistics by year grouped with jump type for chart visualization.
|
|
/// </summary>
|
|
/// <returns>A collection of StatisticForChartResp objects containing yearly jump type statistics.</returns>
|
|
[HttpGet("ByYearByJumpType")]
|
|
[EnableCors]
|
|
public IEnumerable<StatisticForChartResp> ByYearByJumpType()
|
|
{
|
|
var result = _statsService.GetStatsByYearByJumpType();
|
|
|
|
return _mapper.Map<IEnumerable<StatisticForChartResp>>(result);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Resets all statistics to their initial state.
|
|
/// </summary>
|
|
[HttpGet("Reset")]
|
|
[EnableCors]
|
|
public void Reset()
|
|
{
|
|
_statsService.Reset();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Retrieves a simple summary of all statistics.
|
|
/// </summary>
|
|
/// <returns>A SimpleSummaryResp object containing the simple summary statistics.</returns>
|
|
[HttpGet("Simple")]
|
|
[EnableCors]
|
|
public SimpleSummaryResp Simple()
|
|
{
|
|
var result = _statsService.GetSimpleSummary();
|
|
|
|
return _mapper.Map<SimpleSummaryResp>(result);
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Private properties
|
|
|
|
private readonly IMapper _mapper;
|
|
private readonly IStatsService _statsService;
|
|
|
|
#endregion Private properties
|
|
}
|
|
}
|