Exemple #1
0
 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));
        }