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));
        }