/** public ActionResult createFolder(MapFolder parent)
         * {
         *   var id = User.Identity.GetUserId();
         *   ObjectId UserId = new ObjectId(id);
         *   MapFolder toadd = new MapFolder();
         *   toadd.Creator = UserId;
         * }**/


        public ActionResult MyFirstMapAndFolders()
        {
            try
            {
                var       id                = User.Identity.GetUserId();
                ObjectId  UserId            = new ObjectId(id);
                MapFolder superiorMapFolder = _mapFolderDataManager.GetSuperiorMapFolderOfUserOwned(UserId);
                if (superiorMapFolder == null)
                {
                    //  superiorMapFolder = createSuppFolderLocaly(OWNED_SUPIRIOR);
                    _mapFolderDataManager.AddFolder(superiorMapFolder);
                }
                var mapFolders = this._mapFolderDataManager.GetAllSubFolder(superiorMapFolder);

                //var mapFolders = this._mapFolderDataManager.GetFirstFoldersOfUser(UserId);
                var maps = this._mapFolderDataManager.GetAllMapsInFolder(superiorMapFolder);
                _mapDataManager    = new MapDB(new Settings());
                ViewBag.maps       = maps;
                ViewBag.currFolder = superiorMapFolder;
                return(PartialView("_MyFoldersView", mapFolders));
            }
            catch (Exception e)
            {
                string exp = e.ToString();
                //return RedirectToAction("Index", "Home");
                _mapDataManager = new MapDB(new Settings());
                ViewBag.maps    = _mapDataManager.GetAllMaps();
                return(PartialView("_MyFoldersView", new List <MapFolder>()));
            }
        }
        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));
        }
Esempio n. 3
0
 public SearchMaps()
 {
     _mapManager = new MapDB(new Settings());
     _allMaps    = _mapManager.GetAllMaps();
 }