You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using CircleSDK.Model; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using CDPShared; using static System.Net.Mime.MediaTypeNames; using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace CircleViewer { public partial class SecureFileDlg : Form { private CDPWorker _cdp;
public SecureFileDlg(CDPWorker cdp) { _cdp = cdp; InitializeComponent(); }
async private void SecureFileDlg_Load(object sender, EventArgs e) { cbCircles.DataSource = _cdp.Circles; cbCircles.DisplayMember = "CircleName"; SetStatus("Idle"); }
async private void cbCircles_SelectedValueChanged(object sender, EventArgs e) { CircleInfo ci = (CircleInfo) cbCircles.SelectedItem; if (ci != null) { cbTopics.Enabled = false; lblDescription.Text = ci.CircleDescription; List<TopicInfo> topics = await _cdp.EnumTopics(ci.CircleId); cbTopics.DataSource = topics; cbTopics.DisplayMember = "TopicName"; cbTopics.Enabled = true; } else lblDescription.Text = "";
}
private void cbTopics_SelectedValueChanged(object sender, EventArgs e) { TopicInfo ti = (TopicInfo)cbTopics.SelectedItem; if (ti != null) lblTopicDescription.Text = ti.TopicDescription; else lblTopicDescription.Text = ""; }
private void pnDropArea_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; }
void SetStatus(string txt) { if (lblStatus.InvokeRequired) lblStatus.Invoke((MethodInvoker)delegate { lblStatus.Text = txt; }); else lblStatus.Text = txt; }
private async void pnDropArea_DragDrop(object sender, DragEventArgs e) { CircleInfo ci = (CircleInfo)cbCircles.SelectedItem; TopicInfo ti = (TopicInfo)cbTopics.SelectedItem;
string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false); for (int i = 0; i < s.Length; i++) { if (File.Exists(s[i])) await ProcessFile(s[i]);
if (Directory.Exists(s[i])) await ProcessFolder(s[i]); } }
private async Task ProcessFile(string fileName) { string ext = Path.GetExtension(fileName);
if (!Constants.SupportedFiles.Contains(ext.ToLower())) { SetStatus("File type not supported"); return; }
CircleInfo ci = (CircleInfo)cbCircles.SelectedItem; TopicInfo ti = (TopicInfo)cbTopics.SelectedItem;
SetStatus("Securing " + Path.GetFileName(fileName));
byte[] encryptedBuf = await _cdp.EncryptFile(ci.CircleId, ti.TopicId, fileName); string outPath = fileName + ".cir"; SetStatus("Saving " + Path.GetFileName(fileName)); File.WriteAllBytes(outPath, encryptedBuf); lblStatus.Invoke((MethodInvoker)delegate { lblStatus.Text = "Idle " + Path.GetFileName(fileName); }); SetStatus("Idle"); }
private async Task ProcessFolder(string folder) { string[] lFiles = Directory.GetFiles(folder); foreach (string fileName in lFiles) { await ProcessFile(fileName); } }
private async void bnBrowse_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Supported Files(*.jpg; *.jpeg; *.gif; *.bmp; *.png; *.pdf; *.mp4)|*.jpg; *.jpeg; *.gif; *.bmp; *.png; *.pdf; *.mp4"; if (ofd.ShowDialog() == DialogResult.OK) { await ProcessFile(ofd.FileName); }
} } }
|