public ActionResult AddGenre(GenreAddUpdateViewModel genreAddUpdateViewModel) { GenreLocalizationViewModel englishLocalization = GetLocalization(genreAddUpdateViewModel, "en"); if (IsLocalizationEmpty(englishLocalization)) { ModelState.AddModelError("localizationError", "English localization should exist. "); } if (ModelState.IsValid) { CleanEmptyLocalizations(genreAddUpdateViewModel); var genreModel = Mapper.Map <GenreModel>(genreAddUpdateViewModel); _genreService.Add(genreModel); MessageSuccess("The genre has been added successfully. "); return(RedirectToAction("Get", "Genre")); } IEnumerable <GenreModel> genreModels = _genreService.GetAll(); genreAddUpdateViewModel.AllGenres = Mapper.Map <IEnumerable <GenreViewModel> >(genreModels); return(View(genreAddUpdateViewModel)); }
public HttpResponseMessage Put(GenreAddUpdateViewModel genreAddUpdateViewModel) { GenreLocalizationViewModel englishLocalization = GetLocalization(genreAddUpdateViewModel, "en"); if (IsLocalizationEmpty(englishLocalization)) { ModelState.AddModelError("localizationError", "English localization should exist. "); } else { CheckAndFixLocalizations(genreAddUpdateViewModel); } if (ModelState.IsValid) { CleanEmptyLocalizations(genreAddUpdateViewModel); var genreModel = Mapper.Map <GenreModel>(genreAddUpdateViewModel); if (!_genreService.GenreExists(englishLocalization.Name)) { _genreService.Add(genreModel); } else { _genreService.Update(genreModel); } return(new HttpResponseMessage(HttpStatusCode.OK)); } return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); }
private static void CleanEmptyLocalizations(GenreAddUpdateViewModel genreAddUpdateViewModel) { List <GenreLocalizationViewModel> emptyLocalizations = genreAddUpdateViewModel.GenreLocalizations.Where(IsLocalizationEmpty).ToList(); foreach (GenreLocalizationViewModel genreLocalizationViewModel in emptyLocalizations) { genreAddUpdateViewModel.GenreLocalizations.Remove(genreLocalizationViewModel); } }
public ActionResult AddGenre() { var genreAddUpdateViewModel = new GenreAddUpdateViewModel(); genreAddUpdateViewModel.AllGenres = Mapper.Map <IEnumerable <GenreViewModel> >(_genreService.GetAll()); AdjustLocalizations(genreAddUpdateViewModel); return(View(genreAddUpdateViewModel)); }
private static GenreLocalizationViewModel GetLocalization(GenreAddUpdateViewModel genreAddUpdateViewModel, string languageCode) { if (genreAddUpdateViewModel == null || genreAddUpdateViewModel.GenreLocalizations == null) { return(null); } GenreLocalizationViewModel result = genreAddUpdateViewModel.GenreLocalizations .FirstOrDefault(loc => String.Equals(loc.Language.Code, languageCode, StringComparison.CurrentCultureIgnoreCase)); return(result); }
private void CheckAndFixLocalizations(GenreAddUpdateViewModel genreAddUpdateViewModel) { List <LanguageModel> languages = _languageService.GetAll().ToList(); foreach (GenreLocalizationViewModel genreLocalizationViewModel in genreAddUpdateViewModel.GenreLocalizations) { LanguageModel languageModel = languages.FirstOrDefault(l => String.Equals(l.Code, genreLocalizationViewModel.Language.Code, StringComparison.CurrentCultureIgnoreCase)); if (languageModel == null) { ModelState.AddModelError("LocalizationError", "Incorrect localization language. "); } else { genreLocalizationViewModel.Language = Mapper.Map <LanguageViewModel>(languageModel); } } }
private void AdjustLocalizations(GenreAddUpdateViewModel genreAddUpdateViewModel) { IEnumerable <LanguageModel> languages = _languageService.GetAll(); genreAddUpdateViewModel.GenreLocalizations = genreAddUpdateViewModel.GenreLocalizations ?? new List <GenreLocalizationViewModel>(); foreach (LanguageModel languageModel in languages) { if (GetLocalization(genreAddUpdateViewModel, languageModel.Code) == null) { var genreLocalization = new GenreLocalizationViewModel { LanguageId = languageModel.LanguageId, Language = Mapper.Map <LanguageViewModel>(languageModel), }; genreAddUpdateViewModel.GenreLocalizations.Add(genreLocalization); } } }