public static DialogResult RenameItem(TreeView treeView, Dictionary <string, Gist> gists, bool showRoot) { DialogResult result = DialogResult.None; if (treeView.SelectedNode != null && treeView.SelectedNode.Name != AllGistsKey) { try { var strs = treeView.SelectedNode.Name.Split('/'); var gist = gists[strs[0]]; var file = gist.Files[strs[1]]; var fileNameDialog = new dlgFilename(file.Filename); if ((result = fileNameDialog.ShowDialog()) == DialogResult.OK && fileNameDialog.Filename != file.Filename) { if (Utils.IsFilenameSafe(fileNameDialog.Filename)) { bool save = true; if (gist.Files.FirstOrDefault(gistFile => gistFile.Key == fileNameDialog.Filename).Key != null && (result = MessageBox.Show( $"Do you want to replace existing file \"{fileNameDialog.Filename}\"" , string.Empty, MessageBoxButtons.YesNo)) != DialogResult.Yes) { save = false; result = DialogResult.No; } if (save) { var fileContent = Utils.SendRequest(file.RawUrl); var renamingGist = new UpdatedGist { Files = new Dictionary <string, UpdatedFile> { { file.Filename, new UpdatedFile { Filename = fileNameDialog.Filename, Content = fileContent } } } }; var bytes = Encoding.UTF8.GetBytes(JsonSerializer.SerializeToString(renamingGist)); try { var responseGist = Utils.SendJsonRequest <Gist>( $"{Main.ApiUrl}/gists/{gist.Id}?access_token={Main.Token}", WebRequestMethod.Patch, null, bytes); gists[gist.Id] = responseGist; RebuildTreeView(treeView, gists, showRoot); } catch (Exception ex) { MessageBox.Show( $"Unable to rename gist \"{file.Filename}\".{Environment.NewLine}Error message: {ex.Message}"); } } } else { MessageBox.Show("File containts invalid characters"); } } } catch (Exception ex) { MessageBox.Show("Unable to rename gist or file." + Environment.NewLine + "Error message: " + ex.Message); } } return(result); }
public static DialogResult RenameItem(TreeView treeView, Dictionary<string, Gist> gists, bool showRoot) { DialogResult result = DialogResult.None; if (treeView.SelectedNode != null && treeView.SelectedNode.Name != AllGistsKey) { var strs = treeView.SelectedNode.Name.Split('/'); var gist = gists[strs[0]]; var file = gist.Files[strs[1]]; var fileNameDialog = new dlgFilename(file.Filename); if ((result = fileNameDialog.ShowDialog()) == DialogResult.OK && fileNameDialog.Filename != file.Filename) { if (Utils.IsFilenameSafe(fileNameDialog.Filename)) { string oldFileName = file.Filename; bool save = true; if (gist.Files.FirstOrDefault(gistFile => gistFile.Key == fileNameDialog.Filename).Key != null && (result = MessageBox.Show(string.Format("Do you want to replace existing file \"{0}\"", fileNameDialog.Filename) , string.Empty, MessageBoxButtons.YesNo)) != DialogResult.Yes) { save = false; result = DialogResult.No; } if (save) { var fileContent = Utils.SendRequest(file.RawUrl); var renamingGist = new UpdatedGist(); renamingGist.Files = new Dictionary<string, UpdatedFile>() { { file.Filename, new UpdatedFile { Filename = fileNameDialog.Filename, Content = fileContent }} }; var bytes = Encoding.UTF8.GetBytes(JsonSerializer.SerializeToString<UpdatedGist>(renamingGist)); try { var responseGist = Utils.SendJsonRequest<Gist>(string.Format("{0}/gists/{1}?access_token={2}", Main.ApiUrl, gist.Id, Main.Token), WebRequestMethod.Patch, null, bytes); gists[gist.Id] = responseGist; RebuildTreeView(treeView, gists, showRoot); } catch (Exception ex) { MessageBox.Show(string.Format("Unable to reaname gist \"{0}\".{1}Error message: {2}", file.Filename, Environment.NewLine, ex.Message)); } } } else { MessageBox.Show("File containts invalid characters"); } } } return result; }