public IActionResult Edit(int?id) { int groupID = (int)id; var groupPageEls = _context.PageElements.Where(pe => pe.GroupID == groupID).OrderBy(pe => pe.SortOrder).ToArray(); var group = _context.PageElementGroups.SingleOrDefault(g => g.ID == groupID); var pageElGroup = new PageElGroup { PageElementGroup = group, GroupedPageElements = groupPageEls }; if (groupPageEls.Length == 0) { return(View(pageElGroup)); } var pageID = groupPageEls[0].PageID; ViewData["PageID"] = pageID; // return View(groupPageEls); return(View(pageElGroup)); }
public IActionResult Edit(int?id, IFormCollection form) { //Need to loop through all form values and decide what to do with each value //values will be new page Elements var f = form; var pageElGroup = _context.PageElementGroups.SingleOrDefault(g => g.ID == id); pageElGroup.Name = form["Name"]; foreach (var key in form.Keys) { var value = form[key]; string[] keyValues = key.Split('-'); if (keyValues.Length == 2) // a page el { int keyID = Convert.ToInt32(keyValues[0]); string keyFieldType = keyValues[1]; var pageEl = _context.PageElements.SingleOrDefault(pe => pe.ID == keyID); if (keyFieldType == "name") { pageEl.Name = value; } if (pageEl.Type == PageElementType.Text) { pageEl.Body = value; } else if (pageEl.Type == PageElementType.Blurb) { pageEl.Body = value; } else if (pageEl.Type == PageElementType.Link) { if (keyFieldType == "linkTitle") { pageEl.LinkTitle = value; } else { pageEl.Path = value; } } _context.Update(pageEl); } } _context.Update(pageElGroup); _context.SaveChanges(); int groupID = (int)id; var groupPageEls = _context.PageElements.Where(pe => pe.GroupID == groupID).OrderBy(pe => pe.SortOrder).ToArray(); var group = _context.PageElementGroups.SingleOrDefault(g => g.ID == groupID); var pageGroup = new PageElGroup { PageElementGroup = group, GroupedPageElements = groupPageEls }; var pageID = groupPageEls[0].PageID; ViewData["PageID"] = pageID; return(View(pageGroup)); }