public async Task EditPostRedirectToAction_WithCorrect_Contoller_ActionAndResourceId()
        {
            const int resourceId = 2;

            var mockMediator             = new Mock <IMediator>();
            var campaignSummaryViewModel = new CampaignSummaryViewModel {
                Id = 2, OrganizationId = 5, Name = "OrgName"
            };

            mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel);
            mockMediator.Setup(m => m.SendAsync(It.IsAny <CreateOrEditResourceCommand>())).ReturnsAsync(resourceId);
            var sut = new ResourceController(mockMediator.Object);

            sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString());
            var resourceEditViewModel = new ResourceEditViewModel {
                Id = 1, CampaignId = 2
            };

            var result = await sut.Edit(resourceEditViewModel) as RedirectToActionResult;

            result.ShouldNotBeNull();
            result.ActionName.ShouldBe(nameof(ResourceController.Details));
            result.ControllerName.ShouldBe(nameof(Resource));
            result.RouteValues["resourceId"].ShouldBe(resourceId);
        }
Exemple #2
0
        public async Task <IActionResult> Create(int campaignId)
        {
            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignId });

            if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return(Unauthorized());
            }

            var viewModel = new ResourceEditViewModel
            {
                CampaignId   = campaign.Id,
                CampaignName = campaign.Name
            };

            return(View("Edit", viewModel));
        }
Exemple #3
0
        public async Task <IActionResult> Create(ResourceEditViewModel viewModel)
        {
            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = viewModel.CampaignId });

            if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(View("Edit", viewModel));
            }

            var id = await _mediator.SendAsync(new CreateOrEditResourceCommand { Resource = viewModel });

            return(RedirectToAction(nameof(CampaignController.Details), "Campaign", new { area = "Admin", id = viewModel.CampaignId }));
        }
Exemple #4
0
        public async Task <IActionResult> Edit(ResourceEditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = viewModel.CampaignId });

            if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return(Unauthorized());
            }

            var resourceId = await _mediator.SendAsync(new CreateOrEditResourceCommand { Resource = viewModel });

            return(RedirectToAction(nameof(Details), nameof(Resource), new { resourceId }));
        }
        public async Task EditPostSendsEditResourceCommandWithCorrectResource()
        {
            var mockMediator             = new Mock <IMediator>();
            var campaignSummaryViewModel = new CampaignSummaryViewModel {
                Id = 2, OrganizationId = 5, Name = "OrgName"
            };

            mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel);
            mockMediator.Setup(m => m.SendAsync(It.IsAny <CreateOrEditResourceCommand>())).ReturnsAsync(It.IsAny <int>());
            var sut = new ResourceController(mockMediator.Object);

            sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString());
            var resourceEditViewModel = new ResourceEditViewModel();

            var result = await sut.Edit(resourceEditViewModel) as RedirectToActionResult;

            result.ShouldNotBeNull();
            mockMediator.Verify(m => m.SendAsync(It.Is <CreateOrEditResourceCommand>(e => e.Resource == resourceEditViewModel)), Times.Once);
        }
Exemple #6
0
        public async Task EditResource()
        {
            var resource = Context.Resources.First();

            var resourceEditViewModel = new ResourceEditViewModel {
                Id = resource.Id, Name = resource.Name
            };

            resourceEditViewModel.Name = "ChangedName";

            var createOrEditResourceCommand = new CreateOrEditResourceCommand {
                Resource = resourceEditViewModel
            };

            var sut = new CreateOrEditResourceCommandHandler(Context);


            var result = await sut.Handle(createOrEditResourceCommand);

            result.ShouldNotBeNull();
            Context.Resources.Single(r => r.Id == result).Name.ShouldBe(resourceEditViewModel.Name);
        }
        public async Task CreatePostRedirectToActionWithTheCorrectCampaignId_AfterRsourceCreated()
        {
            var campaignSummaryViewModel = new CampaignSummaryViewModel {
                Id = 4, OrganizationId = 1, Name = "TestCampaign"
            };

            var mockMediator = new Mock <IMediator>();

            mockMediator.Setup(m => m.SendAsync(It.IsAny <CampaignSummaryQuery>())).ReturnsAsync(campaignSummaryViewModel);

            var sut = new ResourceController(mockMediator.Object);

            sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString());
            var resourceEditViewModel = new ResourceEditViewModel();
            var result = await sut.Create(resourceEditViewModel) as RedirectToActionResult;

            result.ShouldNotBeNull();
            result.ShouldBeOfType <RedirectToActionResult>();
            result.ActionName.ShouldBe(nameof(CampaignController.Details));
            result.ControllerName.ShouldBe(nameof(Campaign));
            result.RouteValues["area"].ShouldBe(AreaNames.Admin);
            result.RouteValues["id"].ShouldBe(resourceEditViewModel.CampaignId);
        }
Exemple #8
0
        public async Task <IActionResult> Edit(int id)
        {
            var resource = await _mediator.SendAsync(new ResourceDetailQuery { ResourceId = id });

            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = resource.CampaignId });

            if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return(Unauthorized());
            }

            var viewModel = new ResourceEditViewModel
            {
                CampaignId   = campaign.Id,
                CampaignName = campaign.Name,
                Id           = resource.Id,
                Name         = resource.Name,
                Description  = resource.Description,
                ResourceUrl  = resource.ResourceUrl
            };

            return(View("Edit", viewModel));
        }
Exemple #9
0
        public async Task CreateResource()
        {
            var resourceEditViewModel = new ResourceEditViewModel
            {
                CampaignId   = 1,
                CampaignName = "CampaignName",
                Name         = "ResourceName",
                Description  = "TestDescription",
                ResourceUrl  = "/url/"
            };

            var createOrEditResourceCommand = new CreateOrEditResourceCommand {
                Resource = resourceEditViewModel
            };

            var sut = new CreateOrEditResourceCommandHandler(Context);


            var result = await sut.Handle(createOrEditResourceCommand);

            result.ShouldNotBeNull();
            Context.Resources.Any(r => r.Id == result).ShouldBeTrue();
        }