示例#1
0
        private async void Load()
        {
            IWorkflowDesignerProxy proxy = new DesignerProxy();

            Definitions = await proxy.Get();

            if (Definitions == null)
            {
                ShowMessage("Error");
                return;
            }
            if (Definitions.Count == 0)
            {
                ShowMessage("No actieve definctions found");
            }
        }
        private async void LoadDesigner()
        {
            using (IWorkflowDesignerProxy proxy = new DesignerProxy())
            {
                var definition = await proxy.GetById(Id.Value);

                if (definition == null)
                {
                    base.ShowMessage("Could not pick the values");
                }
                var xaml = definition.Xaml;
                Designer.Text      = xaml;
                this.Name          = definition.Name;
                this.Description   = definition.Description;
                this.Designer.Text = xaml;
                this.Designer.Load();
            }
        }
        internal async void Save()
        {
            try
            {
                if (string.IsNullOrEmpty(this.Name))
                {
                    ShowMessage("Name can't be empty");
                    return;
                }
                var validationService = this.Designer.Context.Services.GetService <IValidationErrorService>();
                var errorService      = validationService as DesignerValidationService;
                if (errorService.ErrorCount > 0)
                {
                    string errorMessage = string.Join(Environment.NewLine, errorService.Errors);
                    base.ShowMessage(string.Format("Please fix the errors before saving {0} {1}", errorMessage, Environment.NewLine));
                    return;
                }
                string tempFileName = string.Empty;
                tempFileName = Path.Combine(Environment.CurrentDirectory, Path.GetRandomFileName());
                this.Designer.Flush();
                const int defaultsize = 1326;

                FileHelper.WriteTextToFile(tempFileName, Designer.Text);
                var fileContents = FileHelper.ReadFromFile(tempFileName);
                if (fileContents.Length <= defaultsize)
                {
                    ShowMessage("There should me minimum values for workflow");
                    return;
                }

                try
                {
                    ActivityXamlServicesSettings settings = new ActivityXamlServicesSettings()
                    {
                        CompileExpressions = true,
                    };

                    XamlReader reader            = new XamlReader();
                    var        CompiliedActivity = ActivityXamlServices.Load(tempFileName, settings);
                }
                catch (Exception cex)
                {
                    base.ShowMessage(cex.Message);
                }

                var dto = new DefinitionDto()
                {
                    Name        = this.Name,
                    Description = this.Description,
                    Id          = this.Id,
                    Xaml        = fileContents
                };
                FileHelper.Delete(tempFileName);
                using (IWorkflowDesignerProxy proxy = new DesignerProxy())
                {
                    var res = await proxy.Save(dto);

                    this.Id = res;
                    if (Id > 0)
                    {
                        ShowMessage("Saved Successfully");
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                base.ShowMessage(ex.Message);
            }
        }