public ActionResult UpdateParticipation(Peanut peanut, PeanutParticipation peanutParticipation, PeanutParticipationUpdateCommand peanutParticipationUpdateCommand, User currentUser) { Require.NotNull(peanut, "peanut"); Require.NotNull(peanutParticipation, "peanutParticipation"); Require.NotNull(peanutParticipationUpdateCommand, "peanutParticipationUpdateCommand"); Require.IsTrue(() => peanut.Equals(peanutParticipation.Peanut), "peanutParticipation"); if (!ModelState.IsValid) { return(RedirectToAction("Show", new { peanut = peanut.BusinessId })); } Dictionary <UserGroupMembership, PeanutParticipationDto> participationUpdates = new Dictionary <UserGroupMembership, PeanutParticipationDto> { { peanutParticipation.UserGroupMembership, new PeanutParticipationDto(peanutParticipationUpdateCommand.PeanutParticipationType, peanutParticipation.ParticipationState) } }; PeanutService.AddOrUpdateParticipations(peanut, participationUpdates, currentUser); return(RedirectToAction("Show", new { peanut = peanut.BusinessId })); }
public ActionResult DeclineParticipation(Peanut peanut, PeanutParticipation peanutParticipation, User currentUser) { Require.NotNull(peanut, "peanut"); Require.NotNull(peanutParticipation, "peanutParticipation"); Require.IsTrue(() => peanutParticipation.Peanut.Equals(peanut), "peanutParticipation"); PeanutService.RemoveParticipations(peanut, new List <UserGroupMembership> { peanutParticipation.UserGroupMembership }, currentUser); return(RedirectToAction("Day", new { year = peanut.Day.Year, month = peanut.Day.Month, day = peanut.Day.Day })); }
public PeanutShowViewModel(Core.Domain.Peanuts.Peanut peanut, PeanutParticipation usersPeanutParticipation, IList <UserGroupMembership> invitableUsers, IList <PeanutParticipationType> participationTypes, PeanutEditOptions peanutEditOptions) { Require.NotNull(peanut, "peanut"); Require.NotNull(peanutEditOptions, "peanutEditOptions"); Require.NotNull(participationTypes, "participationTypes"); Require.NotNull(invitableUsers, "invitableUsers"); Peanut = peanut; UsersPeanutParticipation = usersPeanutParticipation; PeanutEditOptions = peanutEditOptions; InviteableUsers = invitableUsers; ParticipationTypes = participationTypes; }
public IList <PeanutParticipation> AddOrUpdateParticipations(Peanut peanut, IDictionary <UserGroupMembership, PeanutParticipationDto> participations, User user) { Require.NotNull(peanut, "peanut"); Require.NotNull(participations, "participations"); Require.NotNull(user, "user"); if (peanut.IsFixed) { throw new InvalidOperationException("Einem fixierten Peanut können keine weiteren Teilnehmer hinzugefügt werden."); } foreach (UserGroupMembership membership in participations.Keys) { PeanutParticipation existingParticipation = peanut.Participations.SingleOrDefault(part => part.UserGroupMembership.Equals(membership)); if (existingParticipation != null) { /*Der Nutzer nimmt bereits teil. In diesem Falle wird die Art der Teilnahme angepasst und der Status auf Confirmed gesetzt.*/ if (!existingParticipation.GetDto().Equals(participations[membership])) { existingParticipation.Update(participations[membership], new EntityChangedDto(user, DateTime.Now)); } } else { /*Es handelt sich um einen neuen Teilnehmer*/ PeanutParticipation newParticipation = new PeanutParticipation(peanut, membership, participations[membership], new EntityCreatedDto(user, DateTime.Now)); peanut.AddParticipators(new EntityChangedDto(user, DateTime.Now), newParticipation); } } return(new ReadOnlyCollection <PeanutParticipation>(peanut.Participations)); }
public PeanutParticipationUpdateCommand(PeanutParticipation participation) { Require.NotNull(participation, "participation"); PeanutParticipationType = participation.ParticipationType; }
public PeanutParticipationUpdateViewModel(PeanutParticipation peanutParticipation, IList <PeanutParticipationType> participationTypes, PeanutParticipationUpdateCommand peanutParticipationUpdateCommand) { PeanutParticipation = peanutParticipation; ParticipationTypes = participationTypes; PeanutParticipationUpdateCommand = peanutParticipationUpdateCommand; }