コード例 #1
0
        public ActionResult SettleDebts(SettleDebtsViewModel vm)
        {
            if (vm.IsAddPlayerButtonClicked)
            {
                User user = db.Users.Find(vm.AddedUserId);
                vm.Participants.Add(new SettleDebtsPlayerViewModel()
                {
                    UserId = vm.AddedUserId,
                    Login = user.Login,
                    HasPaid = false,
                    WasPresent = true
                });
                vm.AvailableUsers = eventService.GetAvailableUsersForEvent(vm.EventId);
                return View(vm);
            }
            if (vm.IsSaveButtonClicked)
            {
                Event @event = db.Events.Find(vm.EventId);
                foreach (var participant in vm.Participants)
                {
                    EventParticipant ep = db.EventParticipants.Where(p => p.User.Id == participant.UserId && p.Event.EventId == vm.EventId).SingleOrDefault();
                    if (ep == null)
                    {
                        // uzytkownik dodany przy rozliczeniu
                        ep = new EventParticipant()
                        {
                            Event = @event,
                            User = db.Users.Find(participant.UserId),
                            IsPaid = participant.HasPaid,
                            WasPresent = participant.WasPresent,
                            WasAnnounced = false
                        };
                        db.EventParticipants.Add(ep);
                        db.SaveChanges();
                    }
                    else
                    {
                        // uzytkownik zapisany wczesniej
                        ep.IsPaid = participant.HasPaid;
                        ep.WasAnnounced = true;
                        ep.WasPresent = participant.WasPresent;
                        db.SaveChanges();
                    }
                }
                return RedirectToAction("index");
            }

            return View(vm);
        }
コード例 #2
0
 public ActionResult SettleDebts(int id)
 {
     Event @event = db.Events.Find(id);
     SettleDebtsViewModel vm = new SettleDebtsViewModel()
     {
         EventId = id,
         EventDate = @event.FormattedDate,
         AvailableUsers = eventService.GetAvailableUsersForEvent(@event.EventId),
         Participants = @event.EventParticipants.Select(p => new SettleDebtsPlayerViewModel()
         {
             Login = p.User.Login,
             UserId = p.User.Id,
             WasPresent = p.WasPresent,
             HasPaid = p.IsPaid
         }).ToList()
     };
     return View(vm);
 }