Exemple #1
0
        public ActionResult Create(NewsItemModel model, bool continueEditing, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity();

                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.CreatedOnUtc = model.CreatedOn;

                _newsService.InsertNews(newsItem);

                model.SeName = newsItem.ValidateSeName(model.SeName, newsItem.Title, true);
                _urlRecordService.SaveSlug(newsItem, model.SeName, 0);

                UpdateLocales(newsItem, model);

                SaveStoreMappings(newsItem, model.SelectedStoreIds);

                Services.EventPublisher.Publish(new ModelBoundEvent(model, newsItem, form));

                NotifySuccess(T("Admin.ContentManagement.News.NewsItems.Added"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            // If we got this far, something failed, redisplay form.
            PrepareNewsItemModel(model, null);

            return(View(model));
        }
Exemple #2
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }
            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }
            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);

                _newsService.UpdateNews(newsItem);

                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, 0);

                SuccessNotification("新闻编辑成功");

                if (continueEditing)
                {
                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
                return(RedirectToAction("List"));
            }
            return(View(model));
        }
Exemple #3
0
        public ActionResult Create(NewsItemModel model, bool continueEditing, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity();

                MediaHelper.UpdatePictureTransientStateFor(newsItem, c => c.PictureId);
                MediaHelper.UpdatePictureTransientStateFor(newsItem, c => c.PreviewPictureId);

                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.CreatedOnUtc = DateTime.UtcNow;
                _newsService.InsertNews(newsItem);

                // Search engine name.
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                SaveStoreMappings(newsItem, model.SelectedStoreIds);

                Services.EventPublisher.Publish(new ModelBoundEvent(model, newsItem, form));

                NotifySuccess(T("Admin.ContentManagement.News.NewsItems.Added"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            // If we got this far, something failed, redisplay form.
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);

            PrepareStoresMappingModel(model, null, true);

            return(View(model));
        }
Exemple #4
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                _newsService.UpdateNews(newsItem);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            return(View(model));
        }
        public ActionResult Create(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity();
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.CreatedOnUtc = DateTime.UtcNow;
                _newsService.InsertNews(newsItem);

                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                //Stores
                _storeMappingService.SaveStoreMappings <NewsItem>(newsItem, model.SelectedStoreIds);

                NotifySuccess(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Added"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);

            //Stores
            PrepareStoresMappingModel(model, null, true);

            return(View(model));
        }
Exemple #6
0
        public virtual NewsItem UpdateNewsItemModel(NewsItem newsItem, NewsItemModel model)
        {
            string prevPictureId = newsItem.PictureId;

            newsItem = model.ToEntity(newsItem);
            var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);

            newsItem.SeName  = seName;
            newsItem.Locales = model.Locales.ToLocalizedProperty(newsItem, x => x.Title, _urlRecordService);
            _newsService.UpdateNews(newsItem);

            //search engine name
            _urlRecordService.SaveSlug(newsItem, seName, "");

            //delete an old picture (if deleted or updated)
            if (!String.IsNullOrEmpty(prevPictureId) && prevPictureId != newsItem.PictureId)
            {
                var prevPicture = _pictureService.GetPictureById(prevPictureId);
                if (prevPicture != null)
                {
                    _pictureService.DeletePicture(prevPicture);
                }
            }

            //update picture seo file name
            _pictureService.UpdatePictureSeoNames(newsItem.PictureId, newsItem.Title);
            return(newsItem);
        }
