Split tables for the stats #6

Merged
sandre merged 11 commits from feature/split-stats-by-tables into master 2026-01-26 13:38:10 +00:00
5 changed files with 46 additions and 73 deletions
Showing only changes of commit 8afddab7b8 - Show all commits

View File

@@ -6,8 +6,6 @@ namespace skydiveLogs_api.Domain
{ {
public string Label { get; set; } public string Label { get; set; }
public string Label2 { get; set; }
public int Nb { get; set; } public int Nb { get; set; }
public int Id { get; set; } public int Id { get; set; }

View File

@@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces
{ {
#region Public Methods #region Public Methods
IEnumerable<Statistic> GetStats(); IEnumerable<StatsByAircraft> GetStats();
#endregion Public Methods #endregion Public Methods
} }

View File

@@ -23,71 +23,39 @@ namespace skydiveLogs_api.DomainBusiness
#region Public Methods #region Public Methods
public IEnumerable<Statistic> GetStats() public IEnumerable<StatsByAircraft> GetStats()
{
// var allStats = GetAllStats();
// if (!allStats.ByDz.Any())
// {
// var allJumps = _jumpService.GetAllJumps();
// var results = new List<Statistic>();
// if (allJumps.Any())
// {
// results = [.. allJumps.GroupBy(j => j.DropZone.Name,
// j => j,
// (groupby, jumps) => new Statistic
// {
// Label = groupby.ToString(),
// Nb = jumps.Count()
// })];
// }
// allStats.ByDz = results;
// _userStatsRepository.Update(allStats);
// }
// return allStats.ByDz;
return null;
}
// public void Reset()
// {
// var resetStats = new UserStats();
// var myStats = GetAllStats();
// myStats.ByAircraft = resetStats.ByAircraft;
// myStats.ByDz = resetStats.ByDz;
// myStats.ByGear = resetStats.ByGear;
// myStats.ByJumpType = resetStats.ByJumpType;
// myStats.ByYear = resetStats.ByYear;
// myStats.ForLastMonthByDz = resetStats.ForLastMonthByDz;
// myStats.ForLastMonthByJumpType = resetStats.ForLastMonthByJumpType;
// myStats.ForLastYearByDz = resetStats.ForLastYearByDz;
// myStats.ForLastYearByJumpType = resetStats.ForLastYearByJumpType;
// myStats.ByYearByJumpType = resetStats.ByYearByJumpType;
// _userStatsRepository.Update(myStats);
// }
#endregion Public Methods
#region Private Methods
private UserStats GetAllStats()
{ {
var allStats = _statsByAircraftRepository.GetAll(_identityService.ConnectedUser); var allStats = _statsByAircraftRepository.GetAll(_identityService.ConnectedUser);
if (allStats == null) if (!allStats.Any())
{ {
allStats = new UserStats var allJumps = _jumpService.GetAllJumps();
var results = new List<StatsByAircraft>();
if (allJumps.Any())
{ {
User = _identityService.ConnectedUser results = [.. allJumps.GroupBy(j => j.DropZone.Name,
}; j => j,
_statsByAircraftRepository.Add(allStats); (groupby, jumps) => new StatsByAircraft
{
Label = groupby.ToString(),
Nb = jumps.Count(),
User = _identityService.ConnectedUser
})];
}
_statsByAircraftRepository.Add(results);
return results;
} }
return allStats; return allStats;
} }
#endregion Private Methods public void Reset()
{
_statsByAircraftRepository.Delete(_identityService.ConnectedUser);
}
#endregion Public Methods
#region Private Fields #region Private Fields

View File

@@ -2,12 +2,7 @@ using skydiveLogs_api.Domain;
namespace skydiveLogs_api.DomainService.Repositories namespace skydiveLogs_api.DomainService.Repositories
{ {
public interface IStatsByAircraftRepository : IRepository<StatsByAircraft> public interface IStatsByAircraftRepository : IStatsRepository<StatsByAircraft>
{ {
#region Public Methods
StatsByAircraft GetAll(User user);
#endregion Public Methods
} }
} }

View File

@@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure
#region Public Methods #region Public Methods
public int Add(StatsByAircraft newStats) public int Add(IEnumerable<StatsByAircraft> newStats)
{ {
int result; int result = 0;
try try
{ {
var tmp = _col.Insert(newStats); foreach (var newStat in newStats)
result = tmp.AsInt32; {
var tmp = _col.Insert(newStats);
result = tmp;
}
} }
catch catch
{ {
@@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure
return result; return result;
} }
public StatsByAircraft GetAll(User user) public IEnumerable<StatsByAircraft> GetAll(User user)
{ {
return _col.Include(x => x.User) return _col.Include(x => x.User)
.Query() .Query()
.Where(j => j.User.Id == user.Id) .Where(j => j.User.Id == user.Id)
.SingleOrDefault(); .ToList();
} }
public bool Update(StatsByAircraft stats) public bool Update(IEnumerable<StatsByAircraft> updatedStats, User user)
{ {
return _col.Update(stats); Delete(user);
var tmp = Add(updatedStats);
return tmp != 0;
}
public bool Delete(User user)
{
var tmp = _col.DeleteMany(s => s.User.Id == user.Id);
return tmp != 0;
} }
#endregion Public Methods #endregion Public Methods