示例#1
0
        private void ButtonAddStep_Click(object sender, RoutedEventArgs e)
        {
            var type    = (CrmPluginType)ListPluginTypes.SelectedItem;
            var newStep = new CrmTypeStep {
                Type = type
            };

            new Thread(() =>
            {
                TypeStep dialogue = null;

                Dispatcher.Invoke(() =>
                {
                    dialogue = new TypeStep(newStep, context);
                    dialogue.ShowDialog();
                });

                try
                {
                    if (!dialogue.IsUpdate)
                    {
                        return;
                    }

                    var filter = CrmDataHelper.MessageList
                                 .FirstOrDefault(messageQ => messageQ.EntityName == newStep.Entity &&
                                                 messageQ.MessageName == newStep.Message);

                    newStep.FilterId = filter?.FilteredId ?? Guid.Empty;

                    var message = CrmDataHelper.MessageList
                                  .First(messageQ => messageQ.MessageName == newStep.Message);

                    newStep.MessageId = message.MessageId;

                    assemblyRegistration.CreateTypeStep(newStep);

                    Dispatcher.Invoke(() => type.Children.Add(newStep));
                }
                catch (Exception exception)
                {
                    PopException(exception);
                }
                finally
                {
                    HideBusy();
                }
            }).Start();
        }