public async Task <IActionResult> Participate(int?id, EventParticipateViewModel viewModel) { if (id == null) { return(StatusCode((int)HttpStatusCode.BadRequest)); } if (viewModel.CurrentEvent.Start < DateTime.Now) { return(StatusCode((int)HttpStatusCode.BadRequest)); } var user = await _userManager.GetUserAsync(this.User); _participationRepository.Update((int)id, user.UserId, viewModel); // Send participation update to opted-in admins var admins = await _userManager.GetUsersInRoleAsync(RoleNames.ROLE_ADMIN); foreach (var admin in admins) { var config = _notificationConfigurationRepository.GetConfigurationForUser(admin.UserId); if (config != null && config.UserParticipationUpdated) { await _eMailSender.SendUserParticipationEmail(admin.Email); } } return(RedirectToAction(MethodNames.INDEX)); }
public void Update(int eventId, int userId, EventParticipateViewModel viewModel) { var date = DateTime.Now; EventParticipation p = _appDbContext.EventParticipations.Where(x => x.EventId == eventId && x.UserId == userId).FirstOrDefault(); if (p == null) { p = new EventParticipation(); p.Created = date; p.UserId = userId; p.EventId = eventId; _appDbContext.EventParticipations.Add(p); } p.Modified = date; p.AnswerYes = viewModel.ParticipationType == ParticipationTypesEnum.yes; p.AnswerNo = viewModel.ParticipationType == ParticipationTypesEnum.no; p.Note = viewModel.Note; p.IsPlayer = viewModel.IsPlayer; p.IsCoach = viewModel.IsCoach; p.IsScorer = viewModel.IsScorer; p.IsUmpire = viewModel.IsUmpire; p.Seats = viewModel.HasSeats; CommitChanges(); }
public async Task <IActionResult> Participate(int?id) { if (id == null) { return(StatusCode((int)HttpStatusCode.BadRequest)); } EventParticipateViewModel viewModel = new EventParticipateViewModel(); viewModel.CurrentEvent = _eventRepository.Find(x => x.Id == id).FirstOrDefault(); if (viewModel.CurrentEvent == null) { return(StatusCode((int)HttpStatusCode.NotFound)); } var user = await _userManager.GetUserAsync(this.User); var participation = _participationRepository.Find(x => x.EventId == id && x.UserId == user.UserId).FirstOrDefault(); viewModel.DisplayIsPlayer = viewModel.CurrentEvent.PlayersRequired > 0; viewModel.DisplayIsCoach = viewModel.CurrentEvent.CoachesRequired > 0; viewModel.DisplayIsUmpire = viewModel.CurrentEvent.UmpiresRequired > 0; viewModel.DisplayIsScorer = viewModel.CurrentEvent.ScorersRequired > 0; viewModel.DisplayHasSeats = viewModel.CurrentEvent.SeatsRequired > 0; if (participation != null) { if (participation.AnswerYes) { viewModel.ParticipationType = ParticipationTypesEnum.yes; } else if (participation.AnswerNo) { viewModel.ParticipationType = ParticipationTypesEnum.no; } else { viewModel.ParticipationType = ParticipationTypesEnum.maybe; } viewModel.Note = participation.Note; viewModel.IsPlayer = participation.IsPlayer; viewModel.IsCoach = participation.IsCoach; viewModel.IsUmpire = participation.IsUmpire; viewModel.IsScorer = participation.IsScorer; viewModel.HasSeats = participation.Seats; } else { viewModel.ParticipationType = ParticipationTypesEnum.maybe; } if (viewModel.CurrentEvent != null) { return(View(viewModel)); } else { return(RedirectToAction(MethodNames.INDEX)); } }