public ActionResult EditaSezione(int id) { ActionResult result = null; WidgetSezioneEditaModel model = new WidgetSezioneEditaModel(); Widget widget = null; widget = WidgetRepository.Instance.RecuperaWidget(id); if (widget != null) { model.Widget = widget; model.ID = id; model.EditaNome_IT = widget.Nome_IT; model.EditaNome_EN = widget.Nome_EN; if (!String.IsNullOrEmpty(widget.Contenuto_IT)) { if (widget.VoceMenuID == null) { foreach (Match match in new Regex(@"<a.*?href=(""|')(?<href>.*?)(""|').*?>(?<value>.*?)</a>").Matches(widget.Contenuto_IT)) { model.EditaLinkIT = match.Groups["href"].Value; } } foreach (Match match in new Regex(@"<img.*?src=(""|')(?<src>.*?)(""|').*?").Matches(widget.Contenuto_IT)) { model.EditaIcona = match.Groups["src"].Value; } } if (!String.IsNullOrEmpty(widget.Contenuto_EN)) { if (widget.VoceMenuID == null) { foreach (Match match in new Regex(@"<a.*?href=(""|')(?<href>.*?)(""|').*?>(?<value>.*?)</a>").Matches(widget.Contenuto_IT)) { model.EditaLinkEN = match.Groups["href"].Value; } } foreach (Match match in new Regex(@"<img.*?src=(""|')(?<src>.*?)(""|').*?").Matches(widget.Contenuto_IT)) { model.EditaIcona = match.Groups["src"].Value; } } model.SelezioneLinkVoce = widget.VoceMenuID != null ? "voce" : "link"; model.EditaVoceMenuID = widget.VoceMenuID; model.VociMenuSelectList = ModelUtils.CreaVociMenuSelectList(true).OrderBy(x => x.Text); model.IconeList = ModelUtils.CreaIconeList(); result = View(model); } else { result = HttpNotFound(); } return(View(model)); }
public ActionResult CreaSezione() { WidgetSezioneEditaModel model = new WidgetSezioneEditaModel(); model.VociMenuSelectList = ModelUtils.CreaVociMenuSelectList(true).OrderBy(x => x.Text); model.SelezioneLinkVoce = "voce"; model.IconeList = ModelUtils.CreaIconeList(); return(View("EditaSezione", model)); }
public ActionResult EditaSezione(WidgetSezioneEditaModel model) { ActionResult result = null; Widget widget = null; if (model.SelezioneLinkVoce.Equals("link") && string.IsNullOrEmpty(model.EditaLinkIT)) { ModelState.AddModelError("EditaLinkIT", "Link diretto IT obbligatorio"); } if (model.SelezioneLinkVoce.Equals("link") && string.IsNullOrEmpty(model.EditaLinkEN)) { ModelState.AddModelError("EditaLinkEN", "Link diretto EN obbligatorio"); } if (model.SelezioneLinkVoce.Equals("voce") && model.EditaVoceMenuID == null) { ModelState.AddModelError("EditaVoceMenuID", "Voce menu obbligatoria"); } if (ModelState.IsValid) { int id = 0; ContenutoService cs = new ContenutoService(); if (model.ID != 0) { widget = WidgetRepository.Instance.RecuperaWidget(model.ID); } else { widget = cs.CreaWidget(model.EditaNome_IT.Trim(), TipoWidget.Sezione); } widget.Nome_IT = model.EditaNome_IT.Trim(); widget.Nome_EN = model.EditaNome_EN.Trim(); String linkIT = ""; String linkEN = ""; if (model.SelezioneLinkVoce.Equals("link")) { widget.VoceMenuID = null; linkIT = model.EditaLinkIT.Trim(); linkEN = model.EditaLinkEN.Trim(); } else if (model.SelezioneLinkVoce.Equals("voce")) { widget.VoceMenuID = model.EditaVoceMenuID; VoceMenu VoceMenu = VoceMenuRepository.Instance.RecuperaVoceMenu((int)model.EditaVoceMenuID); linkIT = VoceMenu.Editabile ? Url.RouteUrl("PaginaStatica", new { nomeSezione = VoceMenu.Sezione, nomeVoce = VoceMenu.Voce, lang = CultureHelper._it }) : Url.RouteUrl("Default", new { controller = VoceMenu.Sezione, action = VoceMenu.Voce, lang = CultureHelper._it }); linkEN = VoceMenu.Editabile ? Url.RouteUrl("PaginaStatica", new { nomeSezione = VoceMenu.Sezione, nomeVoce = VoceMenu.Voce, lang = CultureHelper._en }) : Url.RouteUrl("Default", new { controller = VoceMenu.Sezione, action = VoceMenu.Voce, lang = CultureHelper._en }); } String htmlTemplate = "" + "<img src=\"{0}\" alt=\"{2}\">" + "<a href=\"{1}\">{2}</a>"; widget.Contenuto_IT = String.Format(htmlTemplate, model.EditaIcona, linkIT.TrimStart('/'), widget.Nome_IT); widget.Contenuto_EN = String.Format(htmlTemplate, model.EditaIcona, linkEN.TrimStart('/'), widget.Nome_EN); id = cs.SalvaWidget(widget); result = RedirectToAction("EditaSezione", new { id = id }); } else { if (model.ID != 0) { widget = WidgetRepository.Instance.RecuperaWidget(model.ID); model.Widget = widget; } model.VociMenuSelectList = ModelUtils.CreaVociMenuSelectList(true).OrderBy(x => x.Text); model.IconeList = ModelUtils.CreaIconeList(); result = View(model); } return(result); }