Exemplo n.º 1
0
 private WorkflowSchemeDetails GetWorkflowSchemeModel(WorkflowScheme d)
 {
     return(new WorkflowSchemeDetails()
     {
         WorkflowCode = d.Code
     });
 }
        public async Task <GetWorkflowSchemesOutput> GetSchemes()
        {
            List <WorkflowSchemeDto> schemes = new List <WorkflowSchemeDto>();

            var provider = (MSSQLProvider)_runtime.PersistenceProvider;

            using (SqlConnection connection = new SqlConnection(provider.ConnectionString))
            {
                var tmp   = new WorkflowScheme();
                var items = await WorkflowScheme.SelectAsync(connection,
                                                             string.Format("SELECT * FROM {0}", WorkflowScheme.ObjectName));

                foreach (var item in items.OrderBy(c => c.Code))
                {
                    schemes.Add(new WorkflowSchemeDto()
                    {
                        Code = item.Code
                    });
                }
            }

            return(new GetWorkflowSchemesOutput
            {
                Schemes = schemes
            });
        }
        public async Task Delete(string code)
        {
            var provider = (MSSQLProvider)_runtime.PersistenceProvider;

            using (SqlConnection connection = new SqlConnection(provider.ConnectionString))
            {
                var tmp = new WorkflowScheme();
                await WorkflowScheme.DeleteAsync(connection, code);
            }
        }
Exemplo n.º 4
0
        public async Task Create(string code)
        {
            var scheme = await _workflowSchemesRepository.FirstOrDefaultAsync(s => s.Code == code);

            if (scheme != null)
            {
                throw new InvalidInputException(@"A scheme with this name already exists.");
            }

            scheme = new WorkflowScheme
            {
                Code = code,

                Scheme = string.Empty
            };

            await _workflowSchemesRepository.InsertAsync(scheme);
        }
Exemplo n.º 5
0
        public ActionResult Edit(SettingsModel model)
        {
            using (var context = new DataModelDataContext())
            {
                var wfSheme = context.WorkflowSchemes.FirstOrDefault(c => c.Code == "SimpleWF");
                if (wfSheme == null)
                {
                    wfSheme = new WorkflowScheme()
                    {
                        Code   = "SimpleWF",
                        Scheme = string.Empty
                    };
                    context.WorkflowSchemes.InsertOnSubmit(wfSheme);
                }

                wfSheme.Scheme = model.WFSchema ?? string.Empty;
                model.WFSchema = wfSheme.Scheme;
                context.SubmitChanges();
            }

            return(View(GetModel()));
        }
        public async Task checkForObsoleteSchemas()
        {
            // Have to use DbSet directly because the WorkflowScheme table has no Id field
            var workflowSchemes = await dbSet.ToListAsync();

            var workflowSchemeInstances = await ProductWorkflowSchemeRepository.GetListAsync();

            foreach (ProductWorkflowScheme workflowSchemeInstance in workflowSchemeInstances)
            {
                if (!workflowSchemeInstance.IsObsolete)
                {
                    var obsolete = false;
                    try
                    {
                        WorkflowScheme workflowSchemeTemplate = workflowSchemes.Single(s => s.Code == workflowSchemeInstance.SchemeCode);
                        int            instanceEndOfProcess   = workflowSchemeInstance.Scheme.IndexOf(">", StringComparison.Ordinal);
                        int            templateEndOfProcess   = workflowSchemeTemplate.Scheme.IndexOf(">", StringComparison.Ordinal);
                        string         instanceSubstring      = workflowSchemeInstance.Scheme.Substring(instanceEndOfProcess);
                        string         templateSubstring      = workflowSchemeTemplate.Scheme.Substring(templateEndOfProcess);
                        if (!templateSubstring.Equals(instanceSubstring))
                        {
                            obsolete = true;
                        }
                    }
                    catch (Exception)
                    {
                        // Should catch exception if there was no matching template
                        Log.Information($"No template for workflow {workflowSchemeInstance.SchemeCode}");
                        obsolete = true;
                    }

                    if (obsolete)
                    {
                        await obsoleteWorkflowSchemeInstance(workflowSchemeInstance.Id);
                    }
                }
            }
        }
Exemplo n.º 7
0
 private void Parse(string workflowSchemeUri, XmlReaderSettings settings)
 {
     CodeContract.Requires(!string.IsNullOrEmpty(workflowSchemeUri));
     _workflowSchemaUri = workflowSchemeUri;
     _xmlReaderSettings = settings;
     var fileInfo = new FileInfo(_workflowSchemaUri);
     FileName = fileInfo.Name;
     if (!fileInfo.Exists)
         throw new WorkflowSchemeParserException(string.Format("Файл {0} не найден", FileName));
     Scheme = new WorkflowScheme();
     ReadDone = false;
     using (_reader = XmlReaderEx.Create(_workflowSchemaUri, settings))
     {
         ReadScheme();
         ReadDone = true;
         if (!MainParser)
             return;
         EvaluateNextActivities();
         ValidateNextActivities();
         EvaluateEventHandlerActivities();
         EvaluateReferencedActivities();
         BindParameters();
         EvaluateParameterEvaluators();
         EvaluateEventHolders();
         CheckParametersNames();
         ValidateScheme();
         AddExitActivity();
     }
 }