public static void PostCreatedFiles(LocalFile file, string uploadUrl) { // Create post content var content = new MultipartFormDataContent(); // Check we have content to send if (!LoadFileToDataContent(content, file)) { Console.WriteLine("Failed to load file or no content as loaded. Cancel upload"); return; } SendPostData(content, uploadUrl); }
private static async void OnChanged(object source, FileSystemEventArgs e) { switch (e.ChangeType) { case WatcherChangeTypes.Created: var localFile = new LocalFile(e); if (!_queue.TryAdd(e.Name, localFile)) { Console.WriteLine("Failed to add"); } // TODO: custom getter to always retrieve value from config if (BaseConfig.RefreshRate == 0) { await Task.Factory.StartNew(() => RequestsHandler.PostCreatedFiles(localFile, BaseConfig.UploadUrl) ); } break; case WatcherChangeTypes.Deleted: LocalFile deleted; if (_queue.TryRemove(e.Name, out deleted)) { await Task.Factory.StartNew(() => RequestsHandler.DeleteFile(e.Name, BaseConfig.DeleteUrl) ); } else { Console.WriteLine("Failed to remove"); } break; } }
private static bool LoadFileToDataContent(MultipartFormDataContent content, LocalFile file) { if (File.Exists(file.Path)) { content.Add(new StreamContent(new FileStream(file.Path, FileMode.Open)), "file", file.Name); return true; } else { Console.WriteLine("Failed to load file: {0}", file.Name); } return false; }