Exemple #7
0
        public virtual async Task <NewsItem> UpdateNewsItemModel(NewsItem newsItem, NewsItemModel model)
        {
            string prevPictureId = newsItem.PictureId;

            newsItem = model.ToEntity(newsItem, _dateTimeHelper);
            var seName = await newsItem.ValidateSeName(model.SeName, model.Title, true, _serviceProvider.GetRequiredService <SeoSettings>(), _urlRecordService, _serviceProvider.GetRequiredService <ILanguageService>());

            newsItem.SeName  = seName;
            newsItem.Locales = await model.Locales.ToLocalizedProperty(newsItem, x => x.Title, _serviceProvider.GetRequiredService <SeoSettings>(), _urlRecordService, _serviceProvider.GetRequiredService <ILanguageService>());

            await _newsService.UpdateNews(newsItem);

            //search engine name
            await _urlRecordService.SaveSlug(newsItem, seName, "");

            //delete an old picture (if deleted or updated)
            if (!String.IsNullOrEmpty(prevPictureId) && prevPictureId != newsItem.PictureId)
            {
                var prevPicture = await _pictureService.GetPictureById(prevPictureId);

                if (prevPicture != null)
                {
                    await _pictureService.DeletePicture(prevPicture);
                }
            }

            //update picture seo file name
            await _pictureService.UpdatePictureSeoNames(newsItem.PictureId, newsItem.Title);

            return(newsItem);
        }
Exemple #8
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                int prevPictureId = newsItem.PictureId;
                newsItem = model.ToEntity(newsItem);
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                _newsService.UpdateNews(newsItem);

                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                //Stores
                SaveStoreMappings(newsItem, model);
                //delete an old picture (if deleted or updated)
                if (prevPictureId > 0 && prevPictureId != newsItem.PictureId)
                {
                    var prevPicture = _pictureService.GetPictureById(prevPictureId);
                    if (prevPicture != null)
                    {
                        _pictureService.DeletePicture(prevPicture);
                    }
                }
                //update picture seo file name
                UpdatePictureSeoNames(newsItem);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));

                if (continueEditing)
                {
                    //selected tab
                    SaveSelectedTabIndex();

                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            //Store
            PrepareStoresMappingModel(model, newsItem, true);
            return(View(model));
        }
Exemple #9
0
        public virtual IActionResult NewsItemCreate(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                //if (model.PictureId > 0)
                //{
                //    var picture = _pictureService.GetPictureById(model.PictureId);
                //    _pictureService.UpdatePicture(picture.Id,
                //        _pictureService.LoadPictureBinary(picture),
                //        picture.MimeType,
                //        picture.SeoFilename
                //    );
                //    _pictureService.SetSeoFilename(picture.Id, _pictureService.GetPictureSeName(model.SeName));
                //}

                var newsItem = model.ToEntity <NewsItem>();
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.CreatedOnUtc = DateTime.UtcNow;

                _newsService.InsertNews(newsItem);

                //activity log
                _customerActivityService.InsertActivity("AddNewNews",
                                                        string.Format(_localizationService.GetResource("ActivityLog.AddNewNews"), newsItem.Id), newsItem);

                //search engine name
                var seName = _urlRecordService.ValidateSeName(newsItem, model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                //Stores
                SaveStoreMappings(newsItem, model);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Added"));

                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                //selected tab
                SaveSelectedTabName();

                return(RedirectToAction("NewsItemEdit", new { id = newsItem.Id }));
            }

            //prepare model
            model = _newsModelFactory.PrepareNewsItemModel(model, null, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #10
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                newsItem.CreatedOnUtc = _dateTimeHelper.ConvertToUtcTime(model.CreatedOn, _dateTimeHelper.CurrentTimeZone);
                _newsService.UpdateNews(newsItem);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            PrepareAddNewsItemPictureModel(model);
            //categories
            model.AvailableCategories.Add(new SelectListItem()
            {
                Text = _localizationService.GetResource("Admin.Common.All"), Value = "0"
            });
            foreach (var c in _categoryService.GetAllCategories(true))
            {
                model.AvailableCategories.Add(new SelectListItem()
                {
                    Text = c.GetCategoryNameWithPrefix(_categoryService), Value = c.Id.ToString()
                });
            }

            //manufacturers
            model.AvailableManufacturers.Add(new SelectListItem()
            {
                Text = _localizationService.GetResource("Admin.Common.All"), Value = "0"
            });
            foreach (var m in _manufacturerService.GetAllManufacturers(true))
            {
                model.AvailableManufacturers.Add(new SelectListItem()
                {
                    Text = m.Name, Value = m.Id.ToString()
                });
            }
            return(View(model));
        }
Exemple #11
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                newsItem.StartDateUtc  = model.StartDate;
                newsItem.EndDateUtc    = model.EndDate;
                newsItem.CustomerRoles = model.SelectedCustomerRoleIds != null?model.SelectedCustomerRoleIds.ToList() : new List <int>();

                newsItem.Stores = model.SelectedStoreIds != null?model.SelectedStoreIds.ToList() : new List <int>();

                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                newsItem.SeName = seName;
                _newsService.UpdateNews(newsItem);

                //search engine name

                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));

                if (continueEditing)
                {
                    //selected tab
                    SaveSelectedTabIndex();

                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            //Store
            PrepareStoresMappingModel(model, newsItem, true);
            //ACL
            PrepareAclModel(model, newsItem, false);
            return(View(model));
        }
