public void deleteFolder(string currFolder) { MapFolderDB folderManeger = new MapFolderDB(new Settings()); ObjectId currFolderID = new ObjectId(currFolder); MapFolder currentFolder = folderManeger.GetMapFolderById(currFolderID); try { foreach (ObjectId idOfSubFolder in currentFolder.idOfSubFolders) { deleteFolder(idOfSubFolder.ToString()); } } catch { } ObjectId prevFolderID = currentFolder.ParentDierctory; MapFolder prevFolder = folderManeger.GetMapFolderById(prevFolderID); foreach (ObjectId objID in prevFolder.idOfSubFolders) { if (currFolderID.Equals(objID)) { currFolderID = objID; } } prevFolder.idOfSubFolders.Remove(currFolderID); folderManeger.UpdateMapFolder(prevFolder); folderManeger.RemoveMapFolderById(currFolderID); ViewBag.go2 = prevFolderID.ToString(); }
public ActionResult Details(string id) { if (!string.IsNullOrEmpty(id)) { MapFolderDB _mfManeger = new MapFolderDB(new Settings()); UserDB _userManeger = new UserDB(new Settings()); var mId = new ObjectId(id); var folder = _mfManeger.GetMapFolderById(mId); if (folder != null) { var userId = User.Identity.GetUserId(); bool isFollowing = folder.Followers.Contains(new ObjectId(userId), new IDComparer()); ViewBag.isFollowing = isFollowing; FolderPermissionController fpc = new FolderPermissionController(); MapViewModel mvm = new MapViewModel { Id = folder.Id, Name = folder.Name, CreationTime = folder.CreationTime, CreatorId = folder.Creator, CreatorEmail = "not supported yet" /*UserManager.GetEmail(map.Creator.ToString())*/, Description = folder.Description, Model = folder.Model, ModelArchive = null }; if (fpc.IsFolderOwner(id, User.Identity.GetUserId())) { return(View(mvm)); } else { return(View(mvm)); } } } return(RedirectToAction("Index", "Home")); }
public void addNewFolder(string parentID, string folderName, string folderDescription) { MapFolderDB folderManeger = new MapFolderDB(new Settings()); var id = User.Identity.GetUserId(); ObjectId UserId = new ObjectId(id); if (parentID == null || parentID.Equals("")) { parentID = folderManeger.GetSuperiorMapFolderOfUser(UserId).Id.ToString(); } _mapFolderDataManager = new MapFolderDB(new Settings()); MapPermissions mapPermissions = new MapPermissions(); mapPermissions.Owner = new KeyValuePair <ObjectId, MapPermissionType>(UserId, MapPermissionType.RW); mapPermissions.Users = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.Groups = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.AllUsers = MapPermissionType.NA; mapPermissions.Users.Add(UserId, MapPermissionType.RW); MapFolder folder = new MapFolder(); folder.Name = folderName; folder.Creator = UserId; folder.CreationTime = DateTime.Now; folder.Description = folderDescription; folder.Followers = new HashSet <ObjectId>(); folder.Permissions = mapPermissions; folder.idOfMapsInFolder = new HashSet <ObjectId>(); folder.idOfSubFolders = new HashSet <ObjectId>(); folder.ParentDierctory = new ObjectId(parentID); MapFolder parentFolder = folderManeger.GetMapFolderById(folder.ParentDierctory); string path = parentFolder.Model["path"].ToString(); if (path.Equals("")) { path = parentFolder.Name; } else { path = path + "/" + parentFolder.Name; } if ((parentFolder.Model["type"]).Equals("sharedSup") || (parentFolder.Model["type"]).Equals("shared")) { folder.Model = new BsonDocument { { "type", NOT_SUPIRIOR_BUT_SHARED }, { "path", path } }; } else { folder.Model = new BsonDocument { { "type", NOT_SUPIRIOR_BUT_OWNED }, { "path", path } }; } folderManeger.AddSubFolder(parentFolder, folder); }
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 FolderPermissionController() { this._mapManager = new MapDB(new Settings()); this._userService = new UserDB(new Settings()); this._groupManager = new GroupDB(new Settings()); this._folderManeger = new MapFolderDB(new Settings()); //_userManager = UserManager; }
private MapFolder createSuppFolderLocaly(string whichSupp) { MapFolderDB _mapFolderDataManager = new MapFolderDB(new Settings()); var id = User.Identity.GetUserId(); ObjectId UserId = new ObjectId(id); MapPermissions mapPermissions = new MapPermissions(); mapPermissions.Owner = new KeyValuePair <ObjectId, MapPermissionType>(UserId, MapPermissionType.RW); mapPermissions.Users = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.Groups = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.AllUsers = MapPermissionType.NA; mapPermissions.Users.Add(UserId, MapPermissionType.RW); MapFolder suppFolder = new MapFolder(); suppFolder.Name = "suppFolder" + whichSupp; suppFolder.Creator = UserId; suppFolder.CreationTime = DateTime.Now; suppFolder.Description = "Supirior Folder " + whichSupp; suppFolder.Followers = new HashSet <ObjectId>(); suppFolder.Permissions = mapPermissions; suppFolder.idOfMapsInFolder = new HashSet <ObjectId>(); suppFolder.idOfSubFolders = new HashSet <ObjectId>(); suppFolder.ParentDierctory = new ObjectId(); suppFolder.FirstFolderOfUser = UserId; suppFolder.Model = new BsonDocument { { "type", whichSupp }, { "path", "" } }; List <Map> maps = null; if (whichSupp.Equals(SharedCodedData.OWNED_SUPIRIOR)) { maps = new MapDB(new Settings()).GetMapsByCreatorId(UserId).ToList(); } else { maps = new MapDB(new Settings()).GetSharedMapsById(UserId).ToList(); } foreach (Map map in maps) { suppFolder.idOfMapsInFolder.Add(map.Id); } return(suppFolder); }
private MapFolder createFolderLocaly(string folderName) { MapFolderDB _mapFolderDataManager = new MapFolderDB(new Settings()); var id = User.Identity.GetUserId(); ObjectId UserId = new ObjectId(id); MapPermissions mapPermissions = new MapPermissions(); mapPermissions.Owner = new KeyValuePair <ObjectId, MapPermissionType>(UserId, MapPermissionType.RW); mapPermissions.Users = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.Groups = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.AllUsers = MapPermissionType.NA; mapPermissions.Users.Add(UserId, MapPermissionType.RW); MapFolder suppFolder = new MapFolder(); suppFolder.Name = folderName; suppFolder.Creator = UserId; suppFolder.CreationTime = DateTime.Now; suppFolder.Description = "shared folder for group" + folderName; suppFolder.Followers = new HashSet <ObjectId>(); suppFolder.Permissions = mapPermissions; suppFolder.idOfMapsInFolder = new HashSet <ObjectId>(); suppFolder.idOfSubFolders = new HashSet <ObjectId>(); // MapFolder supFolder = _mapFolderDataManager.GetSuperiorMapFolderOfUser suppFolder.ParentDierctory = new ObjectId(); suppFolder.FirstFolderOfUser = UserId; var maps = new MapDB(new Settings()).GetAllMaps(); foreach (Map map in maps) { suppFolder.idOfMapsInFolder.Add(map.Id); } return(suppFolder); }
public ActionResult Delete(string id) { try { // deleteFolder(id); ViewBag.folderID = id; var folder = new MapFolderDB(new Settings()).GetMapFolderById(new ObjectId(id)); ViewBag.prevFolderID = folder.ParentDierctory.ToString(); var map = this._mapFolderDataManager.GetMapFolderById(new ObjectId(id)); if (IsValidId(id) && IsValidMap(map)) { var mdvm = new MapDeleteViewModel { Id = map.Id.ToString(), Name = map.Name, CreatorEmail = "", CreationTime = map.CreationTime, Description = map.Description }; return(View(mdvm)); } } catch (Exception) { return(RedirectToAction("Index", "Home")); } return(RedirectToAction("Index", "Home")); }
public MapController() { this._mapManager = new MapDB(new Settings()); this._groupManager = new GroupDB(new Settings()); this._folderManeger = new MapFolderDB(new Settings()); }
public ActionResult Index(string id, string ownedOrShared) { //MailSender.SendMailMessage("*****@*****.**", "*****@*****.**", "", "", "(do not reply)", "lalalalalala"); bool isOwned; bool isShared; ViewBag.isShared = ownedOrShared != null && ownedOrShared.Equals("shared"); if (ownedOrShared == null) { isOwned = false; isShared = false; } else { isOwned = ownedOrShared.Equals("owned"); isShared = ownedOrShared.Equals("shared"); } ViewBag.ownedFolderID = null; MapFolderDB mapFolderManeger = new MapFolderDB(new Settings()); bool isIdOfOwned = false; if (id != null) { ObjectId oId = new ObjectId(id); MapFolder mf = mapFolderManeger.GetMapFolderById(oId); if (isOwned) { ViewBag.ownedFolderID = oId; isIdOfOwned = true; } } if (!isIdOfOwned) { ObjectId userID = new ObjectId(User.Identity.GetUserId()); var supFolder = new MapFolderDB(new Settings()).GetSuperiorMapFolderOfUserOwned(userID); if (supFolder != null) { ObjectId fId = supFolder.Id; ViewBag.ownedFolderID = fId; } else { supFolder = createSuppFolderLocaly(SharedCodedData.OWNED_SUPIRIOR); mapFolderManeger.AddFolder(supFolder); ObjectId fId = supFolder.Id; ViewBag.ownedFolderID = fId; } } ViewBag.sharedFolderID = null; bool isIdOfShared = false; if (id != null) { ObjectId oId = new ObjectId(id); MapFolder mf = mapFolderManeger.GetMapFolderById(oId); if (isShared) { ViewBag.sharedFolderID = oId; isIdOfShared = true; } } if (!isIdOfShared) { ObjectId userID = new ObjectId(User.Identity.GetUserId()); var supFolder = new MapFolderDB(new Settings()).GetSuperiorMapFolderOfUserShared(userID); if (supFolder != null) { ObjectId fId = supFolder.Id; ViewBag.sharedFolderID = fId; } else { supFolder = createSuppFolderLocaly(SharedCodedData.SHARED_SUPIRIOR); mapFolderManeger.AddFolder(supFolder); ObjectId fId = supFolder.Id; ViewBag.sharedFolderID = fId; } } return(View()); }
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)); }