public async Task <IActionResult> AssignChosenVolunteers(AssignVolunteersViewModel viewModel) { var authorizableTask = await _mediator.SendAsync(new AuthorizableTaskQuery(viewModel.TaskId)); if (!await authorizableTask.UserCanEdit()) { return(new ForbidResult()); } foreach (var userId in viewModel.UserId) { var cmd = new AssignVolunteerToTaskCommand { UserId = userId, VolunteerTaskId = viewModel.TaskId, NotifyUser = viewModel.NotifyUsers }; await _mediator.SendAsync(cmd); } var task = await _mediator.SendAsync(new DetailsQuery() { VolunteerTaskId = viewModel.TaskId }); return(RedirectToAction("Details", "Event", new { id = task.EventId })); }
public async Task DoNotAssignUsersAlreadyAssigned() { var user = new ApplicationUser() { Id = "Answer42" }; Context.Users.Add(user); Context.VolunteerTasks.Add(new VolunteerTask() { Id = 20 }); Context.VolunteerTaskSignups.Add(new VolunteerTaskSignup() { VolunteerTaskId = 20, User = user }); await Context.SaveChangesAsync(); var message = new AssignVolunteerToTaskCommand() { UserId = "Answer42", VolunteerTaskId = 20 }; await sut.Handle(message); var count = Context.VolunteerTaskSignups.Count(x => x.User.Id == "Answer42"); count.ShouldBe(1); }
public async Task DoNotEmailAlreadyAssignedUsers() { var user = new ApplicationUser() { Id = "Answer42" }; Context.Users.Add(user); Context.VolunteerTasks.Add(new VolunteerTask() { Id = 20 }); Context.VolunteerTaskSignups.Add(new VolunteerTaskSignup() { VolunteerTaskId = 20, User = user }); await Context.SaveChangesAsync(); var message = new AssignVolunteerToTaskCommand() { UserId = "Answer42", VolunteerTaskId = 20, NotifyUser = true }; await sut.Handle(message); _emailSender.Verify(x => x.SendEmailAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Never); }
public async Task DoNotNotifyNewUsersWhenDisabled() { var user = new ApplicationUser() { Id = "Answer40PlusDeuce" }; Context.Users.Add(user); Context.VolunteerTasks.Add(new VolunteerTask() { Id = 20 }); await Context.SaveChangesAsync(); var message = new AssignVolunteerToTaskCommand() { UserId = "Answer40PlusDeuce", VolunteerTaskId = 20, NotifyUser = false }; await sut.Handle(message); _emailSender.Verify(x => x.SendEmailAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()), Times.Never); }
public async Task AssignNewUsers() { var user = new ApplicationUser() { Id = "Answer41PlusOne" }; Context.Users.Add(user); Context.VolunteerTasks.Add(new VolunteerTask() { Id = 20 }); await Context.SaveChangesAsync(); var message = new AssignVolunteerToTaskCommand() { UserId = "Answer41PlusOne", VolunteerTaskId = 20 }; await sut.Handle(message); var count = Context.VolunteerTaskSignups.Count(x => x.User.Id == "Answer41PlusOne"); count.ShouldBe(1); }