public FileBridgeModels.Result CopyFile(FileBridgeModels.SourceAndDestinationArgs args) => Execute(() => { var sourceFilePath = Environment.ExpandEnvironmentVariables(args.SourceFilePath); var destinationFilePath = Environment.ExpandEnvironmentVariables(args.DestinationFilePath); if (Directory.Exists(destinationFilePath)) { var fileName = Path.GetFileName(sourceFilePath); destinationFilePath = Path.Combine(destinationFilePath, fileName); } File.Copy(sourceFilePath, destinationFilePath); });
public static void Run(string[] args) { Debug.Assert(args.Length >= 2, "Only intended for bridge calls"); string type = args[0]; string method = args[1]; string filePath = args.Length > 2 ? args[2] : null; switch (type) { case "Process": { switch (method) { case "OpenExternalLink": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); Process.OpenExternalLink(input); break; } default: { throw ExceptionUtilities.UnexpectedValue(method); } } break; } case "File": { switch (method) { case "AppendContents": { FileBridgeModels.PathAndContentsArgs input = JsonConvert.DeserializeObject <FileBridgeModels.PathAndContentsArgs>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.AppendContents(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "CopyFile": { FileBridgeModels.SourceAndDestinationArgs input = JsonConvert.DeserializeObject <FileBridgeModels.SourceAndDestinationArgs>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.CopyFile(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "CreateDirectory": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.CreateDirectory(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "DeleteDirectory": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.DeleteDirectory(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "DeleteFile": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.DeleteFile(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "GetDirectories": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result <string[]> output = File.GetDirectories(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "GetFiles": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result <string[]> output = File.GetFiles(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "GetTemporaryFilePath": { FileBridgeModels.Result <string> output = File.GetTemporaryFilePath(); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "InsertLine": { FileBridgeModels.PathAndLineAndContentsArgs input = JsonConvert.DeserializeObject <FileBridgeModels.PathAndLineAndContentsArgs>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.InsertLine(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "ReadContents": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result <string> output = File.ReadContents(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "ReadLine": { FileBridgeModels.PathAndLineArgs input = JsonConvert.DeserializeObject <FileBridgeModels.PathAndLineArgs>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result <string> output = File.ReadLine(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "WriteContents": { FileBridgeModels.PathAndContentsArgs input = JsonConvert.DeserializeObject <FileBridgeModels.PathAndContentsArgs>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.WriteContents(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "WriteLine": { FileBridgeModels.PathAndLineAndContentsArgs input = JsonConvert.DeserializeObject <FileBridgeModels.PathAndLineAndContentsArgs>(System.IO.File.ReadAllText(filePath)); FileBridgeModels.Result output = File.WriteLine(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } default: { throw ExceptionUtilities.UnexpectedValue(method); } } break; } case "Network": { switch (method) { case "LoadImage": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); ImageListBridgeModels.ImageData output = Network.LoadImage(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "DownloadFile": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); string output = Network.DownloadFile(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } case "GetWebPageContents": { string input = JsonConvert.DeserializeObject <string>(System.IO.File.ReadAllText(filePath)); string output = Network.GetWebPageContents(input); System.IO.File.WriteAllText(filePath, JsonConvert.SerializeObject(output)); break; } default: { throw ExceptionUtilities.UnexpectedValue(method); } } break; } default: { throw ExceptionUtilities.UnexpectedValue(type); } } }
public static Task <FileBridgeModels.Result> CopyFile(FileBridgeModels.SourceAndDestinationArgs args) { return(JSRuntime.Current.InvokeAsync <FileBridgeModels.Result>("Bridge.File.CopyFile", args)); }