public Entities.Advertisement ToEntity(AdvertisementEntry advertisementEntry) { return(new Entities.Advertisement { Id = advertisementEntry.Id, Name = advertisementEntry.Name, ClientId = advertisementEntry.ClientId, AdvertisementChannels = MapAdvertisementChannelsToEntity(advertisementEntry) }); }
public async Task <Advertisement> CreateAsync(AdvertisementEntry advertisementEntry) { var entity = _mapper.ToEntity(advertisementEntry); await _context.Advertisements.AddAsync(entity); await _context.SaveChangesAsync(); return(_mapper.ToDomain(entity)); }
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); }
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()); }
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(); }
public async Task UpdateAsync(AdvertisementEntry advertisementEntry) { await _advertisementRepository.UpdateAsync(advertisementEntry); }
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()); }