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 }));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }