public HttpResponseMessage Put(GameAddUpdateViewModel gameAddUpdateViewModel) { GameLocalizationViewModel englishLocalization = GetLocalization(gameAddUpdateViewModel, "en"); if (IsLocalizationEmpty(englishLocalization)) { ModelState.AddModelError("LocalizationError", GlobalRes.EnglishLocalizationShouldExist); } if (ModelState.IsValid) { CleanEmptyLocalizations(gameAddUpdateViewModel); var gameModel = Mapper.Map <GameModel>(gameAddUpdateViewModel); if (!_gameService.GameExists(gameModel.Key)) { _gameService.Add(gameModel); } else { _gameService.Update(gameModel); } return(new HttpResponseMessage(HttpStatusCode.OK)); } return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); }
private static bool IsLocalizationEmpty(GameLocalizationViewModel gameLocalizationViewModel) { bool result = gameLocalizationViewModel == null || String.IsNullOrEmpty(gameLocalizationViewModel.Name) || String.IsNullOrEmpty(gameLocalizationViewModel.Description); return(result); }
private static GameLocalizationViewModel GetLocalization(GameAddUpdateViewModel gameAddUpdateViewModel, string languageCode) { if (gameAddUpdateViewModel == null || gameAddUpdateViewModel.GameLocalizations == null) { return(null); } GameLocalizationViewModel result = gameAddUpdateViewModel.GameLocalizations .FirstOrDefault(loc => String.Equals(loc.Language.Code, languageCode, StringComparison.CurrentCultureIgnoreCase)); return(result); }
private void AdjustLocalizations(GameAddUpdateViewModel gameAddUpdateViewModel) { IEnumerable <LanguageModel> languages = _languageService.GetAll(); gameAddUpdateViewModel.GameLocalizations = gameAddUpdateViewModel.GameLocalizations ?? new List <GameLocalizationViewModel>(); foreach (LanguageModel languageModel in languages) { if (GetLocalization(gameAddUpdateViewModel, languageModel.Code) == null) { var gameLocalization = new GameLocalizationViewModel { LanguageId = languageModel.LanguageId, Language = Mapper.Map <LanguageViewModel>(languageModel), }; gameAddUpdateViewModel.GameLocalizations.Add(gameLocalization); } } }
public ActionResult UpdateGame(GameAddUpdateViewModel gameAddUpdateViewModel) { GameLocalizationViewModel englishLocalization = GetLocalization(gameAddUpdateViewModel, "en"); if (IsLocalizationEmpty(englishLocalization)) { ModelState.AddModelError("LocalizationError", GlobalRes.EnglishLocalizationShouldExist); } if (ModelState.IsValid) { CleanEmptyLocalizations(gameAddUpdateViewModel); var gameModel = Mapper.Map <GameModel>(gameAddUpdateViewModel); _gameService.Update(gameModel); MessageSuccess("The game has been updated successfully!"); return(RedirectToAction("Get")); } return(View(gameAddUpdateViewModel)); }