public ActionResult OpenFolder(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);

            if (parent.Model["type"].Equals(SharedCodedData.OWNED_SUPIRIOR))
            {
                parent   = _mapFolderDataManager.GetSuperiorMapFolderOfUserOwned(userObjectID);
                parentID = parent.Id;
            }
            if (parent.Model["type"].Equals(SharedCodedData.SHARED_SUPIRIOR))
            {
                parent   = _mapFolderDataManager.GetSuperiorMapFolderOfUserShared(userObjectID);
                parentID = parent.Id;
            }
            ObjectId prevFolderID        = parent.ParentDierctory;
            var      allFoldersOfUser    = _mapFolderDataManager.GetAllMapFoldersOfUser(userObjectID);
            var      allFolderOwnedByUsr = new List <MapFolder>();

            foreach (var folder in allFoldersOfUser)
            {
                if (folder.Permissions.Owner.Key.ToString().Equals(userObjectID.ToString()) && !folder.Model["type"].Equals(SharedCodedData.SHARED_SUPIRIOR))
                {
                    allFolderOwnedByUsr.Add(folder);
                }
            }
            ViewBag.allFoldersOfUser = allFolderOwnedByUsr;
            var prevFolder = new MapFolderDB(new Settings()).GetMapFolderById(prevFolderID);
            var mapFolders = this._mapFolderDataManager.GetAllSubFolder(parent);
            var maps       = this._mapFolderDataManager.GetAllMapsInFolder(parent);

            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("_MyFoldersView", mapFolders));
        }
Ejemplo n.º 2
0
        public ActionResult Edit(MapEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var map = _mapManager.GetMapById(new ObjectId(model.Id));
                    map.Name        = model.Name;
                    map.Description = model.Description;

                    string path    = model.Path;
                    string mapPath = map.Model["path"].ToString();
                    map.Model["path"] = path;
                    string prevFolderPathNew;
                    string prevFolderNameNew;
                    int    index = path.LastIndexOf("/");
                    if (index < 0)
                    {
                        prevFolderPathNew = "";
                        prevFolderNameNew = path;
                    }
                    else
                    {
                        prevFolderPathNew = path.Substring(0, index);
                        prevFolderNameNew = path.Substring(index + 1);
                    }

                    index = mapPath.LastIndexOf("/");
                    string prevFolderPathInMap;
                    string prevFolderNameInMap;
                    if (index < 0)
                    {
                        prevFolderPathInMap = "";
                        prevFolderNameInMap = path;
                    }
                    else
                    {
                        prevFolderPathInMap = mapPath.Substring(0, index);
                        prevFolderNameInMap = mapPath.Substring(index + 1);
                    }


                    var userID           = User.Identity.GetUserId();
                    var allFoldersOfUser = _folderManeger.GetAllMapFoldersOfUser(new ObjectId(userID));

                    foreach (var folderOfMap in allFoldersOfUser)
                    {
                        if (folderOfMap.Name.Equals(prevFolderNameInMap) && prevFolderPathInMap.Equals(folderOfMap.Model["path"].ToString()))
                        {
                            folderOfMap.idOfMapsInFolder.Remove(map.Id);
                            _folderManeger.UpdateMapFolder(folderOfMap);
                            break;
                        }
                    }

                    foreach (var tempFolder in allFoldersOfUser)//tempFolder represents the folder that MIGHT be the new prev folder
                    {
                        if (tempFolder.Name.Equals(prevFolderNameNew) && prevFolderPathNew.Equals(tempFolder.Model["path"].ToString()))
                        {
                            tempFolder.idOfMapsInFolder.Add(map.Id);
                            _folderManeger.UpdateMapFolder(tempFolder);
                            return(RedirectToAction("Details", "MapFolder", new { id = model.Id }));
                        }
                    }
                }
                catch
                {
                    return(View(model));
                }
            }
            return(View(model));
        }