示例#1
0
        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);
        }
示例#3
0
        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 }));
        }
示例#4
0
        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);
        }