コード例 #1
0
        public async Task <Response> Handle(Command request, CancellationToken cancellationToken)
        {
            var newCampaign = new Domain.Entities.Campaign()
            {
                Name        = request.Name,
                Description = request.Description,
                StartDate   = request.StartDate,
                EndDate     = request.EndDate,
                Closed      = request.Closed,
                CreatedBy   = request.CreatedBy,
                MaxVotes    = request.MaxVotes
            };

            dbContext.Campaigns.Add(newCampaign);

            await dbContext.SaveChangesAsync();

            return(new SuccessResponse <CampaignModel>(new CampaignModel()
            {
                Id = newCampaign.Id,
                Name = newCampaign.Name,
                Description = newCampaign.Description,
                StartDate = newCampaign.StartDate,
                EndDate = newCampaign.EndDate,
                Closed = newCampaign.Closed,
                CreatedBy = newCampaign.CreatedBy,
                MaxVotes = newCampaign.MaxVotes
            }));
        }
コード例 #2
0
 public Campaign Update(Domain.Entities.Campaign baseEntity, string username)
 {
     throw new NotImplementedException();
 }
コード例 #3
0
        public async Task GetCampaignDetails_WithPrepopulatedDataInDb_ShouldReturnCorrectResponse()
        {
            // Arrange

            var beneficiary = new Domain.Entities.Beneficiary
            {
                FirstName       = _faker.Name.FirstName(),
                LastName        = _faker.Name.LastName(),
                Type            = BeneficiaryType.Individual,
                OrganizerId     = Guid.NewGuid(),
                ISO2CountryCode = ISO2CountryCode.BG,
                City            = City.Varna
            };

            var campaignSubtype = new Domain.Entities.CampaignSubtype
            {
                Name        = _faker.Random.Utf16String(1, 50, true),
                Description = _faker.Random.Utf16String(0, 200, true)
            };

            var campaignType = new Domain.Entities.CampaignType
            {
                Name             = _faker.Random.Utf16String(1, 50, true),
                Description      = _faker.Random.Utf16String(0, 200, true),
                CampaignSubtypes = new List <Domain.Entities.CampaignSubtype>()
            };

            campaignType.CampaignSubtypes.Add(campaignSubtype);

            var campaign = new Domain.Entities.Campaign
            {
                InitiatorId      = Guid.NewGuid(),
                OperatorId       = Guid.NewGuid(),
                Beneficiary      = beneficiary,
                CampaignType     = campaignType,
                CampaignSubtype  = campaignSubtype,
                State            = CampaignState.PendingValidation,
                Title            = _faker.Random.Utf16String(1, 200, true),
                ShortDescription = _faker.Random.Utf16String(0, 500, true),
                FullDescription  = _faker.Lorem.Sentences(5),
                OptionalDetails  = new CampaignOptionalDetails(
                    videoUrl: _faker.Internet.Url())
            };

            _appDbContext.Beneficiaries.Add(beneficiary);
            _appDbContext.CampaignTypes.Add(campaignType);
            var trackedCampaignEntity = _appDbContext.Campaigns.Add(campaign);
            await _appDbContext.SaveChangesAsync(CancellationToken.None);

            // Act

            var campaignDetails = await _campaignsService.GetCampaignDetails(
                new GetCampaignDetailsRequest { Id = trackedCampaignEntity.Entity.Id.ToString() }, Mock.Of <ServerCallContext>());

            // Assert

            campaignDetails.Should().NotBeNull();

            campaignDetails.Title.Should().Be(campaign.Title);
            campaignDetails.InitiatorId.Should().Be(campaign.InitiatorId.ToString());
            campaignDetails.OperatorId.Should().Be(campaign.OperatorId.ToString());
            campaignDetails.BeneficiaryId.Should().Be(beneficiary.Id.ToString());
            campaignDetails.State.Should().Be(CampaignState.PendingValidation);
            campaignDetails.CampaignType.Should().NotBeNull();
            campaignDetails.CampaignType.Name.Should().Be(campaignType.Name);
            campaignDetails.CampaignSubtype.Should().NotBeNull();
            campaignDetails.CampaignSubtype.Name.Should().Be(campaignSubtype.Name);
            campaignDetails.ShortDescription.Should().Be(campaign.ShortDescription);
            campaignDetails.FullDescription.Should().Be(campaign.FullDescription);
        }