Пример #1
0
        //public Dictionary<string, decimal> GetMemberBalances(int grpId,
        //                                                     string currUserId)
        //{
        //    List<ApplicationUser> users = GetUsersByGroup(grpId).Where(u => u.Id != currUserId).ToList();
        //    Dictionary<string, decimal> groupDetails = new Dictionary<string, decimal>();
        //    foreach (ApplicationUser user in users)
        //    {
        //            decimal sum = context.Transactions.Where(t => t.GroupID == grpId &&
        //                                                    ((t.SubmitterID == user.Id && t.TargetID == currUserId) ||
        //                                                    (t.SubmitterID == currUserId && t.TargetID == user.Id))).Sum(t => (int?)t.MonetaryAmount) ?? 0;
        //            groupDetails.Add(Utilities.FullName(user), sum);
        //    }
        //    return groupDetails;
        //}
        public List<MemberDetail> GetMemberDetails(int grpId, 
                                             string currUserId)
        {
            List<ApplicationUser> users = GetUsersByGroup(grpId).Where(u => u.Id != currUserId).ToList();
            List<MemberDetail> memberDetails = new List<MemberDetail>();
            foreach (ApplicationUser user in users)
            {
                decimal sum = context.Transactions.Where(t => t.GroupID == grpId &&
                                                        ((t.SubmitterID == user.Id && t.TargetUserID == currUserId) ||
                                                        (t.SubmitterID == currUserId && t.TargetUserID == user.Id))).Sum(t => (int?)t.MonetaryAmount) ?? 0;

                MemberDetail memberDetail = new MemberDetail
                {
                    UserID = user.Id,
                    FullName = Utilities.FullName(user),
                    Balance = sum
                };
                memberDetails.Add(memberDetail);
            }
            return memberDetails;
        }