public ActionResult Details(int?id)
        {
            if (!id.HasValue)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Map map = m_repo.GetMap(id.Value);

            if (map == null)
            {
                return(HttpNotFound());
            }

            ViewBag.MapComponents = m_repo.GetMapComponents(map.Id);

            var crossTypes = m_repo.GetCrossTypes().Where(t => t.GenusId == map.GenusId && t.Retired == false);

            ViewBag.CrossTypes = new SelectList(crossTypes, "Id", "Name");
            map.Questions      = map.Questions.OrderBy(q => q.Order).ToList();
            map.MapComponents  = map.MapComponents.OrderBy(t => t.Row).ThenBy(t => t.PlantNum).ToList();
            return(View(map));
        }