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)); }
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)); }