/// <inheritdoc /> public async Task <IEnumerable <IDepositStatistics> > GetDepositStatisticsAsync() { if (context == null) { throw new InvalidOperationException(); } List <DepositStatistics> statistics = new List <DepositStatistics>(); foreach (Deposit dp in this.context.Deposits.ToArray()) { if (dp.Membership == null) { continue; } if (statistics.Find(st => st.Member == dp.Membership.Member) == null) { DepositStatistics dps = new DepositStatistics(); dps.Member = dp.Membership.Member; dps.TotalAmount = dp.Amount; dps.Year = dp.Membership.End.Year; statistics.Add(dps); } else { var statistic = statistics.Find(st => st.Member == dp.Membership.Member); statistic.TotalAmount = Decimal.Add(dp.Amount, statistic.TotalAmount); } } return(statistics); }
/// <inheritdoc /> public async Task <IEnumerable <IDepositStatistics> > GetDepositStatisticsAsync() { if (context == null) { throw new InvalidOperationException("Database hasn't been initialised yet"); } //Get lits of members and list of depositstatistics List <Member> members = await context.Members.ToListAsync(); List <DepositStatistics> statistics = new List <DepositStatistics>(); //iterate through members foreach (var member in members) { //Create new depositstatistic DepositStatistics stat = new DepositStatistics(); //Set member stat.Member = member; if (member.Memberships.Count > 0 && member.Memberships != null && member.Memberships[member.Memberships.Count - 1].End == DateTime.MaxValue) { Membership membershipOfMember = member.Memberships.ElementAt(member.Memberships.Count - 1); decimal curTotalAmount = 0; foreach (var curDeposit in membershipOfMember.Deposits) { curTotalAmount += curDeposit.Amount; } stat.TotalAmount = curTotalAmount; } else { stat.TotalAmount = 0; } statistics.Add(stat); } return(statistics); }
/// <inheritdoc /> public async Task <IEnumerable <IDepositStatistics> > GetDepositStatisticsAsync() { if (context == null) { throw new InvalidOperationException("Error: Database not Initialized!"); } List <Member> members = await context.Members.ToListAsync(); List <DepositStatistics> statistics = new List <DepositStatistics>(); foreach (var curMember in members) { DepositStatistics curSatistic = new DepositStatistics(); curSatistic.Member = curMember; //I only used the deposits of the current membership (if the user was in another membership before, these Deposits are ignored) if (curMember.Memberships != null && curMember.Memberships.Count > 0 && curMember.Memberships[curMember.Memberships.Count - 1].End == DateTime.MaxValue) { Membership membership = curMember.Memberships[curMember.Memberships.Count - 1]; decimal curTotalAmount = 0; foreach (var curDeposit in membership.Deposits) { curTotalAmount += curDeposit.Amount; } curSatistic.TotalAmount = curTotalAmount; } else { curSatistic.TotalAmount = 0; } statistics.Add(curSatistic); } return(statistics); }
/// <inheritdoc /> public async Task <IEnumerable <IDepositStatistics> > GetDepositStatisticsAsync() { if (context == null) { throw new InvalidOperationException(); } List <Member> members = await context.Member.ToListAsync(); List <DepositStatistics> statistics = new List <DepositStatistics>(); foreach (var curMember in members) { DepositStatistics curSatistic = new DepositStatistics { Member = curMember }; if (curMember.Memberships != null && curMember.Memberships.Count > 0 && curMember.Memberships[curMember.Memberships.Count - 1].End == DateTime.MaxValue) { Membership membership = curMember.Memberships[curMember.Memberships.Count - 1]; decimal curTotalAmount = 0; foreach (var curDeposit in membership.Deposits) { curTotalAmount += curDeposit.Amount; } curSatistic.TotalAmount = curTotalAmount; } else { curSatistic.TotalAmount = 0; } statistics.Add(curSatistic); } return(statistics); }