AllReady.Areas.Admin.Controllers.CampaignController.DeleteCampaignImage C# (CSharp) Метод

DeleteCampaignImage() приватный Метод

private DeleteCampaignImage ( int campaignId ) : Task
campaignId int
Результат Task
        public async Task<JsonResult> DeleteCampaignImage(int campaignId)
        {
            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignId });

            if (campaign == null)
            {
                return Json(new { status = "NotFound" });
            }

            if (!User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return Json(new { status = "Unauthorized" });
            }

            if (campaign.EndDate < campaign.StartDate)
            {
                return Json(new { status = "DateInvalid", message = "The end date must fall on or after the start date." });
            }

            if (campaign.ImageUrl != null)
            {
                await _imageService.DeleteImageAsync(campaign.ImageUrl);
                campaign.ImageUrl = null;
                await _mediator.SendAsync(new EditCampaignCommand { Campaign = campaign });
                return Json(new { status = "Success" });
            }

            return Json(new { status = "NothingToDelete" });
        }

Usage Example

        public async Task DeleteCampaignImageReturnsJsonObjectWithStatusOfNothingToDeleteIfThereWasNoExistingImage()
        {
            var mediatorMock = new Mock<IMediator>();

            var campaignSummaryViewModel = new CampaignSummaryViewModel
            {
                OrganizationId = 1
            };

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

            var imageServiceMock = new Mock<IImageService>();

            var sut = new CampaignController(mediatorMock.Object, imageServiceMock.Object);
            sut.MakeUserAnOrgAdmin(campaignSummaryViewModel.OrganizationId.ToString());

            var result = await sut.DeleteCampaignImage(It.IsAny<int>());

            result.Value.GetType()
                .GetProperty("status")
                .GetValue(result.Value)
                .ShouldBe("NothingToDelete");
        }
All Usage Examples Of AllReady.Areas.Admin.Controllers.CampaignController::DeleteCampaignImage