Example #1
0
        public async Task <IActionResult> MessageAllVolunteers(MessageEventVolunteersViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var authorizableEvent = await _mediator.SendAsync(new AuthorizableEventQuery(viewModel.EventId));

            if (!await authorizableEvent.UserCanEdit())
            {
                return(new ForbidResult());
            }

            await _mediator.SendAsync(new MessageEventVolunteersCommand { ViewModel = viewModel });

            return(Ok());
        }
        public async Task <IActionResult> MessageAllVolunteers(MessageEventVolunteersViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var eventsOrganizationId = await _mediator.SendAsync(new OrganizationIdByEventIdQuery { EventId = viewModel.EventId });

            if (!User.IsOrganizationAdmin(eventsOrganizationId))
            {
                return(Unauthorized());
            }

            await _mediator.SendAsync(new MessageEventVolunteersCommand { ViewModel = viewModel });

            return(Ok());
        }
        public async Task MessageAllVolunteers_SendsMessageEventVolunteersCommandWithCorrectViewModel_WhenAuthorized()
        {
            var model = new MessageEventVolunteersViewModel
            {
                EventId = 1,
                Message = "Hello",
                Subject = "A Subject"
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableEventQuery>()))
            .ReturnsAsync(new FakeAuthorizableEvent(true, true, true, true));

            var sut = GetInstance(mediator: mediator.Object);

            await sut.MessageAllVolunteers(model);

            mediator.Verify(x => x.SendAsync(It.Is <MessageEventVolunteersCommand>(c => c.ViewModel.Subject == model.Subject)), Times.Once);
        }
        public async Task MessageAllVolunteers_SendsMessageEventVolunteersCommandWithCorrectViewModel_WhenAuthorized()
        {
            var model = new MessageEventVolunteersViewModel
            {
                EventId = 1,
                Message = "Hello",
                Subject = "A Subject"
            };

            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.IsAny <AuthorizableEventQuery>()))
            .ReturnsAsync(new FakeAuthorizableEvent(true, true, true, true));

            var sut = new EventController(
                Mock.Of <IImageService>(),
                mediator.Object,
                Mock.Of <IValidateEventEditViewModels>(),
                Mock.Of <IUserAuthorizationService>());

            await sut.MessageAllVolunteers(model);

            mediator.Verify(x => x.SendAsync(It.Is <MessageEventVolunteersCommand>(c => c.ViewModel.Subject == model.Subject)), Times.Once);
        }
Example #5
0
        public async Task <IActionResult> MessageAllVolunteers(MessageEventVolunteersViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //TODO: Query only for the organization Id rather than the whole event detail
            var campaignEvent = await _mediator.SendAsync(new EventDetailQuery { EventId = viewModel.EventId });

            if (campaignEvent == null)
            {
                return(NotFound());
            }

            if (!User.IsOrganizationAdmin(campaignEvent.OrganizationId))
            {
                return(Unauthorized());
            }

            await _mediator.SendAsync(new MessageEventVolunteersCommand { ViewModel = viewModel });

            return(Ok());
        }