Esempio n. 1
0
        /// <summary>
        /// A new folder will be added.
        /// </summary>
        /// <param name="newFolder"></param>
        /// /// <remarks>
        /// See the <a href="https://docs.syncthing.net/rest/config.html#rest-config-folders-id-rest-config-devices-id">Config Endpoints</a> for more information.
        /// </remarks>
        /// <exception cref="ApiException">Thrown when a general API error occurs.</exception>
        public async Task CreateOrEdit(NewFolder newFolder)
        {
            Ensure.ArgumentNotNull(newFolder, nameof(newFolder));
            Ensure.ArgumentNotNullOrEmptyString(newFolder.Id, nameof(newFolder.Id));
            Ensure.ArgumentNotNullOrEmptyString(newFolder.Path, nameof(newFolder.Path));

            await ApiConnection.Post(ApiUrls.Folders(), newFolder);
        }
Esempio n. 2
0
 private async void FolderTracker_Created(object sender, FileSystemChangeSet e)
 {
     foreach (StorageFolder NewFolder in e.StorageItems)
     {
         e.ParentNode.Children.Add(new TreeViewNode
         {
             Content = NewFolder,
             HasUnrealizedChildren = (await NewFolder.GetFoldersAsync()).Count != 0
         });
     }
 }
Esempio n. 3
0
 private static bool CheckForObjects(NewFolder folder, GameObject[] gameObjects)
 {
     if (folder != null)
     {
         if (!CheckForObjectInScene(gameObjects, folder.parentFolder))
         {
             return(true);
         }
         return(false);
     }
     return(false);
 }
Esempio n. 4
0
        private async void FolderTracker_Renamed(object sender, FileSystemRenameSet e)
        {
            foreach (var SubNode in from StorageFolder OldFolder in e.ToDeleteFileList
                     from SubNode in
                     from SubNode in e.ParentNode.Children
                     where (SubNode.Content as StorageFolder).FolderRelativeId == OldFolder.FolderRelativeId
                     select SubNode
                     select SubNode)
            {
                e.ParentNode.Children.Remove(SubNode);
            }

            foreach (StorageFolder NewFolder in e.ToAddFileList)
            {
                e.ParentNode.Children.Add(new TreeViewNode
                {
                    Content = NewFolder,
                    HasUnrealizedChildren = (await NewFolder.GetFoldersAsync()).Count != 0
                });
            }
        }
        public IActionResult User_AddFolder(int id, [FromBody] NewFolder folderToAdd)
        {
            // verify that the user is either admin or is requesting their own data
            if (!HelperMethods.ValidateIsUserOrAdmin(_httpContextAccessor, _context, id, _keyAndIV))
            {
                ErrorMessage error = new ErrorMessage("Invalid User", "Caller can only access their information.");
                return(new UnauthorizedObjectResult(error));
            }

            // folder limit is 10 for now
            if (_context.Users.Single(a => a.ID == id).Folders.Count >= 10)
            {
                ErrorMessage error = new ErrorMessage("Failed to create new account", "User cannot have more than 50 passwords saved at once.");
                return(new BadRequestObjectResult(error));
            }

            folderToAdd.Parent_ID = folderToAdd.Parent_ID == 0 ? null : folderToAdd.Parent_ID; // parent id goes from 0 to null for simplicity

            // if user doesnt own the parent we throw error
            if (folderToAdd.Parent_ID != null && !_context.Users.Single(a => a.ID == id).Folders.Exists(b => b.ID == folderToAdd.Parent_ID))
            {
                ErrorMessage error = new ErrorMessage("Invalid parent ID", "User does not have a folder with that ID");
                return(new BadRequestObjectResult(error));
            }

            // use token in header to to
            Folder new_folder = new Folder(folderToAdd, id);

            _context.Folders.Add(new_folder); // add new folder

            // only update parent if needed
            if (new_folder.ParentID != null)
            {
                _context.Users.Single(a => a.ID == id).Folders.Single(b => b.ID == new_folder.ParentID).HasChild = true;// set parent to having child
            }
            _context.SaveChanges();
            return(Ok());
        }
        [HttpPost("{id:int}/folders")] // working
        public IActionResult User_AddFolder(int id, [FromBody] NewFolder folderToAdd)
        {
            try
            {
                // verify that the user is either admin or is requesting their own data
                if (!HelperMethods.ValidateIsUserOrAdmin(_httpContextAccessor, _context, id))
                {
                    ErrorMessage error = new ErrorMessage("Invalid User", "Caller can only access their information.");
                    return(new UnauthorizedObjectResult(error));
                }

                folderToAdd.Parent_ID = folderToAdd.Parent_ID == 0 ? null : folderToAdd.Parent_ID; // parent id goes from 0 to null for simplicity

                // if user doesnt own the parent we throw error
                if (folderToAdd.Parent_ID != null && !_context.Users.Single(a => a.ID == id).Folders.Exists(b => b.ID == folderToAdd.Parent_ID))
                {
                    ErrorMessage error = new ErrorMessage("Invalid parent ID", "User does not have a folder with that ID");
                    return(new BadRequestObjectResult(error));
                }

                // use token in header to to
                Folder new_folder = new Folder(folderToAdd, id);
                _context.Folders.Add(new_folder); // add new folder

                // only update parent if needed
                if (new_folder.ParentID != null)
                {
                    _context.Users.Single(a => a.ID == id).Folders.Single(b => b.ID == new_folder.ParentID).HasChild = true;// set parent to having child
                }
                _context.SaveChanges();
                return(Ok());
            }
            catch (Exception ex)
            {
                ErrorMessage error = new ErrorMessage("Error creating new folder.", ex.Message);
                return(new InternalServerErrorResult(error));
            }
        }
        public IHttpActionResult CreateFolder(NewFolder newFolder)
        {
            int    id    = 0;
            string strID = newFolder.NodeId.Remove(0, 1);

            if ((newFolder.NodeId[0] == 'F' || newFolder.NodeId[0] == 'P') && int.TryParse(strID, out id))
            {
                Folder folder;
                using (ApplicationDbContext context = new ApplicationDbContext())
                {
                    folder = new Folder()
                    {
                        Name     = newFolder.Name.Trim(),
                        ParentID = id,
                    };

                    context.Folders.Add(folder);
                    context.SaveChanges();
                }
                NotifyTreeNodeUpdate(folder, true);
                return(Ok());
            }
            return(NotFound());
        }
Esempio n. 8
0
 private void BtNewFolder_Click(object sender, EventArgs e)
 {
     NewFolder?.Invoke();
 }