public ActionResult Result(string selectedOrgs, string selectedPrimary, int currentrecord, bool selectExisting)
        {
            if (selectedOrgs == "---")
            {
                return(null);
            }
            if (selectedPrimary == "---" || selectedPrimary == "0")
            {
                return(null);
            }
            var selectionStrings = selectedOrgs.Split(',');
            var selections       = new int[selectionStrings.Count()];

            for (var i = 0; i < selectionStrings.Count(); i++)
            {
                selections[i] = int.Parse(selectionStrings[i]);
            }

            var selectedPrimaryAsInt = int.Parse(selectedPrimary);

            var organisations = (from orgs in _context.Organisations.AsQueryable()
                                 where selections.Any(i => orgs.OrganisationId.Equals(i))
                                 select orgs).ToList();

            var myOrganisations =
                organisations.Select(
                    organisation => new MyOrganisation {
                Name = organisation.Name, Value = organisation.OrganisationId
            })
                .ToList();

            List <int> participantsIds = null;

            if (currentrecord != 0)
            {
                var currentUser = _context.UserLoginInformations.Find(currentrecord);
                participantsIds = currentUser.GetFacilityIdsInUserFacilityList();
            }
            var nodes = new List <MyNode>();

            foreach (var @org in myOrganisations)
            {
                var myFacilities = @org.GetAllMatchingFacilities();
                if (myFacilities.Count() == 1 && selectionStrings.Count() == 1)
                {
                    nodes.Add(null);
                }
                else
                {
                    MyUser user = new MyUser();
                    user.ParentFacilityId = selectedPrimaryAsInt;
                    MyFacility facility = user.GetParentFacility();
                    if ((facility.ParentOrganisationId == @org.Value && myFacilities.Count() != 1) || (facility.ParentOrganisationId != @org.Value && myFacilities.Count() > 0))
                    {
                        var orgNode = new MyNode()
                        {
                            text      = org.Name,
                            value     = org.Value,
                            icon      = "glyphicon glyphicon-home",
                            backColor = "#ffffff",
                            color     = "#428bca",
                            nodetype  = MyNodeType.Organisation
                        };
                        orgNode.nodes = new List <MyNode>();


                        foreach (var @fac in myFacilities)
                        {
                            if (@fac.Value != selectedPrimaryAsInt)
                            {
                                var facNode = new MyNode
                                {
                                    parent    = orgNode.value,
                                    text      = fac.Name,
                                    value     = fac.Value,
                                    icon      = "glyphicon glyphicon-th-list",
                                    backColor = "#ffffff",
                                    color     = "#66512c",
                                    nodetype  = MyNodeType.Facility
                                };
                                if (participantsIds != null && selectExisting)
                                {
                                    if (ChatGroupController.CheckIfMatchingMyFacilityExists(participantsIds, facNode) !=
                                        null)
                                    {
                                        facNode.state = new state
                                        {
                                            @checked = true,
                                            disabled = false,
                                            expanded = true,
                                            selected = false
                                        };
                                    }
                                }
                                orgNode.nodes.Add(facNode);
                            }
                        }
                        nodes.Add(orgNode);
                    }
                }
            }
            return(Json(nodes, JsonRequestBehavior.AllowGet));
        }