public List <Model.Region> GetRegions() { try { CampaignRequestBO campaignRequestBO = new CampaignRequestBO(); return(campaignRequestBO.GetRegions()); } catch (Exception ex) { Error.WriteException(TraceEventType.Error, ex.Message.ToString(), "GetRegions"); throw; } }
/// <summary> /// LoadRegionTreeView() designed to format combined data /// from 2 tables related to regions and super-regions into /// nested child nodes in json format /// example[{Childs=[{Childs=[{}, {}]}]}] /// </summary> /// <returns></returns> public JsonResult LoadRegionTreeView() { //list local variables CampaignRequestBO CampRequestBO = new CampaignRequestBO(); IEnumerable <Region> AcmRegions = (IEnumerable <Region>)CampRequestBO.GetRegions(); List <object> RegionsTopNode = new List <object>(); string CurrentSuperRegionId = ""; //loop through region records and create a tree structure for //interface tree view control. //represent DisplayID as combination of SuperRegionId + "$" + RegionId foreach (var region in AcmRegions) { if (CurrentSuperRegionId != region.SuperRegionId.Trim()) { CurrentSuperRegionId = region.SuperRegionId.Trim(); //select all region id's that belog to currently selected super region id IEnumerable <Region> CurrentRegions = AcmRegions.Where(x => x.SuperRegionId.Trim() == CurrentSuperRegionId); //add fetched nodes to top node structure RegionsTopNode.Add(new { displayID = region.SuperRegionId.Trim(), displayText = region.SuperRegion.SuperRegionName, defaultState = false, Childs = (from item in CurrentRegions select new { displayID = CurrentSuperRegionId + "$" + item.RegionId, displayText = item.RegionName, defaultState = false, Childs = "" }).ToList() }); } } //create top level node to assotiate client control with data //fetched from database var TreeViewResult = new { displayID = "", displayText = "All regions", defaultState = false, Childs = RegionsTopNode }; return(Json(TreeViewResult, JsonRequestBehavior.AllowGet)); }