public async Task UpdateAsync(ModifyGameDto gameDto) { if (gameDto == null) { throw new InvalidServiceOperationException("Is null game dto"); } var exist = await _gameDecorator.AnyAsync(g => g.Id == gameDto.Id); if (!exist) { throw new EntityNotFoundException <GameRoot>(gameDto.Id); } if (string.IsNullOrWhiteSpace(gameDto.Key)) { var gameName = gameDto.Localizations .FirstOrDefault(localization => localization.CultureName == Culture.En)?.Name; gameDto.Key = await GenerateKeyAsync(gameName, KeySeparator); } else { await ValidateGameKey(gameDto.Id, gameDto.Key); } var gameRoot = _mapper.Map <GameRoot>(gameDto); await _gameDecorator.UpdateAsync(gameRoot); await _unitOfWork.CommitAsync(); }
private static ModifyGameDto CreateModifyGameDto() { var dto = new ModifyGameDto { UnitsInStock = 10, Price = 10 }; return(dto); }
private ModifyGameViewModel GetModifyGameViewModel(ModifyGameDto modifyGameDto) { var defaultLocalization = modifyGameDto.Localizations.FirstOrDefault(dto => dto.CultureName == Culture.En); var russianLocalization = modifyGameDto.Localizations.FirstOrDefault(dto => dto.CultureName == Culture.Ru); var viewModel = _mapper.Map <ModifyGameViewModel>(modifyGameDto); _mapper.Map(defaultLocalization, viewModel); viewModel.GameLocalization = _mapper.Map <GameLocalizationViewModel>(russianLocalization); return(viewModel); }
private static ModifyGameDto CreateModifyGameDto(string key = null) { var dto = new ModifyGameDto { Id = Id, Key = key, Localizations = new[] { new GameLocalizationDto { CultureName = Culture.En, Name = Name } } }; return(dto); }
public async Task CreateAsync(ModifyGameDto gameDto) { if (gameDto == null) { throw new InvalidServiceOperationException("Is null game dto"); } if (string.IsNullOrWhiteSpace(gameDto.Key)) { var name = gameDto.Localizations.First(localization => localization.CultureName == Culture.En).Name; gameDto.Key = await GenerateKeyAsync(name, KeySeparator); } else { await ValidateGameKeyExistingAsync(gameDto.Key); } var game = _mapper.Map <GameRoot>(gameDto); game.Details.CreationDate = DateTime.UtcNow; await _gameDecorator.AddAsync(game); await _unitOfWork.CommitAsync(); }