Exemple #12
0
        public virtual ActionResult Edit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                _newsService.UpdateNews(newsItem);

                //activity log
                _customerActivityService.InsertActivity("EditNews", _localizationService.GetResource("ActivityLog.EditNews"), newsItem.Id);

                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                //Stores
                SaveStoreMappings(newsItem, model);
                //tags
                _newsTagService.UpdateNewsTags(newsItem, ParseNewsTags(model.NewsTags));


                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));

                if (continueEditing)
                {
                    //selected tab
                    SaveSelectedTabName();

                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            PrepareLanguagesModel(model);
            PrepareStoresMappingModel(model, newsItem, true);
            return(View(model));
        }
Exemple #13
0
        public virtual IActionResult NewsItemCreate(NewsItemModel model, bool continueEditing)
        {
            if (ModelState.IsValid)
            {
                NewsItem newsItem = model.ToEntity <NewsItem>();
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.CreatedOnUtc = DateTime.UtcNow;
                newsItem.PictureId    = model.PictureId;
                newsItem.CustomerId   = model.CustomerId == 0 ? 0 : model.CustomerId;
                _newsService.InsertNews(newsItem);

                if (model.SelectedCategoryIds.Any())
                {
                    foreach (int categoryId in model.SelectedCategoryIds)
                    {
                        newsItem.CategoryNews.Add(new CategoryNews
                        {
                            CategoryId   = categoryId,
                            NewsId       = newsItem.Id,
                            DisplayOrder = 1
                        });
                        _newsService.UpdateNews(newsItem);
                    }
                }
                //activity log
                _customerActivityService.InsertActivity("AddNewNews", string.Format("AddNewNews{0}", newsItem.Id), newsItem);

                //search engine name
                string seName = _urlRecordService.ValidateSeName(newsItem, model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName);
                SuccessNotification("Haber Eklendi");

                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                //selected tab
                SaveSelectedTabName();

                return(RedirectToAction("NewsItemEdit", new { id = newsItem.Id }));
            }

            //prepare model
            model = _newsModelFactory.PrepareNewsItemModel(model, null, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #14
0
        public virtual IActionResult NewsItemEdit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            //try to get a news item with the specified id
            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                return(RedirectToAction("NewsItems"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                _newsService.UpdateNews(newsItem);

                //activity log
                _customerActivityService.InsertActivity("EditNews",
                                                        string.Format(_localizationService.GetResource("ActivityLog.EditNews"), newsItem.Id), newsItem);

                //search engine name
                var seName = _urlRecordService.ValidateSeName(newsItem, model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                //stores
                SaveStoreMappings(newsItem, model);

                _notificationService.SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));

                if (!continueEditing)
                {
                    return(RedirectToAction("NewsItems"));
                }

                //selected tab
                SaveSelectedTabName();

                return(RedirectToAction("NewsItemEdit", new { id = newsItem.Id }));
            }

            //prepare model
            model = _newsModelFactory.PrepareNewsItemModel(model, newsItem, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #15
0
        public ActionResult Translate(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                if (model.Published)
                {
                    if (model.PublishingDate == null)
                    {
                        model.PublishingDate = DateTime.UtcNow;
                    }
                }
                var newsItem = model.ToEntity();
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.CreatedOnUtc = model.CreatedOn;
                if (model.CompanyId != 0)
                {
                    var sellers = _customerService.GetCustomersByCustomerRoleId(_customerService.GetCustomerRoleBySystemName("Sellers").Id);
                    var seller  = sellers.Where(x => x.CompanyInformationId == model.CompanyId).FirstOrDefault();
                    newsItem.Customer = seller;
                }

                _newsService.InsertNews(newsItem);

                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);
                _genericAttributeService.SaveAttribute <int>(newsItem, SystemCustomerAttributeNames.PictureId, model.PictureId);
                _genericAttributeService.SaveAttribute <int>(newsItem, SystemCustomerAttributeNames.PictureCatalogId, model.CatalogPictureId);
                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Added"));
                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }
                else
                {
                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            return(View(model));
        }
Exemple #16
0
        public virtual NewsItem InsertNewsItemModel(NewsItemModel model)
        {
            var newsItem = model.ToEntity();

            newsItem.CreatedOnUtc = DateTime.UtcNow;
            _newsService.InsertNews(newsItem);

            var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);

            newsItem.SeName  = seName;
            newsItem.Locales = model.Locales.ToLocalizedProperty(newsItem, x => x.Title, _urlRecordService);
            _newsService.UpdateNews(newsItem);
            //search engine name
            _urlRecordService.SaveSlug(newsItem, seName, "");

            //update picture seo file name
            _pictureService.UpdatePictureSeoNames(newsItem.PictureId, newsItem.Title);
            return(newsItem);
        }
Exemple #17
0
        public virtual IActionResult Create(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity();
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.CreatedOnUtc = DateTime.UtcNow;
                _newsService.InsertNews(newsItem);

                //activity log
                _customerActivityService.InsertActivity("AddNewNews",
                                                        string.Format(_localizationService.GetResource("ActivityLog.AddNewNews"), newsItem.Id), newsItem);

                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                //Stores
                SaveStoreMappings(newsItem, model);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Added"));

                if (continueEditing)
                {
                    //selected tab
                    SaveSelectedTabName();

                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            PrepareLanguagesModel(model);
            PrepareStoresMappingModel(model, null, true);
            return(View(model));
        }
Exemple #18
0
        public ActionResult AddNews(NewsItemModel model)
        {
            var customer = _workContext.CurrentCustomer;

            if (customer.CustomerRoles.Where(x => x.SystemName == "Sellers").FirstOrDefault() == null)
            {
                return(RedirectToRoute("/Home/Index"));
            }

            if (ModelState.IsValid)
            {
                var newItem = model.ToEntity(_workContext.CurrentCustomer.Id);
                if (!_newsSettings.EnablePremoderation)
                {
                    newItem.Published      = true;
                    newItem.PublishingDate = DateTime.UtcNow;
                }
                else
                {
                    if (newItem.ExtendedProfileOnly == (int)NewsDisplayEnum.MiniSite)
                    {
                        newItem.Published      = true;
                        newItem.PublishingDate = DateTime.UtcNow;
                    }
                }
                _newsService.InsertNews(newItem);
                var seName = newItem.ValidateSeName(null, newItem.Title, true);
                _urlRecordService.SaveSlug(newItem, seName, newItem.LanguageId);
                _genericAttributeService.SaveAttribute <int>(newItem, SystemCustomerAttributeNames.PictureId, model.PictureId);
                _genericAttributeService.SaveAttribute <int>(newItem, SystemCustomerAttributeNames.PictureCatalogId, model.CatalogPictureId);
                return(RedirectToAction("ManageNews"));
            }

            model.CustomerId       = customer.Id;
            model.AviableLanguages = _languageService.GetAllLanguages().Select(x => new LanguageModel()
            {
                Id   = x.Id,
                Name = x.Name
            }).ToList();
            model.WorkingLanguageId = _workContext.WorkingLanguage.Id;
            return(View(model));
        }
        public IActionResult Create(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity();
                newsItem.StartDateUtc  = model.StartDate;
                newsItem.EndDateUtc    = model.EndDate;
                newsItem.CreatedOnUtc  = DateTime.UtcNow;
                newsItem.CustomerRoles = model.SelectedCustomerRoleIds != null?model.SelectedCustomerRoleIds.ToList() : new List <string>();

                newsItem.Stores = model.SelectedStoreIds != null?model.SelectedStoreIds.ToList() : new List <string>();

                _newsService.InsertNews(newsItem);

                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                newsItem.SeName  = seName;
                newsItem.Locales = UpdateLocales(newsItem, model);
                _newsService.UpdateNews(newsItem);
                //search engine name
                _urlRecordService.SaveSlug(newsItem, seName, "");

                //update picture seo file name
                UpdatePictureSeoNames(newsItem);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Added"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            //Stores
            PrepareStoresMappingModel(model, null, true);
            //ACL
            PrepareAclModel(model, null, true);
            return(View(model));
        }
        public virtual async Task <IActionResult> NewsItemCreate(NewsItemModel model, bool continueEditing)
        {
            if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity <NewsItem>();
                newsItem.CreatedOnUtc = DateTime.UtcNow;
                await _newsService.InsertNewsAsync(newsItem);

                //activity log
                await _customerActivityService.InsertActivityAsync("AddNewNews",
                                                                   string.Format(await _localizationService.GetResourceAsync("ActivityLog.AddNewNews"), newsItem.Id), newsItem);

                //search engine name
                var seName = await _urlRecordService.ValidateSeNameAsync(newsItem, model.SeName, model.Title, true);

                await _urlRecordService.SaveSlugAsync(newsItem, seName, newsItem.LanguageId);

                //Stores
                await SaveStoreMappingsAsync(newsItem, model);

                _notificationService.SuccessNotification(await _localizationService.GetResourceAsync("Admin.ContentManagement.News.NewsItems.Added"));

                if (!continueEditing)
                {
                    return(RedirectToAction("NewsItems"));
                }

                return(RedirectToAction("NewsItemEdit", new { id = newsItem.Id }));
            }

            //prepare model
            model = await _newsModelFactory.PrepareNewsItemModelAsync(model, null, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #21
0
        public ActionResult Create(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity();
                newsItem.CreatedOnUtc = DateTime.UtcNow;
                _newsService.InsertNews(newsItem);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Added"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            return(View(model));
        }
Exemple #22
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing, FormCollection form)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                _newsService.UpdateNews(newsItem);

                // Search engine name.
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                SaveStoreMappings(newsItem, model);

                Services.EventPublisher.Publish(new ModelBoundEvent(model, newsItem, form));

                NotifySuccess(T("Admin.ContentManagement.News.NewsItems.Updated"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }

            // If we got this far, something failed, redisplay form.
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);

            PrepareStoresMappingModel(model, newsItem, true);

            return(View(model));
        }
Exemple #23
0
        public ActionResult Create(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }
            if (ModelState.IsValid)
            {
                var newsItem = model.ToEntity();
                newsItem.CreatedOn = DateTime.Now;

                _newsService.InsertNews(newsItem);
                _urlRecordService.SaveSlug(newsItem, newsItem.Title, 0);
                //var seName=newsItem.ValidateSeName
                if (continueEditing)
                {
                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
                return(RedirectToAction("List"));
            }
            return(View(model));
        }
        public virtual async Task <NewsItem> InsertNewsItemModel(NewsItemModel model)
        {
            var newsItem = model.ToEntity();

            newsItem.CreatedOnUtc = DateTime.UtcNow;
            await _newsService.InsertNews(newsItem);

            var seName = await newsItem.ValidateSeName(model.SeName, model.Title, true, _serviceProvider.GetRequiredService <SeoSettings>(), _urlRecordService, _serviceProvider.GetRequiredService <ILanguageService>());

            newsItem.SeName  = seName;
            newsItem.Locales = await model.Locales.ToLocalizedProperty(newsItem, x => x.Title, _serviceProvider.GetRequiredService <SeoSettings>(), _urlRecordService, _serviceProvider.GetRequiredService <ILanguageService>());

            await _newsService.UpdateNews(newsItem);

            //search engine name
            await _urlRecordService.SaveSlug(newsItem, seName, "");

            //update picture seo file name
            await _pictureService.UpdatePictureSeoNames(newsItem.PictureId, newsItem.Title);

            return(newsItem);
        }
Exemple #25
0
        public ActionResult Edit(NewsItemModel model)
        {
            if (model.CustomerId != _workContext.CurrentCustomer.Id)
            {
                return(RedirectToRoute("HomePage"));
            }
            if (ModelState.IsValid)
            {
                var newsItem = _newsService.GetNewsById(model.Id);
                newsItem            = model.ToEntity(newsItem, model.CustomerId);
                newsItem.Published  = false;
                newsItem.Id         = model.Id;
                newsItem.LanguageId = model.Language;
                if (!_newsSettings.EnablePremoderation)
                {
                    newsItem.Published = true;
                    if (!newsItem.PublishingDate.HasValue)
                    {
                        newsItem.PublishingDate = DateTime.UtcNow;
                    }
                }
                else
                {
                    if (newsItem.ExtendedProfileOnly == (int)NewsDisplayEnum.MiniSite)
                    {
                        newsItem.Published = true;
                        if (!newsItem.PublishingDate.HasValue)
                        {
                            newsItem.PublishingDate = DateTime.UtcNow;
                        }
                    }
                }
                _newsService.UpdateNews(newsItem);

                //Clear old slug
                _urlRecordService.ClearEntitySlug <NewsItem>(newsItem, newsItem.LanguageId);
                var seName = newsItem.ValidateSeName(null, newsItem.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);
                var oldPictureId = newsItem.GetAttribute <int>(SystemCustomerAttributeNames.PictureId);
                if (oldPictureId != 0 && oldPictureId != model.PictureId)
                {
                    var pict = _pictureService.GetPictureById(oldPictureId);
                    if (pict != null)
                    {
                        _pictureService.DeletePicture(pict);
                    }
                }
                _genericAttributeService.SaveAttribute <int>(newsItem, SystemCustomerAttributeNames.PictureId, model.PictureId);

                oldPictureId = newsItem.GetAttribute <int>(SystemCustomerAttributeNames.PictureCatalogId);

                if (oldPictureId != 0 && oldPictureId != model.CatalogPictureId)
                {
                    var pict = _pictureService.GetPictureById(oldPictureId);
                    if (pict != null)
                    {
                        _pictureService.DeletePicture(pict);
                    }
                }

                _genericAttributeService.SaveAttribute <int>(newsItem, SystemCustomerAttributeNames.PictureCatalogId, model.CatalogPictureId);
                return(RedirectToAction("ManageNews", new { sellerId = _workContext.CurrentCustomer.Id, pagenumber = model.PageNumber }));
            }

            return(View(model));
        }
Exemple #26
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                bool featured  = newsItem.Featured;
                bool published = newsItem.Published;
                model.StartDate       = newsItem.StartDateUtc;
                model.EndDate         = newsItem.EndDateUtc;
                model.PublishingDate  = newsItem.PublishingDate;
                newsItem              = model.ToEntity(newsItem);
                newsItem.Featured     = featured;
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;

                if (!model.Published)
                {
                    newsItem.Published = false;
                }
                else
                {
                    if (model.PublishingDate == null)
                    {
                        newsItem.PublishingDate = DateTime.UtcNow;
                        if (newsItem.Customer != null && !published)
                        {
                            _newPublicationEmailSender.SendNewsPublicationNotification(newsItem);
                        }
                    }
                    else
                    {
                        if (newsItem.Customer != null && !published)
                        {
                            _newPublicationEmailSender.SendNewsPublicationNotification(newsItem);
                        }
                    }
                    newsItem.Published = true;
                }
                _urlRecordService.ClearEntitySlug(newsItem, newsItem.LanguageId);
                _newsService.UpdateNews(newsItem);
                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);
                _genericAttributeService.SaveAttribute <int>(newsItem, SystemCustomerAttributeNames.PictureId, model.PictureId);
                _genericAttributeService.SaveAttribute <int>(newsItem, SystemCustomerAttributeNames.PictureCatalogId, model.CatalogPictureId);
                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));
                return(continueEditing ? RedirectToAction("Edit", new { id = newsItem.Id }) : RedirectToAction("List"));
            }
            model.CompanyId = newsItem.Customer == null ? 0 : newsItem.Customer.CompanyInformationId.Value;
            //If we got this far, something failed, redisplay form
            ViewBag.AllLanguages = _languageService.GetAllLanguages(true);
            return(View(model));
        }
