public ActionResult PostMenuConfig(MenuConfigModel m) { if (string.IsNullOrEmpty(m.Menu)) ModelState.AddModelError("menu", "You must supply at least one menu item."); var lines = m.Menu.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (lines.Where(l => l.Split(';').Length < 2).Count() > 0) ModelState.AddModelError("menu", "Each menu item must have at least some text and href."); if (ModelState.IsValid) { var appSvc = AppServiceRepository.GetService(); var include = appSvc.GetInclude<MenuCustomInclude>(m.IncludePath); IList<CustomMenuItem> items = new List<CustomMenuItem>(); foreach (string line in lines) { CustomMenuItem item = new CustomMenuItem(); var vals = line.Split(';'); item.Text = vals[0].Trim(); item.Href = vals[1].Trim(); if (vals.Length > 2 && vals[2].Trim().Length > 0) item.Title = vals[2]; if (vals.Length > 3 && vals[3].Trim().Length > 0) item.ExactSelect = vals[3] == "1"; items.Add(item); } include.MenuItems = items; AppServiceRepository.UpdateService(appSvc); return Json(new { success = true, includePath = m.IncludePath }); } return PartialView("MenuConfig", m); }
public ActionResult MenuConfig(MenuConfigModel m) { var include = AppService.GetInclude<MenuCustomInclude>(m.IncludePath); m.Menu = string.Concat(include.MenuItems.Select(mi => string.Format("{0};{1};{2};{3}{4}", mi.Text, mi.Href, mi.Title, (mi.ExactSelect) ? "1" : "0", Environment.NewLine)).ToArray()); return PartialView("MenuConfig", m); }