Ejemplo n.º 1
0
        public IEnumerable <Group> SearchGroupsFunc(string groupName, ObjectId userId)
        {
            List <Group>        groups  = new List <Group>();
            IEnumerable <Group> groupss = _groupsManeger.GetAllGroupsOfUser(userId);

            foreach (var item in groupss)
            {
                if (item.Name.ToLower().Contains(groupName.ToLower()))
                {
                    groups.Add(item);
                }
            }
            return(groups);
        }
        public ActionResult OpenFolderShared(string Id)
        {
            string   userIdAsString      = User.Identity.GetUserId();
            ObjectId userObjectID        = new ObjectId(userIdAsString);
            ObjectId parentID            = new ObjectId(Id);
            var      parent              = new MapFolderDB(new Settings()).GetMapFolderById(parentID);
            bool     isCurrentFolderSupp = false;

            if (parent.Model["type"].Equals(SharedCodedData.SHARED_SUPIRIOR))
            {
                parent              = _mapFolderDataManager.GetSuperiorMapFolderOfUserShared(userObjectID);
                parentID            = parent.Id;
                isCurrentFolderSupp = true;
            }
            ObjectId prevFolderID = parent.ParentDierctory;
            var      prevFolder   = new MapFolderDB(new Settings()).GetMapFolderById(prevFolderID);

            if (prevFolder != null)
            {
                bool isPrevCorrect = false;
                if (prevFolder.Permissions.Users.Keys.Contains(userObjectID))
                {
                    isPrevCorrect = true;
                }
                else
                {
                    foreach (var groupId in prevFolder.Permissions.Groups.Keys)
                    {
                        var group = _groupManager.GetGroupById(groupId);
                        if (group.Members.Keys.Contains(userObjectID))
                        {
                            isPrevCorrect = true;
                            break;
                        }
                    }
                }
                if (!isPrevCorrect)
                {
                    prevFolder   = _mapFolderDataManager.GetSuperiorMapFolderOfUserShared(userObjectID);
                    prevFolderID = prevFolder.Id;
                }
            }
            var mapFolders = _mapFolderDataManager.GetAllSubFolder(parent);

            if (isCurrentFolderSupp)
            {
                mapFolders = this._mapFolderDataManager.GetAllFolders();
            }
            var finalMapFolders = new List <MapFolder>();

            foreach (var mapFolder in mapFolders)
            {
                if (mapFolder.Id.Equals(parent.Id))
                {
                    continue;
                }
                if (mapFolder.Permissions.Owner.Key.Equals(userObjectID))
                {
                    continue;
                }
                if (mapFolder.Permissions.Users.Keys.Contains(userObjectID))
                {
                    finalMapFolders.Add(mapFolder);
                }
                else
                {
                    foreach (var groupId in mapFolder.Permissions.Groups.Keys)
                    {
                        var group = _groupManager.GetGroupById(groupId);
                        if (group.Members.Keys.Contains(userObjectID))
                        {
                            finalMapFolders.Add(mapFolder);
                        }
                    }
                }
            }

            mapFolders = finalMapFolders;

            var maps = new List <Map>();

            if (parent.Model["type"].Equals(SharedCodedData.SHARED_SUPIRIOR))
            {
                var allMaps = _mapDataManager.GetAllMaps();
                foreach (var tempMap in allMaps)
                {
                    if (tempMap.Permissions.Owner.Key.Equals(userObjectID))
                    {
                        continue;
                    }
                    else if (tempMap.Permissions.Users.Keys.Contains(userObjectID))
                    {
                        maps.Add(tempMap);
                    }
                    else
                    {
                        var groups = _groupManager.GetAllGroupsOfUser(userObjectID);
                        foreach (var group in groups)
                        {
                            if (tempMap.Permissions.Groups.Keys.Contains(group.Id))
                            {
                                maps.Add(tempMap);
                                break;
                            }
                        }
                    }
                }
            }
            else
            {
                maps = this._mapFolderDataManager.GetAllMapsInFolder(parent).ToList();
            }

            ViewBag.maps               = maps;
            ViewBag.currFolder         = parent;
            ViewBag.currFolderID       = parent.Id;
            ViewBag.currFolderIDString = parent.Id.ToString();

            ViewBag.prevFolder = prevFolder;
            if (prevFolder == null)
            {
                ViewBag.prevFolderID = null;
            }
            else
            {
                ViewBag.prevFolderID = prevFolder.Id;
            }
            if (prevFolder != null)
            {
                List <MapFolder> prevFOlderInList = new List <MapFolder>()
                {
                    prevFolder
                };
                mapFolders = prevFOlderInList.Union(mapFolders);
                List <MapFolder> viewList = mapFolders.ToList();
            }
            return(PartialView("_MySharedFoldersView", mapFolders));
        }
Ejemplo n.º 3
0
 public IEnumerable <Group> GetGroupsByUserId(string userId)
 {
     return(_groupManager.GetAllGroupsOfUser(new ObjectId(userId)));
 }