public void Add(PluginStep step) { if (step != null) { _pluginSteps.Add(step); } }
private void LoadEvents() { tvEvents.Nodes.Clear(); WorkAsync(new WorkAsyncInfo { Message = "Loading Sdk message filters...", Work = (bw, e) => { _events = new List <ISynchronousEvent>(); List <Entity> filters = Service.RetrieveMultiple(new QueryExpression("sdkmessagefilter") { ColumnSet = new ColumnSet("sdkmessageid", "primaryobjecttypecode") }).Entities.ToList(); bw.ReportProgress(0, "Loading SDK messages..."); List <Entity> messages = Service.RetrieveMultiple(new QueryExpression("sdkmessage") { ColumnSet = new ColumnSet("name") }).Entities.ToList(); bw.ReportProgress(25, "Loading Plugin steps..."); _events.AddRange(PluginStep.RetrievePluginSteps(Service, filters, messages)); bw.ReportProgress(50, "Loading Synchronous workflows..."); _events.AddRange(SynchronousWorkflow.RetrieveWorkflowSteps(Service)); }, PostWorkCallBack = e => { if (e.Error != null) { MessageBox.Show(ParentForm, "An error occured: " + e.Error, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { TreeViewHelper tvh = new TreeViewHelper(tvEvents); foreach (ISynchronousEvent sEvent in _events) { tvh.AddSynchronousEvent(sEvent); } } }, ProgressChanged = e => { // it will display "I have found the user id" in this example SetWorkingMessage(e.UserState.ToString()); } }); }
private void LoadEvents() { tvEvents.Nodes.Clear(); WorkAsync(new WorkAsyncInfo { Message = "Loading Sdk message filters...", Work = (bw, e) => { events = new List <ISynchronousEvent>(); var filters = Service.RetrieveMultiple(new QueryExpression("sdkmessagefilter") { ColumnSet = new ColumnSet("sdkmessageid", "primaryobjecttypecode") }).Entities.ToList(); bw.ReportProgress(0, "Loading SDK messages..."); var messages = Service.RetrieveMultiple(new QueryExpression("sdkmessage") { ColumnSet = new ColumnSet("name") }).Entities.ToList(); bw.ReportProgress(0, "Loading Plugin steps..."); events.AddRange(PluginStep.RetrievePluginSteps(Service, filters, messages)); bw.ReportProgress(0, "Loading Synchronous workflows..."); events.AddRange(SynchronousWorkflow.RetrieveTriggeredWorkflows(Service)); bw.ReportProgress(0, "Loading Business Rules..."); events.AddRange(BusinessRules.RetrieveBusinessRules(Service)); }, PostWorkCallBack = e => { if (e.Error != null) { MessageBox.Show(ParentForm, "An error occured: " + e.Error.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { var tvh = new TreeViewHelper(tvEvents); foreach (var sEvent in events) { tvh.AddSynchronousEvent(sEvent); } } }, ProgressChanged = e => { SetWorkingMessage(e.UserState.ToString()); } }); }
public static bool Compare(PluginStep step1, XrmStepContainer step2, string filteringAttributes, string unsecureconfig, string secureconfig) { if (step2 == null) { return(false); } var name1 = step2.Entity; var name2 = step1.EntityName; if (string.IsNullOrWhiteSpace(name1)) { name1 = string.Empty; } if (string.IsNullOrWhiteSpace(name2)) { name2 = string.Empty; } if (name1 == "none") { name1 = string.Empty; } if (name2 == "none") { name2 = string.Empty; } if (name1 != name2) { return(false); } if (step2.Message != step1.MessageName) { return(false); } if (step2.Rank != step1.Rank) { return(false); } if (step2.Mode != (int)step1.StepMode) { return(false); } if (step2.Stage != (int)step1.Stage) { return(false); } var unsecureconfig2 = string.IsNullOrWhiteSpace(step2.UnsecureConfig) ? null : step2.UnsecureConfig; var unsecureconfig1 = string.IsNullOrWhiteSpace(unsecureconfig) ? null : unsecureconfig; if (unsecureconfig2 != unsecureconfig1) { return(false); } var secureconfig2 = string.IsNullOrWhiteSpace(step2.SecureConfig) ? null : step2.SecureConfig; var secureconfig1 = string.IsNullOrWhiteSpace(secureconfig) ? null : secureconfig; if (secureconfig2 != secureconfig1) { return(false); } if (filteringAttributes != null && step2.FilteringAttributes == null) { return(false); } if (filteringAttributes == null && step2.FilteringAttributes != null) { return(false); } if (filteringAttributes != null && step2.FilteringAttributes != null) { var fa1 = filteringAttributes.Split(',').OrderBy(x => x).ToArray(); var fa2 = step2.FilteringAttributes.Split(',').OrderBy(x => x).ToArray(); if (fa1.Length != fa2.Length) { return(false); } for (int i = 0; i < fa1.Length; i++) { if (fa1[i] != fa2[i]) { return(false); } } } return(true); }
public PluginStepBuilder(PluginStepManager manager) { _pluginStep = new PluginStep(); _stepManager = manager; }