예제 #1
0
        private async Task <NewsItemListModel.NewsItemModel> PrepareNewsItemModel(NewsItem newsItem)
        {
            var model = new NewsItemListModel.NewsItemModel();

            model.Id        = newsItem.Id;
            model.SeName    = newsItem.GetSeName(_workContext.WorkingLanguage.Id);
            model.Title     = newsItem.GetLocalized(x => x.Title, _workContext.WorkingLanguage.Id);
            model.Short     = newsItem.GetLocalized(x => x.Short, _workContext.WorkingLanguage.Id);
            model.Full      = newsItem.GetLocalized(x => x.Full, _workContext.WorkingLanguage.Id);
            model.CreatedOn = _dateTimeHelper.ConvertToUserTime(newsItem.StartDateUtc ?? newsItem.CreatedOnUtc, DateTimeKind.Utc);
            //prepare picture model
            if (!string.IsNullOrEmpty(newsItem.PictureId))
            {
                int pictureSize             = _mediaSettings.NewsListThumbPictureSize;
                var categoryPictureCacheKey = string.Format(ModelCacheEventConst.NEWS_PICTURE_MODEL_KEY, newsItem.Id, pictureSize, true,
                                                            _workContext.WorkingLanguage.Id, _webHelper.GetMachineName(), _storeContext.CurrentStore.Id);
                model.PictureModel = await _cacheManager.GetAsync(categoryPictureCacheKey, async() =>
                {
                    var pictureModel = new PictureModel {
                        Id = newsItem.PictureId,
                        FullSizeImageUrl = await _pictureService.GetPictureUrl(newsItem.PictureId),
                        ImageUrl         = await _pictureService.GetPictureUrl(newsItem.PictureId, pictureSize),
                        Title            = string.Format(_localizationService.GetResource("Media.News.ImageLinkTitleFormat"), newsItem.Title),
                        AlternateText    = string.Format(_localizationService.GetResource("Media.News.ImageAlternateTextFormat"), newsItem.Title)
                    };
                    return(pictureModel);
                });
            }
            return(model);
        }
        private async Task <NewsItemListModel.NewsItemModel> PrepareNewsItemModel(NewsItem newsItem)
        {
            var model = new NewsItemListModel.NewsItemModel();

            model.Id        = newsItem.Id;
            model.SeName    = newsItem.GetSeName(_workContext.WorkingLanguage.Id);
            model.Title     = newsItem.GetTranslation(x => x.Title, _workContext.WorkingLanguage.Id);
            model.Short     = newsItem.GetTranslation(x => x.Short, _workContext.WorkingLanguage.Id);
            model.Full      = newsItem.GetTranslation(x => x.Full, _workContext.WorkingLanguage.Id);
            model.CreatedOn = _dateTimeService.ConvertToUserTime(newsItem.StartDateUtc ?? newsItem.CreatedOnUtc, DateTimeKind.Utc);
            //prepare picture model
            if (!string.IsNullOrEmpty(newsItem.PictureId))
            {
                var pictureSize = _mediaSettings.NewsListThumbPictureSize;
                model.PictureModel = new PictureModel
                {
                    Id = newsItem.PictureId,
                    FullSizeImageUrl = await _pictureService.GetPictureUrl(newsItem.PictureId),
                    ImageUrl         = await _pictureService.GetPictureUrl(newsItem.PictureId, pictureSize),
                    Title            = string.Format(_translationService.GetResource("Media.News.ImageLinkTitleFormat"), newsItem.Title),
                    AlternateText    = string.Format(_translationService.GetResource("Media.News.ImageAlternateTextFormat"), newsItem.Title)
                };
            }
            return(model);
        }