Beispiel #1
0
        private List <SettlementViewModel.SingleExpense> GenerateCoveredUserLiabilities(int currentUserId, int displayedDays)
        {
            var chosenDate          = DateTime.Now.AddDays(-displayedDays);
            var userPartialExpenses = _context.PartialExpenses
                                      .Where(pe => pe.UserId == currentUserId && pe.Covered && DateTime.Compare(pe.SettlementDate.Value, chosenDate) > 0)
                                      .AsNoTracking()
                                      .ToList();

            var userTotalExpenses = _context.TotalExpenses
                                    .Where(te => userPartialExpenses.Any(pe => pe.TotalExpenseId == te.Id) && te.OwnerId != currentUserId)
                                    .AsNoTracking()
                                    .ToList();

            //Users with the logged in user
            var userDetails = _context.Users
                              .Where(u => userPartialExpenses.Any(pe => pe.UserId == u.Id))
                              .AsNoTracking()
                              .ToList();

            var teamDetails = _context.Teams
                              .Where(t => userPartialExpenses.Any(pe => pe.TeamId == t.Id))
                              .AsNoTracking()
                              .ToList();

            var userLiabilities = new List <SettlementViewModel.SingleExpense>();

            foreach (var totalExpense in userTotalExpenses)
            {
                PartialExpense pe = userPartialExpenses.Find(partial => partial.TotalExpenseId == totalExpense.Id);
                var            singleExpenseVM = new SettlementViewModel.SingleExpense
                {
                    UserInfo         = new Tuple <int, string>(pe.UserId, userDetails.Find(u => u.Id == pe.UserId).FullName),
                    TeamInfo         = new Tuple <int, string>(pe.TeamId, teamDetails.Find(t => t.Id == pe.TeamId).Name),
                    Value            = pe.Value,
                    FinalizationDate = pe.SettlementDate.Value,
                    TotalExpenseId   = totalExpense.Id
                };
                userLiabilities.Add(singleExpenseVM);
            }

            return(userLiabilities);
        }
Beispiel #2
0
        private List <SettlementViewModel.SingleExpense> GenerateCurrentUserCredibilities(int currentUserId)
        {
            var userTotalExpenses = _context.TotalExpenses
                                    .Include(te => te.PartialExpenses)
                                    .Where(te => te.OwnerId == currentUserId)
                                    .AsNoTracking()
                                    .ToList();

            //Users with the logged in user
            var userDetails = _context.Users
                              .Where(u => userTotalExpenses.Any(ute => ute.PartialExpenses.Any(pe => pe.UserId == u.Id)))
                              .AsNoTracking()
                              .ToList();

            var teamDetails = _context.Teams
                              .Where(t => userTotalExpenses.Any(ute => ute.PartialExpenses.Any(pe => pe.TeamId == t.Id)))
                              .AsNoTracking()
                              .ToList();

            var userCredibilities = new List <SettlementViewModel.SingleExpense>();

            foreach (var te in userTotalExpenses)
            {
                foreach (var pe in te.PartialExpenses)
                {
                    if (pe.UserId != currentUserId && !pe.Covered)
                    {
                        var singleCredibility = new SettlementViewModel.SingleExpense
                        {
                            UserInfo         = new Tuple <int, string>(pe.UserId, userDetails.Find(u => u.Id == pe.UserId).FullName),
                            TeamInfo         = new Tuple <int, string>(pe.TeamId, teamDetails.Find(t => t.Id == pe.TeamId).Name),
                            TotalExpenseId   = pe.TotalExpenseId,
                            Value            = pe.Value,
                            FinalizationDate = te.FinalizationDate
                        };
                        userCredibilities.Add(singleCredibility);
                    }
                }
            }

            return(userCredibilities);
        }
Beispiel #3
0
        private List <SettlementViewModel.SingleExpense> GenerateUserLiabilities(int currentUserId)
        {
            var userPartialExpenses = _context.PartialExpenses
                                      .Where(pe => pe.UserId == currentUserId)
                                      .AsNoTracking()
                                      .ToList();

            var userTotalExpenses = _context.TotalExpenses
                                    .Where(te => userPartialExpenses.Any(pe => pe.TotalExpenseId == te.Id))
                                    .AsNoTracking()
                                    .ToList();

            //Users with the logged in user
            var userDetails = _context.Users
                              .Where(u => userPartialExpenses.Any(pe => pe.UserId == u.Id))
                              .AsNoTracking()
                              .ToList();

            var teamDetails = _context.Teams
                              .Where(t => userPartialExpenses.Any(pe => pe.TeamId == t.Id))
                              .AsNoTracking()
                              .ToList();

            var userLiabilities = new List <SettlementViewModel.SingleExpense>();

            foreach (var pe in userPartialExpenses)
            {
                TotalExpense totalExpense    = userTotalExpenses.Find(te => te.Id == pe.TotalExpenseId);
                var          singleExpenseVM = new SettlementViewModel.SingleExpense
                {
                    UserInfo         = new Tuple <int, string>(pe.UserId, userDetails.Find(u => u.Id == pe.UserId).FullName),
                    TeamInfo         = new Tuple <int, string>(pe.TeamId, teamDetails.Find(t => t.Id == pe.TeamId).Name),
                    Value            = pe.Value,
                    FinalizationDate = totalExpense.FinalizationDate,
                    TotalExpenseId   = totalExpense.Id
                };
                userLiabilities.Add(singleExpenseVM);
            }

            return(userLiabilities);
        }