public Entities.Advertisement ToEntity(AdvertisementEntry advertisementEntry)
 {
     return(new Entities.Advertisement
     {
         Id = advertisementEntry.Id,
         Name = advertisementEntry.Name,
         ClientId = advertisementEntry.ClientId,
         AdvertisementChannels = MapAdvertisementChannelsToEntity(advertisementEntry)
     });
 }
Exemplo n.º 2
0
        public async Task <Advertisement> CreateAsync(AdvertisementEntry advertisementEntry)
        {
            var entity = _mapper.ToEntity(advertisementEntry);

            await _context.Advertisements.AddAsync(entity);

            await _context.SaveChangesAsync();

            return(_mapper.ToDomain(entity));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> CreateAsync([FromBody] AdvertisementEntry advertisementEntry)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!await _channelService.ChannelsExistAsync(advertisementEntry.ChannelIds))
            {
                return(BadRequest());
            }

            var advertisement = await _advertisementService.CreateAsync(advertisementEntry);

            return(CreatedAtAction(nameof(GetByIdAsync), new { id = advertisement.Id }, null));
        }
        public async Task UpdateAsync_ShouldUpdateTheItemEntry()
        {
            var originalAdvertisement = SetupAdvertisement();
            var updatedAdvertisement  = new AdvertisementEntry
            {
                Id       = originalAdvertisement.Id,
                ClientId = _fixture.Create <int>(),
                Name     = $"{originalAdvertisement.Name} - Updated"
            };

            await _advertisementRepository.UpdateAsync(updatedAdvertisement);

            var currentValue = _dbContext.Advertisements
                               .AsNoTracking()
                               .Single(x => x.Id == updatedAdvertisement.Id);

            currentValue.Name.Should().Be(updatedAdvertisement.Name);
            currentValue.ClientId.Should().Be(updatedAdvertisement.ClientId);
        }
Exemplo n.º 5
0
        public async Task <IActionResult> UpdateAsync([FromBody] AdvertisementEntry advertisementEntry)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!await _channelService.ChannelsExistAsync(advertisementEntry.ChannelIds))
            {
                return(BadRequest());
            }

            var exists = await _advertisementService.ExistsAsync(advertisementEntry.Id);

            if (!exists)
            {
                return(NotFound());
            }

            await _advertisementService.UpdateAsync(advertisementEntry);

            return(NoContent());
        }
Exemplo n.º 6
0
        public async Task UpdateAsync(AdvertisementEntry advertisementEntry)
        {
            var updateEntity = _mapper.ToEntity(advertisementEntry);

            var advertisement = await _context.Advertisements
                                .Include(x => x.AdvertisementChannels)
                                .ThenInclude(x => x.Channel)
                                .AsNoTracking()
                                .SingleAsync(x => x.Id == updateEntity.Id);

            //var advertisementsToDelete = updateEntity.AdvertisementChannels.Where(x =>
            //    advertisement.AdvertisementChannels.All(c => c.ChannelId != x.ChannelId)).ToList();
            //_context.AdvertisementChannels.RemoveRange(advertisementsToDelete);

            //var advertisementsToAdd = advertisement.AdvertisementChannels.Where(x =>
            //    updateEntity.AdvertisementChannels.All(c => c.ChannelId != x.ChannelId)).ToList();
            //_context.AdvertisementChannels.AddRange(advertisementsToAdd);

            advertisement = updateEntity;

            _context.Advertisements.Update(advertisement);
            await _context.SaveChangesAsync();
        }
Exemplo n.º 7
0
 public async Task UpdateAsync(AdvertisementEntry advertisementEntry)
 {
     await _advertisementRepository.UpdateAsync(advertisementEntry);
 }
Exemplo n.º 8
0
 public async Task <Advertisement> CreateAsync(AdvertisementEntry advertisementEntry)
 {
     return(await _advertisementRepository.CreateAsync(advertisementEntry));
 }
        private ICollection <Entities.AdvertisementChannel> MapAdvertisementChannelsToEntity(AdvertisementEntry advertisementEntry)
        {
            var advertisementId = advertisementEntry.Id;

            return(advertisementEntry.ChannelIds.Select(x => new Entities.AdvertisementChannel {
                AdvertisementId = advertisementId, ChannelId = x
            }).ToList());
        }