/// <summary>
 /// Creates a new Workflow Designer instance and loads the Default Workflow with C# Expression Editor
 /// </summary>
 private void CmdWorkflowNewCSharp(object sender, ExecutedRoutedEventArgs e)
 {
     _currentWorkflowFile = String.Empty;
     CustomWfDesigner.NewInstanceCSharp();
     WfDesignerBorder.Child = CustomWfDesigner.Instance.View;
     WfPropertyBorder.Child = CustomWfDesigner.Instance.PropertyInspectorView;
 }
示例#2
0
        public void openFile(string filename)
        {
            using (var file = new StreamReader(filename, true))
            {
                CustomWfDesigner.NewInstanceCSharp(filename);
                WfDesignerBorder.Child = CustomWfDesigner.Instance.View;
                WfPropertyBorder.Child = CustomWfDesigner.Instance.PropertyInspectorView;

                _currentWorkflowFile = filename;
            }
        }
示例#3
0
 private void SetDesigner(string filePath = null)
 {
     _wfDesigner      = CustomWfDesigner.NewInstance(filePath);
     modelTreeManager = _wfDesigner.Context.Services.GetService <ModelTreeManager>();
     if (modelTreeManager != null)
     {
         modelTreeManager.EditingScopeCompleted -= ModelTreeManager_EditingScopeCompleted;
     }
     modelTreeManager.EditingScopeCompleted += ModelTreeManager_EditingScopeCompleted;
     WfDesignerBorder.Child = _wfDesigner.View;
     WfPropertyBorder.Child = _wfDesigner.PropertyInspectorView;
 }
        /// <summary>
        /// Loads a Workflow into a new Workflow Designer instance
        /// </summary>
        private void CmdWorkflowOpen(object sender, ExecutedRoutedEventArgs e)
        {
            var dialogOpen = new OpenFileDialog();

            dialogOpen.Title  = "Open Workflow";
            dialogOpen.Filter = "Workflows (.xaml)|*.xaml";

            if (dialogOpen.ShowDialog() == true)
            {
                using (var file = new StreamReader(dialogOpen.FileName, true))
                {
                    CustomWfDesigner.NewInstance(dialogOpen.FileName);
                    WfDesignerBorder.Child = CustomWfDesigner.Instance.View;
                    WfPropertyBorder.Child = CustomWfDesigner.Instance.PropertyInspectorView;

                    _currentWorkflowFile = dialogOpen.FileName;
                }
            }
        }
示例#5
0
        /// <summary>
        /// Loads a Workflow into a new Workflow Designer instance
        /// </summary>
        /// <param name="sender">The sender.</param>
        /// <param name="e">The <see cref="ExecutedRoutedEventArgs"/> instance containing the event data.</param>
        private void CmdWorkflowOpen(object sender, ExecutedRoutedEventArgs e)
        {
            OpenFileDialog dialogOpen = new OpenFileDialog();

            dialogOpen.Title  = "Open Workflow";
            dialogOpen.Filter = "Workflows (.xaml, .xamlx)|*.xaml;*.xamlx";

            if (dialogOpen.ShowDialog() == true)
            {
                using (StreamReader file = new StreamReader(dialogOpen.FileName, true))
                {
                    string        content          = file.ReadToEnd();
                    Regex         regex            = new Regex(";assembly=[^\"]*");
                    List <string> assemblies       = regex.Matches(content).Cast <Match>().Select(x => x.Value.Replace(";assembly=", string.Empty)).Distinct().ToList();
                    Assembly[]    loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();

                    foreach (string name in assemblies)
                    {
                        Assembly assembly = loadedAssemblies.FirstOrDefault(x => x.FullName.Split(',')[0] == name);
                        if (assembly == null)
                        {
                            OpenFileDialog dllOpen = new OpenFileDialog();
                            dllOpen.Title  = $"Choose {name}.dll to use";
                            dllOpen.Filter = "Dynamic-Link Libraries (.dll)|*.dll";
                            if (dllOpen.ShowDialog() == true)
                            {
                                AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(dllOpen.FileName));
                            }
                        }
                    }
                    CustomWfDesigner.NewInstance(dialogOpen.FileName);
                    WfDesignerBorder.Child = CustomWfDesigner.Instance.View;
                    WfPropertyBorder.Child = CustomWfDesigner.Instance.PropertyInspectorView;

                    _currentWorkflowFile = dialogOpen.FileName;
                }
            }
        }