/// <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);
        }
示例#3
0
        /// <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);
        }