Example #1
0
        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));
        }
Example #4
0
        private static void CleanEmptyLocalizations(PublisherAddUpdateViewModel publisherAddUpdateViewModel)
        {
            List <PublisherLocalizationViewModel> emptyLocalizations = publisherAddUpdateViewModel.PublisherLocalizations.Where(IsLocalizationEmpty).ToList();

            foreach (PublisherLocalizationViewModel publisherLocalizationViewModel in emptyLocalizations)
            {
                publisherAddUpdateViewModel.PublisherLocalizations.Remove(publisherLocalizationViewModel);
            }
        }
Example #5
0
        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>()));
        }
Example #7
0
        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));
        }