示例#1
0
        public ActionResult Configure(SliderItemModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Configure());
            }
            var item = _sliderItemService.GetMailPageSlides().Where(x => x.Id == model.Id).FirstOrDefault();

            if (item.PictureId != model.PictureId)
            {
                if (item.PictureId != 0)
                {
                    var pic = _pictureService.GetPictureById(item.PictureId);
                    if (pic != null)
                    {
                        _pictureService.DeletePicture(pic);
                    }
                }
                item.PictureId = model.PictureId;
            }

            foreach (var lang in _languageService.GetAllLanguages())
            {
                var locale = model.Locales.Where(x => x.LanguageId == lang.Id).FirstOrDefault();
                _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, locale.Text, lang.Id);
                _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, locale.SubText, lang.Id);
            }


            item.Url = model.Link;
            _sliderItemService.Update(item);
            var newModel = new SliderItemListModel();

            newModel.Slides = new List <SliderItemModel>();
            var items = _sliderItemService.GetMailPageSlides();

            foreach (var newItem in items)
            {
                var tmpModel = new SliderItemModel();
                tmpModel.Locales   = new List <SliderItemLocalizedModel>();
                tmpModel.Id        = newItem.Id;
                tmpModel.PictureId = newItem.PictureId;
                tmpModel.Link      = newItem.Url;
                AddLocales(_languageService, tmpModel.Locales, (locale, languageId) =>
                {
                    locale.SubText = newItem.GetLocalized(x => x.ShortText, languageId, false, false);
                    locale.Text    = newItem.GetLocalized(x => x.TitleText, languageId, false, false);
                });
                newModel.Slides.Add(tmpModel);
            }
            newModel.Returning = true;
            return(View("Nop.Plugin.Widgets.NivoSlider.Views.WidgetsNivoSlider.Configure", newModel));
        }
