From 668f321c54b8d36976c9b1148a99c834fd1b7eb0 Mon Sep 17 00:00:00 2001 From: sandre Date: Fri, 23 Jan 2026 22:52:51 +0100 Subject: [PATCH] Refacto --- .../skydiveLogs-api.Domain/StatsByAircraft.cs | 6 +- Back/skydiveLogs-api.Domain/StatsByDz.cs | 6 +- Back/skydiveLogs-api.Domain/StatsByGear.cs | 6 +- .../skydiveLogs-api.Domain/StatsByJumpType.cs | 6 +- Back/skydiveLogs-api.Domain/StatsByYear.cs | 6 +- .../StatsByYearByJumpType.cs | 4 +- .../StatsForLastMonthByDz.cs | 6 +- .../StatsForLastMonthByJumpType.cs | 6 +- .../StatsForLastYearByDz.cs | 6 +- .../StatsForLastYearByJumpType.cs | 6 +- .../Interfaces/IStatsByDzService.cs | 2 +- .../Interfaces/IStatsByGearService.cs | 2 +- .../Interfaces/IStatsByJumpTypeService.cs | 2 +- .../IStatsByYearByJumpTypeService.cs | 2 +- .../Interfaces/IStatsByYearService.cs | 2 +- .../IStatsForLastMonthByDzService.cs | 2 +- .../IStatsForLastMonthByJumpTypeService.cs | 2 +- .../IStatsForLastYearByDzService.cs | 2 +- .../IStatsForLastYearByJumpTypeService.cs | 2 +- .../Interfaces/IStatsService.cs | 21 + .../StatsByAircraftService.cs | 12 +- .../StatsByDzService.cs | 369 +---------------- .../StatsByGearService.cs | 370 +---------------- .../StatsByJumpTypeService.cs | 370 +---------------- .../StatsByYearByJumpTypeService.cs | 371 ++---------------- .../StatsByYearService.cs | 370 +---------------- .../StatsForLastMonthByDzService.cs | 367 ++--------------- .../StatsForLastMonthByJumpTypeService.cs | 367 ++--------------- .../StatsForLastYearByDzService.cs | 368 ++--------------- .../StatsForLastYearByJumpTypeService.cs | 370 ++--------------- .../StatsService.cs | 134 ++++++- .../Repositories/IStatsByDzRepository.cs | 7 +- .../Repositories/IStatsByGearRepository.cs | 7 +- .../IStatsByJumpTypeRepository.cs | 7 +- .../IStatsByYearByJumpTypeRepository.cs | 7 +- .../Repositories/IStatsByYearRepository.cs | 7 +- .../IStatsForLastMonthByDzRepository.cs | 7 +- .../IStatsForLastMonthByJumpTypeRepository.cs | 7 +- .../IStatsForLastYearByDzRepository.cs | 7 +- .../IStatsForLastYearByJumpTypeRepository.cs | 7 +- .../Repositories/IStatsRepository.cs | 8 +- .../StatsByAircraftRepository.cs | 2 +- .../StatsByDzRepository.cs | 30 +- .../StatsByGearRepository.cs | 30 +- .../StatsByJumpTypeRepository.cs | 30 +- .../StatsByYearByJumpTypeRepository.cs | 30 +- .../StatsByYearRepository.cs | 31 +- .../StatsForLastMonthByDzRepository.cs | 30 +- .../StatsForLastMonthByJumpTypeRepository.cs | 30 +- .../StatsForLastYearByDzRepository.cs | 30 +- .../StatsForLastYearByJumpTypeRepository.cs | 30 +- 51 files changed, 580 insertions(+), 3329 deletions(-) diff --git a/Back/skydiveLogs-api.Domain/StatsByAircraft.cs b/Back/skydiveLogs-api.Domain/StatsByAircraft.cs index ca46087..6bf377b 100644 --- a/Back/skydiveLogs-api.Domain/StatsByAircraft.cs +++ b/Back/skydiveLogs-api.Domain/StatsByAircraft.cs @@ -1,10 +1,8 @@ -using System.Collections.Generic; - -namespace skydiveLogs_api.Domain +namespace skydiveLogs_api.Domain { public class StatsByAircraft { - public string Label { get; set; } + public string Aircraft { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsByDz.cs b/Back/skydiveLogs-api.Domain/StatsByDz.cs index ec22e6f..92c7b5f 100644 --- a/Back/skydiveLogs-api.Domain/StatsByDz.cs +++ b/Back/skydiveLogs-api.Domain/StatsByDz.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsByDz { - public string Label { get; set; } - - public string Label2 { get; set; } + public string DropZone { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsByGear.cs b/Back/skydiveLogs-api.Domain/StatsByGear.cs index 5219ab1..0bf97ff 100644 --- a/Back/skydiveLogs-api.Domain/StatsByGear.cs +++ b/Back/skydiveLogs-api.Domain/StatsByGear.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsByGear { - public string Label { get; set; } - - public string Label2 { get; set; } + public string Gear { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsByJumpType.cs b/Back/skydiveLogs-api.Domain/StatsByJumpType.cs index a1ffc5f..cf1bc6c 100644 --- a/Back/skydiveLogs-api.Domain/StatsByJumpType.cs +++ b/Back/skydiveLogs-api.Domain/StatsByJumpType.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsByJumpType { - public string Label { get; set; } - - public string Label2 { get; set; } + public string JumpType { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsByYear.cs b/Back/skydiveLogs-api.Domain/StatsByYear.cs index 3fe078e..e05cd32 100644 --- a/Back/skydiveLogs-api.Domain/StatsByYear.cs +++ b/Back/skydiveLogs-api.Domain/StatsByYear.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsByYear { - public string Label { get; set; } - - public string Label2 { get; set; } + public string Year { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsByYearByJumpType.cs b/Back/skydiveLogs-api.Domain/StatsByYearByJumpType.cs index 0fc8461..c930e53 100644 --- a/Back/skydiveLogs-api.Domain/StatsByYearByJumpType.cs +++ b/Back/skydiveLogs-api.Domain/StatsByYearByJumpType.cs @@ -4,9 +4,9 @@ namespace skydiveLogs_api.Domain { public class StatsByYearByJumpType { - public string Label { get; set; } + public string Year { get; set; } - public string Label2 { get; set; } + public string JumpType { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsForLastMonthByDz.cs b/Back/skydiveLogs-api.Domain/StatsForLastMonthByDz.cs index 77e21a2..bde99f8 100644 --- a/Back/skydiveLogs-api.Domain/StatsForLastMonthByDz.cs +++ b/Back/skydiveLogs-api.Domain/StatsForLastMonthByDz.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsForLastMonthByDz { - public string Label { get; set; } - - public string Label2 { get; set; } + public string DropZone { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsForLastMonthByJumpType.cs b/Back/skydiveLogs-api.Domain/StatsForLastMonthByJumpType.cs index c6feffb..cc4dd6b 100644 --- a/Back/skydiveLogs-api.Domain/StatsForLastMonthByJumpType.cs +++ b/Back/skydiveLogs-api.Domain/StatsForLastMonthByJumpType.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsForLastMonthByJumpType { - public string Label { get; set; } - - public string Label2 { get; set; } + public string JumpType { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsForLastYearByDz.cs b/Back/skydiveLogs-api.Domain/StatsForLastYearByDz.cs index 546792d..2730b00 100644 --- a/Back/skydiveLogs-api.Domain/StatsForLastYearByDz.cs +++ b/Back/skydiveLogs-api.Domain/StatsForLastYearByDz.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsForLastYearByDz { - public string Label { get; set; } - - public string Label2 { get; set; } + public string DropZone { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.Domain/StatsForLastYearByJumpType.cs b/Back/skydiveLogs-api.Domain/StatsForLastYearByJumpType.cs index 1f41ee1..2a5556f 100644 --- a/Back/skydiveLogs-api.Domain/StatsForLastYearByJumpType.cs +++ b/Back/skydiveLogs-api.Domain/StatsForLastYearByJumpType.cs @@ -1,12 +1,8 @@ -using System.Collections.Generic; - namespace skydiveLogs_api.Domain { public class StatsForLastYearByJumpType { - public string Label { get; set; } - - public string Label2 { get; set; } + public string JumpType { get; set; } public int Nb { get; set; } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByDzService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByDzService.cs index 20e2b9a..d7d81bf 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByDzService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByDzService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByGearService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByGearService.cs index 69077d5..c471fa2 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByGearService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByGearService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByJumpTypeService.cs index ec89782..b58ae65 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByJumpTypeService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearByJumpTypeService.cs index d14db86..f900ac0 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearByJumpTypeService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearService.cs index 780ff1c..83b6ab7 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsByYearService.cs @@ -6,7 +6,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces public interface IStatsByYearService { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByDzService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByDzService.cs index 57d0a33..432ce09 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByDzService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByDzService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByJumpTypeService.cs index 7dc7565..5a7a88e 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastMonthByJumpTypeService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByDzService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByDzService.cs index ad0f651..954b86f 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByDzService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByDzService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByJumpTypeService.cs index 7ee94da..c60ee9a 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsForLastYearByJumpTypeService.cs @@ -7,7 +7,7 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces { #region Public Methods - IEnumerable GetStats(); + IEnumerable GetStats(); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsService.cs b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsService.cs index f01349e..a04913b 100644 --- a/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/Interfaces/IStatsService.cs @@ -1,4 +1,5 @@ using skydiveLogs_api.Domain; +using System.Collections.Generic; namespace skydiveLogs_api.DomainBusiness.Interfaces { @@ -8,6 +9,26 @@ namespace skydiveLogs_api.DomainBusiness.Interfaces SimpleSummary GetSimpleSummary(); + IEnumerable GetStatsByAircraft(); + + IEnumerable GetStatsByDz(); + + IEnumerable GetStatsByGear(); + + IEnumerable GetStatsByJumpType(); + + IEnumerable GetStatsByYear(); + + IEnumerable GetStatsForLastMonthByDz(); + + IEnumerable GetStatsForLastMonthByJumpType(); + + IEnumerable GetStatsForLastYearByDz(); + + IEnumerable GetStatsForLastYearByJumpType(); + + IEnumerable GetStatsByYearByJumpType(); + void Reset(); #endregion Public Methods diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsByAircraftService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsByAircraftService.cs index e95f0cc..2815abd 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsByAircraftService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsByAircraftService.cs @@ -6,13 +6,13 @@ using System.Linq; namespace skydiveLogs_api.DomainBusiness { - public class StatsByByAircraftService : IStatsByAircraftService + public class StatsByAircraftService : IStatsByAircraftService { #region Public Constructors - public StatsByByAircraftService(IJumpService jumpService, - IIdentityService identityService, - IStatsByAircraftRepository statsByAircraftRepository) + public StatsByAircraftService(IJumpService jumpService, + IIdentityService identityService, + IStatsByAircraftRepository statsByAircraftRepository) { _jumpService = jumpService; _identityService = identityService; @@ -33,11 +33,11 @@ namespace skydiveLogs_api.DomainBusiness if (allJumps.Any()) { - results = [.. allJumps.GroupBy(j => j.DropZone.Name, + results = [.. allJumps.GroupBy(j => j.Aircraft.Name, j => j, (groupby, jumps) => new StatsByAircraft { - Label = groupby.ToString(), + Aircraft = groupby.ToString(), Nb = jumps.Count(), User = _identityService.ConnectedUser })]; diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsByDzService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsByDzService.cs index 0664085..c8046b4 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsByDzService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsByDzService.cs @@ -23,370 +23,39 @@ namespace skydiveLogs_api.DomainBusiness #region Public Methods - public IEnumerable GetStats() + public IEnumerable GetStats() { - // var allStats = GetAllStats(); - // if (!allStats.ByAircraft.Any()) - // { - // var allJumps = _jumpService.GetAllJumps(); - // var results = new List(); - - // if (allJumps.Any()) - // { - // results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - // j => j, - // (groupby, jumps) => new Statistic - // { - // Label = groupby.ToString(), - // Nb = jumps.Count() - // })]; - // } - - // allStats.ByAircraft = results; - // _userStatsRepository.Update(allStats); - // } - - // return allStats.ByAircraft; - return null; - } - - public SimpleSummary GetSimpleSummary() - { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsByDzRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { results = [.. allJumps.GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + j => j, + (groupby, jumps) => new StatsByDz + { + DropZone = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByDz; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsByDzRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsByDzRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsByGearService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsByGearService.cs index 177fbad..90d045c 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsByGearService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsByGearService.cs @@ -11,385 +11,57 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsByGearService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsByGearRepository statsByGearRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; _statsByGearRepository = statsByGearRepository; - _statsByJumpTypeRepository = statsByJumpTypeRepository; - _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; - _statsByYearRepository = statsByYearRepository; - _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; - _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; - _statsForLastYearByDzRepository = statsForLastYearByDzRepository; - _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } #endregion Public Constructors #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsByGearRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + j => j, + (groupby, jumps) => new StatsByGear + { + Gear = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsByGearRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsByGearRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; private readonly IStatsByGearRepository _statsByGearRepository; - private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; - private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; - private readonly IStatsByYearRepository _statsByYearRepository; - private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; - private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; - private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; - private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsByJumpTypeService.cs index 9a46f75..831016e 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsByJumpTypeService.cs @@ -11,385 +11,57 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsByJumpTypeService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsByJumpTypeRepository statsByJumpTypeRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; - _statsByGearRepository = statsByGearRepository; _statsByJumpTypeRepository = statsByJumpTypeRepository; - _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; - _statsByYearRepository = statsByYearRepository; - _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; - _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; - _statsForLastYearByDzRepository = statsForLastYearByDzRepository; - _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } #endregion Public Constructors #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsByJumpTypeRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + j => j, + (groupby, jumps) => new StatsByJumpType + { + JumpType = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsByJumpTypeRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsByJumpTypeRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; - private readonly IStatsByGearRepository _statsByGearRepository; private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; - private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; - private readonly IStatsByYearRepository _statsByYearRepository; - private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; - private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; - private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; - private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsByYearByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsByYearByJumpTypeService.cs index ac10b65..1920469 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsByYearByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsByYearByJumpTypeService.cs @@ -11,385 +11,58 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsByYearByJumpTypeService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; - _statsByGearRepository = statsByGearRepository; - _statsByJumpTypeRepository = statsByJumpTypeRepository; _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; - _statsByYearRepository = statsByYearRepository; - _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; - _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; - _statsForLastYearByDzRepository = statsForLastYearByDzRepository; - _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } #endregion Public Constructors #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsByYearByJumpTypeRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; + j => j, + (groupby, jumps) => new StatsByYearByJumpType + { + Year = groupby.Year.ToString(), + JumpType = groupby.Name.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsByYearByJumpTypeRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsByYearByJumpTypeRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; - private readonly IStatsByGearRepository _statsByGearRepository; - private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; - private readonly IStatsByYearRepository _statsByYearRepository; - private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; - private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; - private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; - private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsByYearService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsByYearService.cs index c6891bd..81bb2a0 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsByYearService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsByYearService.cs @@ -11,385 +11,57 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsByYearService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsByYearRepository statsByYearRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; - _statsByGearRepository = statsByGearRepository; - _statsByJumpTypeRepository = statsByJumpTypeRepository; - _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; _statsByYearRepository = statsByYearRepository; - _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; - _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; - _statsForLastYearByDzRepository = statsForLastYearByDzRepository; - _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } #endregion Public Constructors #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsByYearRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + j => j, + (groupby, jumps) => new StatsByYear + { + Year = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsByYearRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsByYearRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; - private readonly IStatsByGearRepository _statsByGearRepository; - private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; - private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; private readonly IStatsByYearRepository _statsByYearRepository; - private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; - private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; - private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; - private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByDzService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByDzService.cs index ad16b2f..5cbfdca 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByDzService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByDzService.cs @@ -11,191 +11,25 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsForLastMonthByDzService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; - _statsByGearRepository = statsByGearRepository; - _statsByJumpTypeRepository = statsByJumpTypeRepository; - _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; - _statsByYearRepository = statsByYearRepository; _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; - _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; - _statsForLastYearByDzRepository = statsForLastYearByDzRepository; - _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } #endregion Public Constructors #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsForLastMonthByDzRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { @@ -204,192 +38,35 @@ namespace skydiveLogs_api.DomainBusiness var monthOfLastJump = lastJump.JumpDate.Month; results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + .GroupBy(j => j.DropZone.Name, + j => j, + (groupby, jumps) => new StatsForLastMonthByDz + { + DropZone = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsForLastMonthByDzRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsForLastMonthByDzRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; - private readonly IStatsByGearRepository _statsByGearRepository; - private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; - private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; - private readonly IStatsByYearRepository _statsByYearRepository; private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; - private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; - private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; - private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByJumpTypeService.cs index 7fd779e..9f89577 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsForLastMonthByJumpTypeService.cs @@ -11,191 +11,25 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsForLastMonthByJumpTypeService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; - _statsByGearRepository = statsByGearRepository; - _statsByJumpTypeRepository = statsByJumpTypeRepository; - _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; - _statsByYearRepository = statsByYearRepository; - _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; - _statsForLastYearByDzRepository = statsForLastYearByDzRepository; - _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } #endregion Public Constructors #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsForLastMonthByJumpTypeRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { @@ -204,192 +38,35 @@ namespace skydiveLogs_api.DomainBusiness var monthOfLastJump = lastJump.JumpDate.Month; results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + .GroupBy(j => j.JumpType.Name, + j => j, + (groupby, jumps) => new StatsForLastMonthByJumpType + { + JumpType = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsForLastMonthByJumpTypeRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsForLastMonthByJumpTypeRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; - private readonly IStatsByGearRepository _statsByGearRepository; - private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; - private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; - private readonly IStatsByYearRepository _statsByYearRepository; - private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; - private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; - private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByDzService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByDzService.cs index 4ed6259..6b44295 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByDzService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByDzService.cs @@ -11,253 +11,25 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsForLastYearByDzService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsForLastYearByDzRepository statsForLastYearByDzRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; - _statsByGearRepository = statsByGearRepository; - _statsByJumpTypeRepository = statsByJumpTypeRepository; - _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; - _statsByYearRepository = statsByYearRepository; - _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; - _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; _statsForLastYearByDzRepository = statsForLastYearByDzRepository; - _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } #endregion Public Constructors #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsForLastYearByDzRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { @@ -265,131 +37,35 @@ namespace skydiveLogs_api.DomainBusiness var yearOfLastJump = lastJump.JumpDate.Year; results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + .GroupBy(j => j.DropZone.Name, + j => j, + (groupby, jumps) => new StatsForLastYearByDz + { + DropZone = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsForLastYearByDzRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + public void Reset() + { + _statsForLastYearByDzRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; - private readonly IStatsByGearRepository _statsByGearRepository; - private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; - private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; - private readonly IStatsByYearRepository _statsByYearRepository; - private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; - private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; - private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByJumpTypeService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByJumpTypeService.cs index 30143d5..7f0569c 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByJumpTypeService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsForLastYearByJumpTypeService.cs @@ -11,27 +11,11 @@ namespace skydiveLogs_api.DomainBusiness #region Public Constructors public StatsForLastYearByJumpTypeService(IJumpService jumpService, - IIdentityService identityService, - IStatsByDzRepository statsByDzRepository, - IStatsByGearRepository statsByGearRepository, - IStatsByJumpTypeRepository statsByJumpTypeRepository, - IStatsByYearByJumpTypeRepository statsByYearByJumpTypeRepository, - IStatsByYearRepository statsByYearRepository, - IStatsForLastMonthByDzRepository statsForLastMonthByDzRepository, - IStatsForLastMonthByJumpTypeRepository statsForLastMonthByJumpTypeRepository, - IStatsForLastYearByDzRepository statsForLastYearByDzRepository, - IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) + IIdentityService identityService, + IStatsForLastYearByJumpTypeRepository statsForLastYearByJumpTypeRepository) { _jumpService = jumpService; _identityService = identityService; - _statsByDzRepository = statsByDzRepository; - _statsByGearRepository = statsByGearRepository; - _statsByJumpTypeRepository = statsByJumpTypeRepository; - _statsByYearByJumpTypeRepository = statsByYearByJumpTypeRepository; - _statsByYearRepository = statsByYearRepository; - _statsForLastMonthByDzRepository = statsForLastMonthByDzRepository; - _statsForLastMonthByJumpTypeRepository = statsForLastMonthByJumpTypeRepository; - _statsForLastYearByDzRepository = statsForLastYearByDzRepository; _statsForLastYearByJumpTypeRepository = statsForLastYearByJumpTypeRepository; } @@ -39,225 +23,13 @@ namespace skydiveLogs_api.DomainBusiness #region Public Methods - public SimpleSummary GetSimpleSummary() + public IEnumerable GetStats() { - var allJumps = _jumpService.GetAllJumps(); - var results = new SimpleSummary(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - - results = new SimpleSummary - { - LastJump = lastJump, - TotalJumps = allJumps.Count(), - TotalCutaways = allJumps.Where(j => j.WithCutaway).Count() - }; - } - - return results; - } - - public IEnumerable GetStatsByAircraft() - { - var allStats = GetAllStats(); - if (!allStats.ByAircraft.Any()) + var allStats = _statsForLastYearByJumpTypeRepository.GetAll(_identityService.ConnectedUser); + if (!allStats.Any()) { var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.Aircraft.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByAircraft = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByAircraft; - } - - public IEnumerable GetStatsByDz() - { - var allStats = GetAllStats(); - if (!allStats.ByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - 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; - } - - public IEnumerable GetStatsByGear() - { - var allStats = GetAllStats(); - if (!allStats.ByGear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => $"{j.Gear.Name} / {j.Gear.MainCanopy}", - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByGear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByGear; - } - - public IEnumerable GetStatsByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByJumpType; - } - - public IEnumerable GetStatsByYear() - { - var allStats = GetAllStats(); - if (!allStats.ByYear.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => j.JumpDate.Year, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYear = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYear; - } - - public IEnumerable GetStatsForLastMonthByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByDz; - } - - public IEnumerable GetStatsForLastMonthByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastMonthByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - var monthOfLastJump = lastJump.JumpDate.Month; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump && j.JumpDate.Month == monthOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastMonthByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastMonthByJumpType; - } - - public IEnumerable GetStatsForLastYearByDz() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByDz.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); + var results = new List(); if (allJumps.Any()) { @@ -265,130 +37,36 @@ namespace skydiveLogs_api.DomainBusiness var yearOfLastJump = lastJump.JumpDate.Year; results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.DropZone.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; + .GroupBy(j => j.JumpType.Name, + j => j, + (groupby, jumps) => new StatsForLastYearByJumpType + { + JumpType = groupby.ToString(), + Nb = jumps.Count(), + User = _identityService.ConnectedUser + })]; } - allStats.ForLastYearByDz = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByDz; - } - - public IEnumerable GetStatsForLastYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ForLastYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - var lastJump = allJumps.OrderByDescending(j => j.JumpDate).First(); - var yearOfLastJump = lastJump.JumpDate.Year; - - results = [.. allJumps.Where(j => j.JumpDate.Year == yearOfLastJump) - .GroupBy(j => j.JumpType.Name, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ForLastYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ForLastYearByJumpType; - } - - public IEnumerable GetStatsByYearByJumpType() - { - var allStats = GetAllStats(); - if (!allStats.ByYearByJumpType.Any()) - { - var allJumps = _jumpService.GetAllJumps(); - var results = new List(); - - if (allJumps.Any()) - { - results = [.. allJumps.GroupBy(j => new { j.JumpType.Name, j.JumpDate.Year }, - j => j, - (groupby, jumps) => new Statistic - { - Label = groupby.Year.ToString(), - Label2 = groupby.Name.ToString(), - Nb = jumps.Count() - })]; - } - - allStats.ByYearByJumpType = results; - _userStatsRepository.Update(allStats); - } - - return allStats.ByYearByJumpType; - } - - 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 = _userStatsRepository.GetAll(_identityService.ConnectedUser); - if (allStats == null) - { - allStats = new UserStats - { - User = _identityService.ConnectedUser - }; - _userStatsRepository.Add(allStats); + _statsForLastYearByJumpTypeRepository.Add(results); + return results; } return allStats; } - #endregion Private Methods + + public void Reset() + { + _statsForLastYearByJumpTypeRepository.Delete(_identityService.ConnectedUser); + } + + #endregion Public Methods + #region Private Fields private readonly IIdentityService _identityService; private readonly IJumpService _jumpService; - private readonly IStatsByDzRepository _statsByDzRepository; - private readonly IStatsByGearRepository _statsByGearRepository; - private readonly IStatsByJumpTypeRepository _statsByJumpTypeRepository; - private readonly IStatsByYearByJumpTypeRepository _statsByYearByJumpTypeRepository; - private readonly IStatsByYearRepository _statsByYearRepository; - private readonly IStatsForLastMonthByDzRepository _statsForLastMonthByDzRepository; - private readonly IStatsForLastMonthByJumpTypeRepository _statsForLastMonthByJumpTypeRepository; - private readonly IStatsForLastYearByDzRepository _statsForLastYearByDzRepository; private readonly IStatsForLastYearByJumpTypeRepository _statsForLastYearByJumpTypeRepository; #endregion Private Fields diff --git a/Back/skydiveLogs-api.DomainBusiness/StatsService.cs b/Back/skydiveLogs-api.DomainBusiness/StatsService.cs index d32e7c9..74cf267 100644 --- a/Back/skydiveLogs-api.DomainBusiness/StatsService.cs +++ b/Back/skydiveLogs-api.DomainBusiness/StatsService.cs @@ -1,5 +1,6 @@ using skydiveLogs_api.Domain; using skydiveLogs_api.DomainBusiness.Interfaces; +using System.Collections.Generic; using System.Linq; namespace skydiveLogs_api.DomainBusiness @@ -8,9 +9,29 @@ namespace skydiveLogs_api.DomainBusiness { #region Public Constructors - public StatsService(IJumpService jumpService) + public StatsService(IJumpService jumpService, + IStatsByAircraftService statsByAircraftService, + IStatsByDzService statsByDzService, + IStatsByGearService statsByGearService, + IStatsByJumpTypeService statsByJumpTypeService, + IStatsByYearByJumpTypeService statsByYearByJumpTypeService, + IStatsByYearService statsByYearService, + IStatsForLastMonthByDzService statsForLastMonthByDzService, + IStatsForLastMonthByJumpTypeService statsForLastMonthByJumpTypeService, + IStatsForLastYearByDzService statsForLastYearByDzService, + IStatsForLastYearByJumpTypeService statsForLastYearByJumpTypeService) { _jumpService = jumpService; + _statsByAircraftService = statsByAircraftService; + _statsByDzService = statsByDzService; + _statsByGearService = statsByGearService; + _statsByJumpTypeService = statsByJumpTypeService; + _statsByYearByJumpTypeService = statsByYearByJumpTypeService; + _statsByYearService = statsByYearService; + _statsForLastMonthByDzService = statsForLastMonthByDzService; + _statsForLastMonthByJumpTypeService = statsForLastMonthByJumpTypeService; + _statsForLastYearByDzService = statsForLastYearByDzService; + _statsForLastYearByJumpTypeService = statsForLastYearByJumpTypeService; } #endregion Public Constructors @@ -55,11 +76,122 @@ namespace skydiveLogs_api.DomainBusiness // _userStatsRepository.Update(myStats); } + public IEnumerable GetStatsByAircraft() + { + var tmp = _statsByAircraftService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.Aircraft, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsByDz() + { + var tmp = _statsByDzService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.DropZone, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsByGear() + { + var tmp = _statsByGearService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.Gear, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsByJumpType() + { + var tmp = _statsByJumpTypeService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.JumpType, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsByYear() + { + var tmp = _statsByYearService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.Year, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsForLastMonthByDz() + { + var tmp = _statsForLastMonthByDzService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.DropZone, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsForLastMonthByJumpType() + { + var tmp = _statsForLastMonthByJumpTypeService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.JumpType, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsForLastYearByDz() + { + var tmp = _statsForLastYearByDzService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.DropZone, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsForLastYearByJumpType() + { + var tmp = _statsForLastYearByJumpTypeService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.JumpType, + Nb = a.Nb + })]; + } + + public IEnumerable GetStatsByYearByJumpType() + { + var tmp = _statsByYearByJumpTypeService.GetStats(); + return [.. tmp.Select(a => new Statistic + { + Label = a.Year, + Label2 = a.JumpType, + Nb = a.Nb + })]; + } + #endregion Public Methods #region Private Fields private readonly IJumpService _jumpService; + private readonly IStatsByAircraftService _statsByAircraftService; + private readonly IStatsByDzService _statsByDzService; + private readonly IStatsByGearService _statsByGearService; + private readonly IStatsByJumpTypeService _statsByJumpTypeService; + private readonly IStatsByYearByJumpTypeService _statsByYearByJumpTypeService; + private readonly IStatsByYearService _statsByYearService; + private readonly IStatsForLastMonthByDzService _statsForLastMonthByDzService; + private readonly IStatsForLastMonthByJumpTypeService _statsForLastMonthByJumpTypeService; + private readonly IStatsForLastYearByDzService _statsForLastYearByDzService; + private readonly IStatsForLastYearByJumpTypeService _statsForLastYearByJumpTypeService; #endregion Private Fields } diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByDzRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByDzRepository.cs index b5af2c3..500f2a6 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByDzRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByDzRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsByDzRepository : IRepository + public interface IStatsByDzRepository : IStatsRepository { - #region Public Methods - - StatsByDz GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByGearRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByGearRepository.cs index 02ac751..0c3e2b9 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByGearRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByGearRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsByGearRepository : IRepository + public interface IStatsByGearRepository : IStatsRepository { - #region Public Methods - - StatsByGear GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByJumpTypeRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByJumpTypeRepository.cs index 555a76e..4c19444 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByJumpTypeRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsByJumpTypeRepository : IRepository + public interface IStatsByJumpTypeRepository : IStatsRepository { - #region Public Methods - - StatsByJumpType GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearByJumpTypeRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearByJumpTypeRepository.cs index 0da9de6..d6d134e 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearByJumpTypeRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsByYearByJumpTypeRepository : IRepository + public interface IStatsByYearByJumpTypeRepository : IStatsRepository { - #region Public Methods - - StatsByYearByJumpType GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearRepository.cs index 0f12ea3..00ecb5c 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsByYearRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsByYearRepository : IRepository + public interface IStatsByYearRepository : IStatsRepository { - #region Public Methods - - StatsByYear GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByDzRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByDzRepository.cs index 9efdf24..6e91941 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByDzRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByDzRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsForLastMonthByDzRepository : IRepository + public interface IStatsForLastMonthByDzRepository : IStatsRepository { - #region Public Methods - - StatsForLastMonthByDz GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByJumpTypeRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByJumpTypeRepository.cs index c548b41..eee6dce 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastMonthByJumpTypeRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsForLastMonthByJumpTypeRepository : IRepository + public interface IStatsForLastMonthByJumpTypeRepository : IStatsRepository { - #region Public Methods - - StatsForLastMonthByJumpType GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByDzRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByDzRepository.cs index 84712e8..adc164d 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByDzRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByDzRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsForLastYearByDzRepository : IRepository + public interface IStatsForLastYearByDzRepository : IStatsRepository { - #region Public Methods - - StatsForLastYearByDz GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByJumpTypeRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByJumpTypeRepository.cs index 25b176e..15cfd11 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsForLastYearByJumpTypeRepository.cs @@ -2,12 +2,7 @@ using skydiveLogs_api.Domain; namespace skydiveLogs_api.DomainService.Repositories { - public interface IStatsForLastYearByJumpTypeRepository : IRepository + public interface IStatsForLastYearByJumpTypeRepository : IStatsRepository { - #region Public Methods - - StatsForLastYearByJumpType GetAll(User user); - - #endregion Public Methods } } \ No newline at end of file diff --git a/Back/skydiveLogs-api.DomainService/Repositories/IStatsRepository.cs b/Back/skydiveLogs-api.DomainService/Repositories/IStatsRepository.cs index b9c205e..267ac38 100644 --- a/Back/skydiveLogs-api.DomainService/Repositories/IStatsRepository.cs +++ b/Back/skydiveLogs-api.DomainService/Repositories/IStatsRepository.cs @@ -7,11 +7,13 @@ namespace skydiveLogs_api.DomainService.Repositories { #region Public Methods - T GetAll(User user); + IEnumerable GetAll(User user); - int Add(T newEntity); + int Add(IEnumerable newEntity); - bool Update(T updated); + bool Update(IEnumerable updatedEntity, User user); + + bool Delete(User user); #endregion Public Methods } diff --git a/Back/skydiveLogs-api.Infrastructure/StatsByAircraftRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsByAircraftRepository.cs index e91a992..500979e 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsByAircraftRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsByAircraftRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsByAircraftRepository : IStatsRepository + public class StatsByAircraftRepository : IStatsByAircraftRepository { #region Public Constructors diff --git a/Back/skydiveLogs-api.Infrastructure/StatsByDzRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsByDzRepository.cs index 784bc6d..c64b5af 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsByDzRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsByDzRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsByDzRepository : IStatsRepository + public class StatsByDzRepository : IStatsByDzRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsByDz newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsByDz GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsByDz stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsByGearRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsByGearRepository.cs index b7a2476..ba2fd95 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsByGearRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsByGearRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsByGearRepository : IStatsRepository + public class StatsByGearRepository : IStatsByGearRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsByGear newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsByGear GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsByGear stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsByJumpTypeRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsByJumpTypeRepository.cs index 1cfa71c..e938f54 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsByJumpTypeRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsByJumpTypeRepository : IStatsRepository + public class StatsByJumpTypeRepository : IStatsByJumpTypeRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsByJumpType newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsByJumpType GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsByJumpType stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsByYearByJumpTypeRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsByYearByJumpTypeRepository.cs index b76daa9..51da73d 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsByYearByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsByYearByJumpTypeRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsByYearByJumpTypeRepository : IStatsRepository + public class StatsByYearByJumpTypeRepository : IStatsByYearByJumpTypeRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsByYearByJumpType newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsByYearByJumpType GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsByYearByJumpType stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsByYearRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsByYearRepository.cs index b743c77..5a0f716 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsByYearRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsByYearRepository.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using LiteDB; using skydiveLogs_api.Domain; using skydiveLogs_api.DomainService.Repositories; @@ -5,7 +6,7 @@ using skydiveLogs_api.Infrastructure.Interfaces; namespace skydiveLogs_api.Infrastructure { - public class StatsByYearRepository : IStatsRepository + public class StatsByYearRepository : IStatsByYearRepository { #region Public Constructors @@ -19,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsByYear newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -36,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsByYear GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsByYear stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByDzRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByDzRepository.cs index ae6ad9b..d970a89 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByDzRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByDzRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsForLastMonthByDzRepository : IStatsRepository + public class StatsForLastMonthByDzRepository : IStatsForLastMonthByDzRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsForLastMonthByDz newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsForLastMonthByDz GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsForLastMonthByDz stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByJumpTypeRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByJumpTypeRepository.cs index 90d6dd4..cdb0680 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsForLastMonthByJumpTypeRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsForLastMonthByJumpTypeRepository : IStatsRepository + public class StatsForLastMonthByJumpTypeRepository : IStatsForLastMonthByJumpTypeRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsForLastMonthByJumpType newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsForLastMonthByJumpType GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsForLastMonthByJumpType stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByDzRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByDzRepository.cs index 14e8814..3888be8 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByDzRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByDzRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsForLastYearByDzRepository : IStatsRepository + public class StatsForLastYearByDzRepository : IStatsForLastYearByDzRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsForLastYearByDz newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsForLastYearByDz GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsForLastYearByDz stats) + public bool Update(IEnumerable 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 diff --git a/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByJumpTypeRepository.cs b/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByJumpTypeRepository.cs index c532267..9921007 100644 --- a/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByJumpTypeRepository.cs +++ b/Back/skydiveLogs-api.Infrastructure/StatsForLastYearByJumpTypeRepository.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace skydiveLogs_api.Infrastructure { - public class StatsForLastYearByJumpTypeRepository : IStatsRepository + public class StatsForLastYearByJumpTypeRepository : IStatsForLastYearByJumpTypeRepository { #region Public Constructors @@ -20,14 +20,17 @@ namespace skydiveLogs_api.Infrastructure #region Public Methods - public int Add(StatsForLastYearByJumpType newStats) + public int Add(IEnumerable newStats) { - int result; + int result = 0; try { - var tmp = _col.Insert(newStats); - result = tmp.AsInt32; + foreach (var newStat in newStats) + { + var tmp = _col.Insert(newStats); + result = tmp; + } } catch { @@ -37,17 +40,26 @@ namespace skydiveLogs_api.Infrastructure return result; } - public StatsForLastYearByJumpType GetAll(User user) + public IEnumerable GetAll(User user) { return _col.Include(x => x.User) .Query() .Where(j => j.User.Id == user.Id) - .SingleOrDefault(); + .ToList(); } - public bool Update(StatsForLastYearByJumpType stats) + public bool Update(IEnumerable 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