public override void NativeFormLoaded(object sender, FormOpenedArgs e) { openedForm = e.OpenForm; if (openedForm == null || (openedForm.IsDisposed || !openedForm.Text.Contains("Trigger"))) { return; } RuleCDOHelper.DownloadCDO(); RuleLockCDO cdo = RuleCDOHelper.CDO; int id = ((EllieMae.EMLite.Setup.TriggerEditor)openedForm.ActiveControl.TopLevelControl).Trigger.RuleID; RuleLockInfo locked = cdo.Rules?.FirstOrDefault(x => x.RuleID.Equals(id)) ?? (RuleLockInfo)null; TextBox comments = openedForm.AllControls <TextBox>().FirstOrDefault(x => x.Name.Equals("commentsTxt")); if (comments == null) { return; } Button ok = openedForm.AllControls <Button>().FirstOrDefault(x => x.Name.Equals("okBtn")); if (ok == null) { return; } ok.Click += Ok_Click; FlowLayoutPanel p = new FlowLayoutPanel(); openedForm.Controls.Add(p); p.Left = comments.Left; p.Top = comments.Bottom + 20; p.Size = comments.Size; p.FlowDirection = FlowDirection.LeftToRight; Locked = new CheckBox(); p.Controls.Add(Locked); Locked.Text = "Lock Rule"; TextBox lockedBy = new TextBox(); p.Controls.Add(lockedBy); Button diff = new Button(); p.Controls.Add(diff); diff.Text = "Diff"; diff.Click += Diff_Click; if (locked != null) { lockedBy.Text = $"Locked By {locked.ID}"; Locked.Checked = locked.Locked; ok.Enabled = locked.Locked && locked.ID.Equals(EncompassHelper.User.ID) ? false : true; } }
public override void DataExchangeReceived(object sender, DataExchangeEventArgs e) { if (!ConcurrentUser) { return; } RuleLockInfo info = JsonConvert.DeserializeObject <RuleLockInfo>(e.Data.ToString(), new Newtonsoft.Json.JsonSerializerSettings { TypeNameHandling = Newtonsoft.Json.TypeNameHandling.Auto, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore }); RuleLockCDO cdo = RuleCDOHelper.CDO; if (cdo.Rules == null) { cdo.Rules = new List <RuleLockInfo>(); } cdo.Rules.Add(info); RuleCDOHelper.UpdateCDO(cdo); RuleCDOHelper.UploadCDO(); }