示例#2
0
        public ActionResult SliderSetup(MiniSiteSliderModel model)
        {
            if (!_workContext.CurrentCustomer.IsRegistered())
            {
                return(RedirectToRoute("HomePage"));
            }

            if (_workContext.CurrentCustomer.UserMiniSite == null)
            {
                return(RedirectToRoute("HomePage"));
            }

            if (ModelState.IsValid)
            {
                var miniSite    = _workContext.CurrentCustomer.UserMiniSite;
                var sliderItems = miniSite.SliderItems;
                var item        = sliderItems.Where(x => x.SlideNumber == 1).FirstOrDefault();
                if (item != null)
                {
                    if (item.PictureId != model.Picture1Id)
                    {
                        if (item.PictureId != 0)
                        {
                            _pictureService.DeletePicture(_pictureService.GetPictureById(item.PictureId));
                        }
                        item.PictureId = model.Picture1Id;
                    }

                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title1, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text1, model.SelectedLanguageId);
                    if (!String.IsNullOrEmpty(model.Link1))
                    {
                        Match match = Regex.Match(model.Link1, @"^http(s?)://\S+$");
                        model.Link1 = match.Success ? model.Link1 : "http://" + model.Link1;
                    }
                    item.Url = model.Link1;
                    _sliderItemService.Update(item);
                }
                else
                {
                    item             = new SliderItem();
                    item.SlideNumber = 1;
                    item.PictureId   = model.Picture1Id;

                    if (!String.IsNullOrEmpty(model.Link1))
                    {
                        Match match = Regex.Match(model.Link1, @"^http(s?)://\S+$");
                        model.Link1 = match.Success ? model.Link1 : "http://" + model.Link1;
                    }
                    item.Url            = model.Link1;
                    item.UserMiniSiteId = miniSite.Id;
                    _sliderItemService.Insert(item);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title1, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text1, model.SelectedLanguageId);
                }

                item = sliderItems.Where(x => x.SlideNumber == 2).FirstOrDefault();
                if (item != null)
                {
                    if (item.PictureId != model.Picture2Id)
                    {
                        if (item.PictureId != 0)
                        {
                            _pictureService.DeletePicture(_pictureService.GetPictureById(item.PictureId));
                        }
                        item.PictureId = model.Picture2Id;
                    }

                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title2, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text2, model.SelectedLanguageId);
                    if (!String.IsNullOrEmpty(model.Link2))
                    {
                        Match match = Regex.Match(model.Link2, @"^http(s?)://\S+$");
                        model.Link2 = match.Success ? model.Link2 : "http://" + model.Link2;
                    }
                    item.Url = model.Link2;
                    _sliderItemService.Update(item);
                }
                else
                {
                    item             = new SliderItem();
                    item.SlideNumber = 2;
                    item.PictureId   = model.Picture2Id;
                    if (!String.IsNullOrEmpty(model.Link2))
                    {
                        Match match = Regex.Match(model.Link2, @"^http(s?)://\S+$");
                        model.Link2 = match.Success ? model.Link2 : "http://" + model.Link2;
                    }
                    item.Url            = model.Link2;
                    item.UserMiniSiteId = miniSite.Id;
                    _sliderItemService.Insert(item);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title2, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text2, model.SelectedLanguageId);
                }

                item = sliderItems.Where(x => x.SlideNumber == 3).FirstOrDefault();
                if (item != null)
                {
                    if (item.PictureId != model.Picture3Id)
                    {
                        if (item.PictureId != 0)
                        {
                            _pictureService.DeletePicture(_pictureService.GetPictureById(item.PictureId));
                        }
                        item.PictureId = model.Picture3Id;
                    }

                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title3, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text3, model.SelectedLanguageId);
                    if (!String.IsNullOrEmpty(model.Link3))
                    {
                        Match match = Regex.Match(model.Link3, @"^http(s?)://\S+$");
                        model.Link3 = match.Success ? model.Link3 : "http://" + model.Link3;
                    }
                    item.Url = model.Link3;
                    _sliderItemService.Update(item);
                }
                else
                {
                    item             = new SliderItem();
                    item.SlideNumber = 3;
                    item.PictureId   = model.Picture3Id;
                    if (!String.IsNullOrEmpty(model.Link3))
                    {
                        Match match = Regex.Match(model.Link3, @"^http(s?)://\S+$");
                        model.Link3 = match.Success ? model.Link3 : "http://" + model.Link3;
                    }
                    item.Url            = model.Link3;
                    item.UserMiniSiteId = miniSite.Id;
                    _sliderItemService.Insert(item);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title3, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text3, model.SelectedLanguageId);
                }

                item = sliderItems.Where(x => x.SlideNumber == 4).FirstOrDefault();
                if (item != null)
                {
                    if (item.PictureId != model.Picture4Id)
                    {
                        if (item.PictureId != 0)
                        {
                            _pictureService.DeletePicture(_pictureService.GetPictureById(item.PictureId));
                        }
                        item.PictureId = model.Picture4Id;
                    }

                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title4, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text4, model.SelectedLanguageId);
                    if (!String.IsNullOrEmpty(model.Link4))
                    {
                        Match match = Regex.Match(model.Link4, @"^http(s?)://\S+$");
                        model.Link4 = match.Success ? model.Link4 : "http://" + model.Link4;
                    }
                    item.Url = model.Link4;
                    _sliderItemService.Update(item);
                }
                else
                {
                    item             = new SliderItem();
                    item.SlideNumber = 4;
                    item.PictureId   = model.Picture4Id;
                    if (!String.IsNullOrEmpty(model.Link4))
                    {
                        Match match = Regex.Match(model.Link4, @"^http(s?)://\S+$");
                        model.Link4 = match.Success ? model.Link4 : "http://" + model.Link4;
                    }
                    item.Url            = model.Link4;
                    item.UserMiniSiteId = miniSite.Id;
                    _sliderItemService.Insert(item);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.TitleText, model.Title4, model.SelectedLanguageId);
                    _localizedEntityService.SaveLocalizedValue(item, x => x.ShortText, model.Text4, model.SelectedLanguageId);
                }
            }

            var lang = _languageService.GetLanguageById(model.SelectedLanguageId);

            model.SelectedLanguage = new LanguageModel()
            {
                Name            = lang.Name,
                LanguageCulture = lang.LanguageCulture,
                Id = lang.Id
            };

            model.AviableLanguages = new List <LanguageModel>();
            var language = _languageService.GetAllLanguages().Where(x => x.UniqueSeoCode == "ru").FirstOrDefault();

            model.AviableLanguages.Add(new LanguageModel()
            {
                Name            = language.Name,
                LanguageCulture = language.LanguageCulture,
                Id = language.Id
            });

            language = _languageService.GetAllLanguages().Where(x => x.UniqueSeoCode == "en").FirstOrDefault();
            model.AviableLanguages.Add(new LanguageModel()
            {
                Name            = language.Name,
                LanguageCulture = language.LanguageCulture,
                Id = language.Id
            });

            model.SelectedLanguageId = lang.Id;
            return(View(model));
        }