Exemple #27
0
        public ActionResult Edit(NewsItemModel model, bool continueEditing, HttpPostedFileBase file)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageNews))
            {
                return(AccessDeniedView());
            }

            var newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                //No news item found with the specified id
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;

                if (file == null)
                {
                    newsItem.Picture = model.Picture;
                }
                else
                {
                    var fileName = Path.GetFileName(file.FileName);

                    // move file to folder
                    var path = Path.Combine(Server.MapPath("~/Content/Images/Thumbs/"), fileName);
                    if (System.IO.File.Exists(path))
                    {
                        ViewBag.Error = " File ảnh đã tồn tại";
                    }
                    else
                    {
                        file.SaveAs(path);
                    }
                    newsItem.Picture = file.FileName;
                }

                _newsService.UpdateNews(newsItem);

                //search engine name
                var seName = newsItem.ValidateSeName(model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName, newsItem.LanguageId);

                //Stores
                SaveStoreMappings(newsItem, model);

                SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.News.NewsItems.Updated"));

                if (continueEditing)
                {
                    //selected tab
                    SaveSelectedTabName();

                    return(RedirectToAction("Edit", new { id = newsItem.Id }));
                }
                return(RedirectToAction("List"));
            }

            //If we got this far, something failed, redisplay form
            PrepareLanguagesModel(model);
            PrepareStoresMappingModel(model, newsItem, true);
            return(View(model));
        }
