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); } }
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); }
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); } } } }
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(); } }