public ActionResult Create(MapCreateViewModel model) { if (ModelState.IsValid) { var id = User.Identity.GetUserId(); ObjectId oId = new ObjectId(id); MapPermissions mapPermissions = new MapPermissions(); mapPermissions.Owner = new KeyValuePair <ObjectId, MapPermissionType>(oId, MapPermissionType.RW); mapPermissions.Users = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.Groups = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.AllUsers = MapPermissionType.NA; BsonDocument mapModel = new BsonDocument(); Queue <MapVersion> versions = new Queue <MapVersion>(MapVersion.VERSIONS); versions.Enqueue(new MapVersion { CreationTime = DateTime.Now, Model = mapModel }); Map map = new Map { Name = model.Name, Creator = oId, CreationTime = DateTime.Now, Description = model.Description, Model = mapModel, Permissions = mapPermissions, MapsArchive = versions }; _mapManager.AddMap(map); return(RedirectToAction("Index", "Home")); } else { return(View()); } }
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 CreateMap(SaveMapViewModel newMapModel) { if (ModelState.IsValid) { var id = User.Identity.GetUserId(); ObjectId oId = new ObjectId(id); MapPermissions mapPermissions = new MapPermissions(); mapPermissions.Owner = new KeyValuePair <ObjectId, MapPermissionType>(oId, MapPermissionType.RW); mapPermissions.Users = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.Groups = new Dictionary <ObjectId, MapPermissionType>(); mapPermissions.AllUsers = MapPermissionType.NA; mapPermissions.Users.Add(oId, MapPermissionType.RW); BsonDocument bMapModel = BsonDocument.Parse(newMapModel.Model); //BsonDocument bMapModel = mapModel.ToBsonDocument(); Queue <MapVersion> versions = new Queue <MapVersion>(MapVersion.VERSIONS); versions.Enqueue(new MapVersion { CreationTime = DateTime.Now, Model = bMapModel }); Map map = new Map { Name = newMapModel.Name, Creator = oId, CreationTime = DateTime.Now, Description = newMapModel.Description, Model = bMapModel, Permissions = mapPermissions, MapsArchive = versions, Followers = new HashSet <ObjectId>() }; var mId = _mapManager.AddMap(map); ObjectId mapID = new ObjectId(mId); string currentFolderIdString = _currentFolderID; ObjectId folderID = new ObjectId(currentFolderIdString); MapFolder folder = _folderManeger.GetMapFolderById(folderID); string path = folder.Model["path"].ToString(); if (path.Equals("")) { path = folder.Name; } else { path = path + "/" + folder.Name; } bMapModel.Add("path", path); map.Model = bMapModel; _mapManager.UpdateMap(map); folder.idOfMapsInFolder.Add(mapID); _folderManeger.UpdateMapFolder(folder); return(Json(new { mapId = mId, mapName = map.Name }, JsonRequestBehavior.AllowGet)); } return(Json(new { success = false })); }
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); }