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.IO; using System.Linq; using System.Reflection; using System.Threading; using System.Threading.Tasks; using CDPShared; using WMPLib; using System.Diagnostics.Metrics;
namespace CircleViewer { public class ProtectCmd { private CDPWorker _cdp; string customerCode = "CIRCLE"; string appKey = "Dashboard"; string endUserId = "userman"; string secret = "2FDA4588-774B-4FA6-8B3D-6F08F5FA6E90";
public ProtectCmd(CDPWorker cdp) { _cdp = cdp; } public ProtectCmd() { _cdp = new CDPWorker(); while (!_cdp.Ready) { Thread.Sleep(250); } }
public async Task<string> ProtectFile(string fileName) { using (LogMethod.Log(MethodBase.GetCurrentMethod().ReflectedType.Name + MethodBase.GetCurrentMethod().Name)) { string ext = Path.GetExtension(fileName);
if (!Constants.SupportedFiles.Contains(ext.ToLower())) { MinLogging.LogIt("File type not supported. " + fileName); return ""; }
string circleId = Properties.Settings.Default.DefaultCircleId; if (string.IsNullOrEmpty(circleId)) { MinLogging.LogIt("Default Circle is empty"); return ""; }
string topicId = Properties.Settings.Default.DefaultTopicId; if (string.IsNullOrEmpty(topicId)) { MinLogging.LogIt("Default Topic is empty"); return ""; }
while (!_cdp.Ready) { MinLogging.LogIt("Waiting..."); Thread.Sleep(250); }
MinLogging.LogIt("Securing " + Path.GetFileName(fileName));
byte[] encryptedBuf = await _cdp.EncryptFile(circleId, topicId, fileName);
string outPath = fileName + ".cir"; File.WriteAllBytes(outPath, encryptedBuf); return outPath; } }
public async Task<Boolean> Process(string fileName) { using (LogMethod.Log(MethodBase.GetCurrentMethod().ReflectedType.Name + MethodBase.GetCurrentMethod().Name)) { try { string userName = Environment.UserDomainName + "\\" + Environment.UserName; string yfPath = await ProtectFile(fileName); var meta = new Dictionary<string, string>(); meta.Add($"Source ", fileName); meta.Add($"Target", yfPath);
YellowFile yf = new YellowFile(yfPath); await _cdp.TrackAuthorizedAccess(yf, fileName, meta); return true; } catch (Exception e) { MinLogging.LogIt(e.Message); return false; } } } } }
|