private void PublishWebResource(WebResourceInfo webResourceInfo) { Task.Run(() => { webResourceInfo.Control.IsBusy = true; var oldDirtyState = webResourceInfo.Control.IsDirty; webResourceInfo.Control.IsDirty = false; try { var bytes = File.ReadAllBytes(webResourceInfo.Control.FileName); var file = Convert.ToBase64String(bytes); Service.Update(new Entity("webresource", webResourceInfo.WebResourceId) { ["content"] = file }); PublishWebResource(Service, webResourceInfo.WebResourceId); webResourceInfo.Control.IsDirty = false; } catch { webResourceInfo.Control.IsDirty = oldDirtyState; } finally { webResourceInfo.Control.IsBusy = false; } }); }
private void AddButton_Click(object sender, EventArgs e) { var fullFileName = FileNameBox.Text; var webResourceInfo = new WebResourceInfo { WebResourceId = (Guid)WebResourseNameBox.Tag, Control = new WebResourceViewControl { Dock = DockStyle.Top, Height = 46, FileName = fullFileName, WebResourceName = WebResourseNameBox.Text, IsAuto = IsAutoCheckbox.Checked } }; WebResourcesList.Controls.Add(webResourceInfo.Control, 1, WebResourcesList.RowCount); WebResourcesList.RowStyles.Add(new RowStyle(SizeType.Absolute, webResourceInfo.Control.Height + 10)); WebResourcesList.RowCount++; webResourceInfo.Control.IsBusy = false; webResourceInfo.Control.IsDirty = false; webResourceInfo.Control.Publish += (ss, ee) => PublishWebResource(_webResources[ee]); webResourceInfo.Control.Close += (ss, ee) => CloseWebResource(ee); FileNameBox.Text = WebResourseNameBox.Text = string.Empty; IsAutoCheckbox.Checked = false; var directoryName = Path.GetDirectoryName(fullFileName); _watchers.Add(directoryName); if (!_webResources.ContainsKey(fullFileName)) { _webResources.Add(fullFileName, webResourceInfo); } }