Ajout de l'implémentation des stats par dz, avion, piège et annèe.
This commit is contained in:
@@ -1,10 +1,11 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Text;
|
|
||||||
using skydiveLogs_api.Business.Interface;
|
using skydiveLogs_api.Business.Interface;
|
||||||
using skydiveLogs_api.Data.Interface;
|
using skydiveLogs_api.Data.Interface;
|
||||||
using skydiveLogs_api.Model;
|
using skydiveLogs_api.Model;
|
||||||
|
|
||||||
|
|
||||||
namespace skydiveLogs_api.Business
|
namespace skydiveLogs_api.Business
|
||||||
{
|
{
|
||||||
public class DropZoneService : IDropZoneService
|
public class DropZoneService : IDropZoneService
|
||||||
|
|||||||
18
Back/skydiveLogs-api.Business/Interface/IStatsService.cs
Normal file
18
Back/skydiveLogs-api.Business/Interface/IStatsService.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using skydiveLogs_api.Model;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace skydiveLogs_api.Business.Interface
|
||||||
|
{
|
||||||
|
public interface IStatsService
|
||||||
|
{
|
||||||
|
IEnumerable<Statistic> GetStatsByDz();
|
||||||
|
|
||||||
|
IEnumerable<Statistic> GetStatsByAircraft();
|
||||||
|
|
||||||
|
IEnumerable<Statistic> GetStatsByJumpType();
|
||||||
|
|
||||||
|
IEnumerable<Statistic> GetStatsByRig();
|
||||||
|
|
||||||
|
IEnumerable<Statistic> GetStatsByYear();
|
||||||
|
}
|
||||||
|
}
|
||||||
90
Back/skydiveLogs-api.Business/StatsService.cs
Normal file
90
Back/skydiveLogs-api.Business/StatsService.cs
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
using skydiveLogs_api.Business.Interface;
|
||||||
|
using skydiveLogs_api.Data.Interface;
|
||||||
|
using skydiveLogs_api.Model;
|
||||||
|
|
||||||
|
|
||||||
|
namespace skydiveLogs_api.Business
|
||||||
|
{
|
||||||
|
public class StatsService : IStatsService
|
||||||
|
{
|
||||||
|
public StatsService(IJumpRepository jumpRepository)
|
||||||
|
{
|
||||||
|
_jumpRepository = jumpRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Statistic> GetStatsByAircraft()
|
||||||
|
{
|
||||||
|
var allJumps = _jumpRepository.GetAllJumps();
|
||||||
|
|
||||||
|
return allJumps.GroupBy(j => j.AircraftId,
|
||||||
|
j => j,
|
||||||
|
(groupby, jumps) => new Statistic
|
||||||
|
{
|
||||||
|
Label = groupby.ToString(),
|
||||||
|
Nb = jumps.Count()
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Statistic> GetStatsByDz()
|
||||||
|
{
|
||||||
|
var allJumps = _jumpRepository.GetAllJumps();
|
||||||
|
|
||||||
|
return allJumps.GroupBy(j => j.DropZoneId,
|
||||||
|
j => j,
|
||||||
|
(groupby, jumps) => new Statistic
|
||||||
|
{
|
||||||
|
Label = groupby.ToString(),
|
||||||
|
Nb = jumps.Count()
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Statistic> GetStatsByJumpType()
|
||||||
|
{
|
||||||
|
var allJumps = _jumpRepository.GetAllJumps();
|
||||||
|
|
||||||
|
return allJumps.GroupBy(j => j.JumpTypeId,
|
||||||
|
j => j,
|
||||||
|
(groupby, jumps) => new Statistic
|
||||||
|
{
|
||||||
|
Label = groupby.ToString(),
|
||||||
|
Nb = jumps.Count()
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Statistic> GetStatsByRig()
|
||||||
|
{
|
||||||
|
var allJumps = _jumpRepository.GetAllJumps();
|
||||||
|
|
||||||
|
return allJumps.GroupBy(j => j.GearId,
|
||||||
|
j => j,
|
||||||
|
(groupby, jumps) => new Statistic
|
||||||
|
{
|
||||||
|
Label = groupby.ToString(),
|
||||||
|
Nb = jumps.Count()
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<Statistic> GetStatsByYear()
|
||||||
|
{
|
||||||
|
var allJumps = _jumpRepository.GetAllJumps();
|
||||||
|
|
||||||
|
return allJumps.GroupBy(j => j.JumpDate.Year,
|
||||||
|
j => j,
|
||||||
|
(groupby, jumps) => new Statistic
|
||||||
|
{
|
||||||
|
Label = groupby.ToString(),
|
||||||
|
Nb = jumps.Count()
|
||||||
|
})
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly IJumpRepository _jumpRepository;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ namespace skydiveLogs_api.Data.Interface
|
|||||||
public interface IJumpRepository
|
public interface IJumpRepository
|
||||||
{
|
{
|
||||||
IEnumerable<Jump> GetAllJumps();
|
IEnumerable<Jump> GetAllJumps();
|
||||||
|
|
||||||
Jump GetJumpById(int id);
|
Jump GetJumpById(int id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ namespace skydiveLogs_api.Ioc
|
|||||||
_services.AddScoped<Business.Interface.IDropZoneService, Business.DropZoneService>();
|
_services.AddScoped<Business.Interface.IDropZoneService, Business.DropZoneService>();
|
||||||
_services.AddScoped<Business.Interface.IJumpService, Business.JumpService>();
|
_services.AddScoped<Business.Interface.IJumpService, Business.JumpService>();
|
||||||
_services.AddScoped<Business.Interface.IJumpTypeService, Business.JumpTypeService>();
|
_services.AddScoped<Business.Interface.IJumpTypeService, Business.JumpTypeService>();
|
||||||
|
_services.AddScoped<Business.Interface.IStatsService, Business.StatsService>();
|
||||||
|
|
||||||
_services.AddScoped<Data.Interface.IAircraftRepository, Data.AircraftRepository>();
|
_services.AddScoped<Data.Interface.IAircraftRepository, Data.AircraftRepository>();
|
||||||
_services.AddScoped<Data.Interface.IDropZoneRepository, Data.DropZoneRepository>();
|
_services.AddScoped<Data.Interface.IDropZoneRepository, Data.DropZoneRepository>();
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace skydiveLogs_api.Model
|
namespace skydiveLogs_api.Model
|
||||||
{
|
{
|
||||||
@@ -23,5 +21,7 @@ namespace skydiveLogs_api.Model
|
|||||||
public bool WithCutaway { get; set; }
|
public bool WithCutaway { get; set; }
|
||||||
|
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
|
|
||||||
|
public DateTime JumpDate { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
13
Back/skydiveLogs-api.Model/Statistic.cs
Normal file
13
Back/skydiveLogs-api.Model/Statistic.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace skydiveLogs_api.Model
|
||||||
|
{
|
||||||
|
public class Statistic
|
||||||
|
{
|
||||||
|
public string Label { get; set; }
|
||||||
|
|
||||||
|
public int Nb { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,7 +6,6 @@ using AutoMapper;
|
|||||||
|
|
||||||
using skydiveLogs_api.Business.Interface;
|
using skydiveLogs_api.Business.Interface;
|
||||||
using skydiveLogs_api.DataContract;
|
using skydiveLogs_api.DataContract;
|
||||||
using skydiveLogs_api.Model;
|
|
||||||
|
|
||||||
|
|
||||||
namespace skydiveLogs_api.Controllers
|
namespace skydiveLogs_api.Controllers
|
||||||
@@ -15,60 +14,62 @@ namespace skydiveLogs_api.Controllers
|
|||||||
[ApiController]
|
[ApiController]
|
||||||
public class StatsController : ControllerBase
|
public class StatsController : ControllerBase
|
||||||
{
|
{
|
||||||
public StatsController(IDropZoneService dropZoneService,
|
public StatsController(IStatsService statsService,
|
||||||
IMapper mapper)
|
IMapper mapper)
|
||||||
{
|
{
|
||||||
_dropZoneService = dropZoneService;
|
_statsService = statsService;
|
||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("ByDz")]
|
[HttpGet("ByDz")]
|
||||||
[EnableCors]
|
[EnableCors]
|
||||||
public IEnumerable<DropZoneResp> ByDz()
|
public IEnumerable<StatisticResp> ByDz()
|
||||||
{
|
{
|
||||||
var result = _dropZoneService.GetAllDzs();
|
var result = _statsService.GetStatsByDz();
|
||||||
|
|
||||||
return _mapper.Map<IEnumerable<DropZoneResp>>(result);
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("ByAircraft")]
|
[HttpGet("ByAircraft")]
|
||||||
[EnableCors]
|
[EnableCors]
|
||||||
public IEnumerable<DropZoneResp> ByAircraft()
|
public IEnumerable<StatisticResp> ByAircraft()
|
||||||
{
|
{
|
||||||
var result = _dropZoneService.GetAllDzs();
|
var result = _statsService.GetStatsByAircraft();
|
||||||
|
|
||||||
return _mapper.Map<IEnumerable<DropZoneResp>>(result);
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("ByJumpType")]
|
[HttpGet("ByJumpType")]
|
||||||
[EnableCors]
|
[EnableCors]
|
||||||
public IEnumerable<DropZoneResp> ByJumpType()
|
public IEnumerable<StatisticResp> ByJumpType()
|
||||||
{
|
{
|
||||||
var result = _dropZoneService.GetAllDzs();
|
var result = _statsService.GetStatsByJumpType();
|
||||||
|
|
||||||
return _mapper.Map<IEnumerable<DropZoneResp>>(result);
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("ByRig")]
|
[HttpGet("ByRig")]
|
||||||
[EnableCors]
|
[EnableCors]
|
||||||
public IEnumerable<DropZoneResp> ByRig()
|
public IEnumerable<StatisticResp> ByRig()
|
||||||
{
|
{
|
||||||
var result = _dropZoneService.GetAllDzs();
|
var result = _statsService.GetStatsByRig();
|
||||||
|
|
||||||
return _mapper.Map<IEnumerable<DropZoneResp>>(result);
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("ByYear")]
|
[HttpGet("ByYear")]
|
||||||
[EnableCors]
|
[EnableCors]
|
||||||
public IEnumerable<DropZoneResp> ByYear()
|
public IEnumerable<StatisticResp> ByYear()
|
||||||
{
|
{
|
||||||
var result = _dropZoneService.GetAllDzs();
|
var result = _statsService.GetStatsByYear();
|
||||||
|
|
||||||
return _mapper.Map<IEnumerable<DropZoneResp>>(result);
|
return _mapper.Map<IEnumerable<StatisticResp>>(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#region Private properties
|
||||||
|
private readonly IStatsService _statsService;
|
||||||
|
|
||||||
private readonly IDropZoneService _dropZoneService;
|
|
||||||
private readonly IMapper _mapper;
|
private readonly IMapper _mapper;
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace skydiveLogs_api.DataContract
|
namespace skydiveLogs_api.DataContract
|
||||||
{
|
{
|
||||||
@@ -24,5 +21,7 @@ namespace skydiveLogs_api.DataContract
|
|||||||
public bool WithCutaway { get; set; }
|
public bool WithCutaway { get; set; }
|
||||||
|
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
|
|
||||||
|
public DateTime JumpDate { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
9
Back/skydiveLogs-api/DataContract/StatisticResp.cs
Normal file
9
Back/skydiveLogs-api/DataContract/StatisticResp.cs
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
namespace skydiveLogs_api.DataContract
|
||||||
|
{
|
||||||
|
public class StatisticResp
|
||||||
|
{
|
||||||
|
public string Label { get; set; }
|
||||||
|
|
||||||
|
public int Nb { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,6 +18,7 @@ namespace skydiveLogs_api.Mapper
|
|||||||
CreateMap<Model.JumpType ,DataContract.JumpTypeResp>();
|
CreateMap<Model.JumpType ,DataContract.JumpTypeResp>();
|
||||||
CreateMap<Model.Aircraft ,DataContract.AircraftResp>();
|
CreateMap<Model.Aircraft ,DataContract.AircraftResp>();
|
||||||
CreateMap<Model.DropZone ,DataContract.DropZoneResp>();
|
CreateMap<Model.DropZone ,DataContract.DropZoneResp>();
|
||||||
|
CreateMap<Model.Statistic ,DataContract.StatisticResp>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user