Exemple #28
0
        public virtual IActionResult NewsItemEdit(NewsItemModel model, bool continueEditing)
        {
            //try to get a news item with the specified id
            NewsItem newsItem = _newsService.GetNewsById(model.Id);

            if (newsItem == null)
            {
                return(RedirectToAction("List"));
            }

            if (ModelState.IsValid)
            {
                newsItem = model.ToEntity(newsItem);
                newsItem.StartDateUtc = model.StartDate;
                newsItem.EndDateUtc   = model.EndDate;
                newsItem.PictureId    = model.PictureId;
                _newsService.UpdateNews(newsItem);
                if (model.SelectedCategoryIds.Any())
                {
                    bool ctnews = newsItem.CategoryNews.Any(x => model.SelectedCategoryIds.Contains(x.CategoryId));
                    if (ctnews)
                    {
                        var catNewsList = _categoryService.GetNewsItemCategoriesByNewsId(newsItem.Id);
                        foreach (var categoryNews in catNewsList)
                        {
                            _categoryService.DeleteCategoryNews(categoryNews);
                        }
                    }
                    foreach (int categoryId in model.SelectedCategoryIds)
                    {
                        newsItem.CategoryNews.Add(new CategoryNews
                        {
                            CategoryId   = categoryId,
                            NewsId       = newsItem.Id,
                            DisplayOrder = 1
                        });
                        _newsService.UpdateNews(newsItem);
                    }
                }

                //activity log
                _customerActivityService.InsertActivity("EditNews",
                                                        string.Format("EditNews{0}", newsItem.Id), newsItem);

                //search engine name
                string seName = _urlRecordService.ValidateSeName(newsItem, model.SeName, model.Title, true);
                _urlRecordService.SaveSlug(newsItem, seName);



                SuccessNotification("Haber Güncellendi");

                if (!continueEditing)
                {
                    return(RedirectToAction("List"));
                }

                //selected tab
                SaveSelectedTabName();

                return(RedirectToAction("NewsItemEdit", new { id = newsItem.Id }));
            }

            //prepare model
            model = _newsModelFactory.PrepareNewsItemModel(model, newsItem, true);

            //if we got this far, something failed, redisplay form
            return(View(model));
        }