public HttpResponseMessage Put(PublisherAddUpdateViewModel publisherAddUpdateViewModel) { PublisherLocalizationViewModel englishLocalization = GetLocalization(publisherAddUpdateViewModel, "en"); if (IsLocalizationEmpty(englishLocalization)) { ModelState.AddModelError("localizationError", "English localization should exist. "); } else { CheckAndFixLocalizations(publisherAddUpdateViewModel); } if (ModelState.IsValid) { CleanEmptyLocalizations(publisherAddUpdateViewModel); var publisherModel = Mapper.Map <PublisherModel>(publisherAddUpdateViewModel); if (_publisherService.PublisherExists(englishLocalization.CompanyName)) { _publisherService.Add(publisherModel); } _publisherService.Update(publisherModel); return(new HttpResponseMessage(HttpStatusCode.OK)); } return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); }
private static PublisherAddUpdateViewModel GetPublisherAddUpdateViewModel() { var publisherAddUpdateViewModel = new PublisherAddUpdateViewModel { IsReadonly = false, NorthwindId = 5, PublisherId = 5, HomePage = "http://www.homepage.com", PublisherLocalizations = new List <PublisherLocalizationViewModel> { new PublisherLocalizationViewModel { CompanyName = "name", Description = "descr", Language = new LanguageViewModel { Name = "English", Code = "en", LanguageId = 1, }, LanguageId = 1, } } }; return(publisherAddUpdateViewModel); }
public ActionResult Add() { var publisherAddUpdateViewModel = new PublisherAddUpdateViewModel(); AdjustLocalizations(publisherAddUpdateViewModel); return(View(publisherAddUpdateViewModel)); }
private static void CleanEmptyLocalizations(PublisherAddUpdateViewModel publisherAddUpdateViewModel) { List <PublisherLocalizationViewModel> emptyLocalizations = publisherAddUpdateViewModel.PublisherLocalizations.Where(IsLocalizationEmpty).ToList(); foreach (PublisherLocalizationViewModel publisherLocalizationViewModel in emptyLocalizations) { publisherAddUpdateViewModel.PublisherLocalizations.Remove(publisherLocalizationViewModel); } }
private static PublisherLocalizationViewModel GetLocalization(PublisherAddUpdateViewModel publisherAddUpdateViewModel, string languageCode) { if (publisherAddUpdateViewModel == null || publisherAddUpdateViewModel.PublisherLocalizations == null) { return(null); } PublisherLocalizationViewModel result = publisherAddUpdateViewModel.PublisherLocalizations .FirstOrDefault(loc => String.Equals(loc.Language.Code, languageCode, StringComparison.CurrentCultureIgnoreCase)); return(result); }
public void Check_That_Right_Method_Was_Called_Inside_Add_Action() { // Arrange var mockPublisherService = new Mock <IPublisherService>(); mockPublisherService.Setup(x => x.Add(It.IsAny <PublisherModel>())).Verifiable(); PublisherController publisherController = GetPublisherController(mockPublisherService); PublisherAddUpdateViewModel publisherAddUpdateViewModel = GetPublisherAddUpdateViewModel(); // Act publisherController.Add(publisherAddUpdateViewModel); // Assert mockPublisherService.Verify(m => m.Add(It.IsAny <PublisherModel>())); }
private void CheckAndFixLocalizations(PublisherAddUpdateViewModel publisherAddUpdateViewModel) { List <LanguageModel> languages = _languageService.GetAll().ToList(); foreach (PublisherLocalizationViewModel publisherLocalizationViewModel in publisherAddUpdateViewModel.PublisherLocalizations) { LanguageModel languageModel = languages.FirstOrDefault(l => String.Equals(l.Code, publisherLocalizationViewModel.Language.Code, StringComparison.CurrentCultureIgnoreCase)); if (languageModel == null) { ModelState.AddModelError("LocalizationError", "Incorrect localization language. "); } else { publisherLocalizationViewModel.Language = Mapper.Map <LanguageViewModel>(languageModel); } } }
private void AdjustLocalizations(PublisherAddUpdateViewModel publisherAddUpdateViewModel) { IEnumerable <LanguageModel> languages = _languageService.GetAll(); publisherAddUpdateViewModel.PublisherLocalizations = publisherAddUpdateViewModel.PublisherLocalizations ?? new List <PublisherLocalizationViewModel>(); foreach (LanguageModel languageModel in languages) { if (GetLocalization(publisherAddUpdateViewModel, languageModel.Code) == null) { var publisherLocalization = new PublisherLocalizationViewModel { LanguageId = languageModel.LanguageId, Language = Mapper.Map <LanguageViewModel>(languageModel), }; publisherAddUpdateViewModel.PublisherLocalizations.Add(publisherLocalization); } } }
public ActionResult Add(PublisherAddUpdateViewModel publisherAddUpdateViewModel) { PublisherLocalizationViewModel englishLocalization = GetLocalization(publisherAddUpdateViewModel, "en"); if (IsLocalizationEmpty(englishLocalization)) { ModelState.AddModelError("localizationError", "English localization should exist. "); } if (ModelState.IsValid) { CleanEmptyLocalizations(publisherAddUpdateViewModel); var model = Mapper.Map <PublisherModel>(publisherAddUpdateViewModel); _publisherService.Add(model); MessageSuccess("The publisher has been added successfully. "); return(RedirectToAction("Get")); } return(View(publisherAddUpdateViewModel)); }