Beispiel #1
0
        private static void Localize(NewsDto source, NewsMvcViewModel destination)
        {
            var language = LanguageHelper.GetThreadLanguage();

            var ruLocalization = source.NewsLocalizations.FirstOrDefault(n => n.LanguageId == 2);
            var enLocalization = source.NewsLocalizations.FirstOrDefault(n => n.LanguageId == 1);

            switch (language)
            {
            case CultureLanguage.EN:
                destination.LocalizedTitle            = enLocalization?.Header;
                destination.LocalizedShortDescription = enLocalization?.ShortDescription;
                destination.LocalizedContent          = enLocalization?.Content;
                break;

            case CultureLanguage.Undefined:
            case CultureLanguage.RU:
            case null:
            default:
                destination.LocalizedTitle            = ruLocalization?.Header;
                destination.LocalizedShortDescription = ruLocalization?.ShortDescription;
                destination.LocalizedContent          = ruLocalization?.Content;
                break;
            }
        }
Beispiel #2
0
        public ActionResult Delete(int id, NewsMvcViewModel model)
        {
            var result = _newsService.Delete(id);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", $"Ошибки при удалении новости:</br>" + $"{string.Join("</br>", result.Errors)}");
                return(View(model));
            }

            return(RedirectToAction("Index"));
        }
Beispiel #3
0
        public ActionResult Edit(int id, NewsMvcViewModel model)
        {
            if (ModelState.IsValid == false)
            {
                return(View(model));
            }

            if (model.Id == 0)
            {
                throw new HttpException((int)HttpStatusCode.InternalServerError, "Не указан идентификатор категории");
            }

            OperationResult <ImageDto> imageResult = null;

            if (Request.Files.Count > 0)
            {
                var file  = Request.Files[0];
                var image = Mapper.Map <ImageDto>(file);
                imageResult = _imageService.SaveImage(image);
            }

            if (imageResult != null && !imageResult.Succeeded)
            {
                ModelState.AddModelError("", $"Ошибки при обновлении новости:</br>"
                                         + $"{string.Join("</br>", imageResult.Errors)}");

                return(View(model));
            }

            var news = Mapper.Map <NewsDto>(model);

            news.ImageId = imageResult?.Data.Id;

            var newsResult = _newsService.Save(news);

            if (!newsResult.Succeeded)
            {
                ModelState.AddModelError("", $"Ошибки при обновлении новости:</br>"
                                         + $"{string.Join("</br>", newsResult.Errors)}");
                return(View(model));
            }

            return(RedirectToAction("Index"));
        }
Beispiel #4
0
        private static void TransformToDto(NewsMvcViewModel source, NewsDto destination)
        {
            var enLocalization = string.IsNullOrEmpty(source.TitleEn)
                ? null
                : new NewsLocalizationDto
            {
                NewsId     = source.Id,
                LanguageId = (int)CultureLanguage.EN,

                Content          = source.ContentEn,
                ShortDescription = source.ShortDescriptionEn,
                Header           = source.TitleEn
            };

            var ruLocalization = string.IsNullOrEmpty(source.TitleRu)
                ? null
                : new NewsLocalizationDto
            {
                NewsId     = source.Id,
                LanguageId = (int)CultureLanguage.RU,

                Content          = source.ContentRu,
                ShortDescription = source.ShortDescriptionRu,
                Header           = source.TitleRu
            };

            var localizations = new List <NewsLocalizationDto>();

            if (enLocalization != null)
            {
                localizations.Add(enLocalization);
            }

            if (ruLocalization != null)
            {
                localizations.Add(ruLocalization);
            }

            destination.NewsLocalizations = (localizations.Count > 0)
                ? localizations
                : null;
        }
Beispiel #5
0
        private static void TransformToModel(NewsDto source, NewsMvcViewModel destination)
        {
            var localizations = source.NewsLocalizations;

            if (localizations == null || localizations.Count == 0)
            {
                return;
            }

            var ruLocalization = localizations.FirstOrDefault(c => c.LanguageId == (int)CultureLanguage.RU);
            var enLocalization = localizations.FirstOrDefault(c => c.LanguageId == (int)CultureLanguage.EN);

            destination.ContentEn = enLocalization?.Content;
            destination.ContentRu = ruLocalization?.Content;

            destination.ShortDescriptionEn = enLocalization?.ShortDescription;
            destination.ShortDescriptionRu = ruLocalization?.ShortDescription;

            destination.TitleEn = enLocalization?.Header;
            destination.TitleRu = ruLocalization?.Header;
        }
Beispiel #6
0
        public ActionResult Create(NewsMvcViewModel model)
        {
            if (ModelState.IsValid == false)
            {
                return(View(model));
            }

            OperationResult <ImageDto> imageResult = null;

            if (Request.Files.Count > 0)
            {
                var file  = Request.Files[0];
                var image = Mapper.Map <ImageDto>(file);
                imageResult = _imageService.SaveImage(image);
            }

            if (imageResult != null && !imageResult.Succeeded)
            {
                ModelState.AddModelError("", $"Ошибки при добавлении новости:</br>"
                                         + $"{string.Join("</br>", imageResult.Errors)}");

                return(View(model));
            }

            var news = Mapper.Map <NewsDto>(model);

            news.ImageId = imageResult?.Data.Id;

            var newsResult = _newsService.Save(news);

            if (!newsResult.Succeeded)
            {
                ModelState.AddModelError("", $"Ошибки при добавлении новости:</br>"
                                         + $"{string.Join("</br>", newsResult.Errors)}");
                return(View(model));
            }

            return(RedirectToAction("Index"));
        }