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); }
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); }