public WorkflowControllerPostSecretTests() { WorkflowDbContext DbcFac() => new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlServer($"Data Source=.;Database={nameof(WorkflowControllerPostSecretTests)};Integrated Security=True").Options); _DbContext = DbcFac(); _Factory = WithWebHostBuilder(builder => { builder.ConfigureTestServices(services => { services.AddScoped(sp => { var context = DbcFac(); context.BeginTransaction(); return(context); }); services.Replace(new ServiceDescriptor(typeof(IRandomNumberGenerator), _FakeNumbers)); }); }); _DbContext.Database.EnsureDeleted(); _DbContext.Database.EnsureCreated(); }
public void BeginStepExecute(StepConfig stepConfig, int priority, string workflowName, WorkflowContent content, IUnitOfData context) { StringBuilder sb = new StringBuilder(); content.SaveStringBuilder(sb); // throw new System.NotImplementedException(); WorkflowDbContext wfContent = context as WorkflowDbContext; //ATAW_WORKFLOWContext wfContent = context as ATAW_WORKFLOWContext; WF_WORKFLOW_INST inst = new WF_WORKFLOW_INST(); inst.WI_ID = wfContent.GetUniId(); inst.WI_CONTENT_XML = sb.ToString(); inst.WI_NAME = workflowName; wfContent.WF_WORKFLOW_INST.Add(inst); //步骤基本信息 StepUtil.SetWorkflowByStep(inst, stepConfig.Name, stepConfig.DisplayName, wfContent.Now, (int)stepConfig.StepType, (int)StepState.ProcessNotSend); inst.WI_INDEX = 1; inst.WI_PRIORITY = priority; //扩展信息 //父子流程 //主表控制 content.SetAllMainRow(wfContent, stepConfig, inst.WI_ID); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSeriLog(Configuration); services.AddScoped(x => { var config = new StandardEfDbConfig(Configuration, "WorkFlow"); var builder = new SqlServerDbContextOptionsBuilder(config); var result = new WorkflowDbContext(builder.Build()); return(result); }); services.AddSingleton <IUtcDateTimeProvider, StandardUtcDateTimeProvider>(); services.AddScoped <HttpPostKeysLastAuthorise, HttpPostKeysLastAuthorise>(); services.AddScoped <IKeysLastSignatureValidator, KeysLastSignatureValidator>(); services.AddScoped <IKeysLastAuthorisationWriter, KeysLastAuthorisationWriter>(); services.AddSwaggerGen(o => { o.SwaggerDoc("v1", new OpenApiInfo { Title = Title, Version = "v1" }); }); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSeriLog(Configuration); services.AddScoped(x => { var config = new StandardEfDbConfig(Configuration, "WorkFlow"); var builder = new SqlServerDbContextOptionsBuilder(config); var result = new WorkflowDbContext(builder.Build()); return(result); }); services.AddSingleton <IUtcDateTimeProvider, StandardUtcDateTimeProvider>(); services.AddSingleton <IGeanTekListValidationConfig, StandardGeanCommonWorkflowConfig>(); services.AddSingleton <ITemporaryExposureKeyValidator, TemporaryExposureKeyValidator>(); services.AddSingleton <ITemporaryExposureKeyValidatorConfig, TemporaryExposureKeyValidatorConfig>(); services.AddScoped <HttpPostKeysLastReleaseTeksCommand, HttpPostKeysLastReleaseTeksCommand>(); services.AddScoped <IKeysLastReleaseTeksValidator, KeysLastReleaseTeksValidator>(); services.AddScoped <IKeysLastSignatureValidator, FakeKeysLastSignatureValidator>(); services.AddScoped <HttpPostKeysLastRegisterSecret, HttpPostKeysLastRegisterSecret>(); services.AddScoped <IKeysLastSecretWriter, KeysLastSecretWriter>(); services.AddScoped <IKeysLastSecretConfig, StandardKeysLastSecretConfig>(); services.AddScoped <IKeysLastTekWriter, FakeKeysLastTekWriter>(); services.AddSwaggerGen(o => { o.SwaggerDoc("v1", new OpenApiInfo { Title = Title, Version = "v1" }); }); }
public HttpPostKeysLastReleaseTeksCommand(IKeysLastReleaseTeksValidator keyValidator, IKeysLastSignatureValidator signatureValidator, IKeysLastTekWriter writer, WorkflowDbContext dbContextProvider) { _KeyValidator = keyValidator; _SignatureValidator = signatureValidator; _Writer = writer; _DbContextProvider = dbContextProvider; }
public async Task InitializeAsync() { //_Connection = new SqliteConnection("Data Source=:memory:"); //_DbContext = new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlite(_Connection).Options); _Connection = new SqlConnection("Data Source=.;Database=WorkflowControllerPostSecretTests;Integrated Security=True"); _DbContext = new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlServer(_Connection).Options); _FakeNumbers = new FakeNumberGen(); _Factory = WithWebHostBuilder(builder => { builder.ConfigureTestServices(services => { services.AddScoped(sp => { var context = //new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlite(_Connection).Options); new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlServer(_Connection).Options); context.BeginTransaction(); return(context); }); services.Replace(new ServiceDescriptor(typeof(IRandomNumberGenerator), _FakeNumbers)); }); }); await _DbContext.Database.EnsureDeletedAsync(); await _DbContext.Database.EnsureCreatedAsync(); //await _Connection.OpenAsync(); }
public void SetMainRowStatus(IUnitOfData context, StepConfig stepConfig) { WorkflowDbContext wfContent = context as WorkflowDbContext; string sql = "UPDATE {0} SET " + " {1}_WF_STATUS = @WF_STATUS , " + " {1}_STEP_NAME = @STEP_NAME , " + " {1}_WF_TIME = @WF_TIME " + " WHERE FID = @FID"; sql = string.Format(sql, MainTableName, Prefix); wfContent.RegisterSqlCommand(sql, new SqlParameter[] { new SqlParameter("@WF_STATUS", stepConfig.DisplayName) { DbType = DbType.String }, new SqlParameter("@STEP_NAME", stepConfig.Name) { DbType = DbType.String }, new SqlParameter("@WF_TIME", wfContent.Now) { DbType = DbType.DateTime }, new SqlParameter("@FID", FID) { DbType = DbType.String }, } ); }
public AuthorisationWriterCommand(WorkflowDbContext workflowDb, ILogger <AuthorisationWriterCommand> logger, IUtcDateTimeProvider dateTimeProvider, WriteNewPollTokenWriter newPollTokenWriter) { _workflowDb = workflowDb ?? throw new ArgumentNullException(nameof(workflowDb)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _dateTimeProvider = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider)); _newPollTokenWriter = newPollTokenWriter ?? throw new ArgumentNullException(nameof(newPollTokenWriter)); }
public SecretWriter(WorkflowDbContext dbContextProvider, IUtcDateTimeProvider dateTimeProvider, RandomNumberGenerator numberGenerator, ILogger <SecretWriter> logger) { _DbContextProvider = dbContextProvider ?? throw new ArgumentNullException(nameof(dbContextProvider)); _DateTimeProvider = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider)); _NumberGenerator = numberGenerator ?? throw new ArgumentNullException(nameof(numberGenerator)); _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public SnapshotEksInputMk1(ILogger <SnapshotEksInputMk1> logger, ITransmissionRiskLevelCalculation transmissionRiskLevelCalculation, WorkflowDbContext workflowDbContext, Func <PublishingJobDbContext> publishingDbContextFactory) { _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); _TransmissionRiskLevelCalculation = transmissionRiskLevelCalculation ?? throw new ArgumentNullException(nameof(transmissionRiskLevelCalculation)); _WorkflowDbContext = workflowDbContext ?? throw new ArgumentNullException(nameof(workflowDbContext)); _PublishingDbContextFactory = publishingDbContextFactory ?? throw new ArgumentNullException(nameof(publishingDbContextFactory)); }
public string Creator(string workflowDefine, string key, string paramList) { try { WorkflowDbContext source = new WorkflowDbContext(connStr); WorkflowConfig.ConnString = connStr; RegNameList <KeyValueItem> param = new RegNameList <KeyValueItem>(); if (!string.IsNullOrEmpty(paramList)) { List <KeyValueItem> list = new List <KeyValueItem>(); list = FastToObject <List <KeyValueItem> >(paramList); list.ForEach(a => param.Add(a)); } param.Add(new KeyValueItem() { Key = "MainKey", Value = key }); var wf = Ataw.Workflow.Core.Workflow.CreateWorkflow(source, workflowDefine, param, GlobalVariable.UserId.ToString(), null); return("OK" + wf.GetWorkflowUrl()); } catch (Exception ex) { return(ex.Message); } }
// public public Workflow StartWorkFlow(string key, string defineName, string creatorId) { // throw new NotImplementedException(); WorkflowDbContext source = new WorkflowDbContext(AtawAppContext.Current.DefaultConnString); WorkflowConfig.ConnString = AtawAppContext.Current.DefaultConnString; RegNameList <KeyValueItem> param = new RegNameList <KeyValueItem>(); //if (!string.IsNullOrEmpty(paramList)) //{ // List<KeyValueItem> list = new List<KeyValueItem>(); // list = FastToObject<List<KeyValueItem>>(paramList); // list.ForEach(a => param.Add(a)); //} param.Add(new KeyValueItem() { Key = "MainKey", Value = key }); var wf = Workflow.CreateWorkflow(source, defineName, param, creatorId, null); wf.Run(); // return wf.WorkflowId; return(wf); }
public static void CopyWorkflowToStepHis(WorkflowDbContext wfContext, WF_WORKFLOW_INST workflowRow, WF_STEP_INST_HIS stepRow, FlowAction flowAction) { // stepRow.SI_INDEX = workflowRow.WI_INDEX; stepRow.SI_INDEX = workflowRow.WI_INDEX; //步骤标识 0 -- 有效初始值 1 -- 无效的 stepRow.SI_VALID_FLAG = 0; stepRow.SI_VALID_FLAG = 0; //流转方式 stepRow.SI_FLOW_TYPE = (int?)flowAction; ////步骤基本信息 stepRow.SI_ID = wfContext.GetUniId(); stepRow.SI_WI_ID = workflowRow.WI_ID; ////上一步骤信息 stepRow.SI_LAST_STEP = workflowRow.WI_LAST_STEP; stepRow.SI_LAST_STEP_NAME = workflowRow.WI_LAST_STEP_NAME; stepRow.SI_LAST_MANUAL = workflowRow.WI_LAST_MANUAL; stepRow.SI_LAST_MANUAL_NAME = workflowRow.WI_LAST_MANUAL_NAME; ////当前步骤 stepRow.SI_CURRENT_STEP = workflowRow.WI_CURRENT_STEP; stepRow.SI_CURRENT_STEP_NAME = workflowRow.WI_CURRENT_STEP_NAME; stepRow.SI_STEP_TYPE = workflowRow.WI_STEP_TYPE; stepRow.SI_PRIORITY = workflowRow.WI_PRIORITY; stepRow.SI_STATUS = workflowRow.WI_STATUS ?? 0; ////当前步骤 时间信息:开始时间 结束时间 步骤用时 stepRow.SI_START_DATE = workflowRow.WI_CURRENT_CREATE_DATE; stepRow.SI_END_DATE = wfContext.Now; stepRow.SI_TIME_SPAN = (double)((wfContext.Now - stepRow.SI_START_DATE.Value <DateTime>()).Ticks) / TimeSpan.TicksPerDay; ////发送时间 stepRow.SI_SEND_DATE = workflowRow.WI_SEND_DATE; }
public static void SendStep(Workflow workflow, StepConfig nextStep, IUnitOfData source) { DateTime now = DateTime.Now; // = AtawIocContext.Current.FetchInstance<IUnitOfData>(); WorkflowDbContext dbContext = source as WorkflowDbContext; WF_WORKFLOW_INST workflowRow = workflow.WorkflowRow; WorkflowContent content = WorkflowInstUtil.CreateContent(workflowRow); using (dbContext) { //拷贝新步骤 WF_STEP_INST stepRow = new WF_STEP_INST(); (source as WorkflowDbContext).WF_STEP_INST.Add(stepRow); CopyWorkflowToStep(dbContext, workflowRow, stepRow, FlowAction.Flow); //人工步骤的处理 bool isManual = workflow.CurrentStep.Config.StepType == StepType.Manual; if (isManual) { CopyManualInfo(workflow.WorkflowRow, stepRow); } //更新工作流实例 workflowRow.WI_INDEX = workflowRow.WI_INDEX.Value <int>() + 1; if (isManual) { workflowRow.WI_LAST_MANUAL = workflowRow.WI_CURRENT_STEP; workflowRow.WI_LAST_MANUAL_NAME = workflowRow.WI_CURRENT_STEP_NAME; //更新参与人列表 string refIds = workflowRow.WI_REF_LIST; QuoteIdList ulRef = QuoteIdList.LoadFromString(refIds); string receiveId = workflowRow.WI_RECEIVE_ID; string sendId = workflowRow.WI_SEND_ID; string processId = workflowRow.WI_PROCESS_ID; ulRef.Add(receiveId); ulRef.Add(sendId); ulRef.Add(processId); int outInt; workflowRow.WI_REF_LIST = ulRef.ToString(out outInt); //接收人 处理人 重新置为空 workflowRow.WI_RECEIVE_ID = ""; workflowRow.WI_LAST_PROCESS_ID = workflowRow.WI_PROCESS_ID; workflowRow.WI_PROCESS_ID = ""; workflowRow.WI_RECEIVE_LIST = ""; //清空超时和提醒标识 if (workflowRow.WI_IS_TIMEOUT.Value <bool>() == true) { workflowRow.WI_IS_TIMEOUT = false; } //清空错误处理信息 WI_ERROR_TYPE WI_MAX_RETRY_TIMES WI_RETRY_TIMES WI_NEXT_EXE_DATE WorkflowInstUtil.ClearError(workflowRow); } //更新主表信息 SetWorkflowByStep(source, workflowRow, nextStep); content.SetMainRowStatus(source, nextStep); dbContext.Submit(); } // IUnitOfData dbContext = AtawIocContext.Current.FetchInstance<IUnitOfData>(); //ATAW_WORKFLOWContext context = dbContext as ATAW_WORKFLOWContext; //拷贝新步骤 //WF_STEP_INST stepRow = new WF_STEP_INST(); }
public WorkflowControllerPostKeysDiagnosticTests() { _FakeTimeProvider = new FakeTimeProvider(); _DbcFac = () => new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlServer($"Data Source=.;Database={nameof(WorkflowControllerPostKeysDiagnosticTests)};Integrated Security=True").Options); _DbContext = _DbcFac(); _Factory = WithWebHostBuilder(builder => { builder.ConfigureTestServices(services => { services.AddScoped(sp => { var context = _DbcFac(); context.BeginTransaction(); return(context); }); services.AddTransient <IUtcDateTimeProvider>(x => _FakeTimeProvider); }); builder.ConfigureAppConfiguration((ctx, config) => { config.AddInMemoryCollection(new Dictionary <string, string> { ["Workflow:PostKeys:TemporaryExposureKeys:RollingStartNumber:Min"] = new DateTime(2019, 12, 31, 0, 0, 0, DateTimeKind.Utc).ToRollingStartNumber().ToString(), ["Workflow:PostKeys:TemporaryExposureKeys:Count:Min"] = "0", ["Validation:TemporaryExposureKey:RollingPeriod:Min"] = "1", ["Validation:TemporaryExposureKey:RollingPeriod:Max"] = "144" }); }); }); _DbContext.Database.EnsureDeleted(); _DbContext.Database.EnsureCreated(); }
public HttpPostLabVerifyCommand(LabVerifyArgsValidator labVerifyArgsValidator, WorkflowDbContext dbContextProvider, ILogger <HttpPostLabVerifyCommand> logger, WriteNewPollTokenWriter writer) { _LabVerifyArgsValidator = labVerifyArgsValidator ?? throw new ArgumentNullException(nameof(labVerifyArgsValidator)); _DbContextProvider = dbContextProvider ?? throw new ArgumentNullException(nameof(dbContextProvider)); _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); _Writer = writer ?? throw new ArgumentNullException(nameof(writer)); }
public static void ConfigureServices(IServiceCollection services) { services.AddSeriLog(Configuration); services.AddSingleton(Configuration); services.AddTransient <App>(); services.AddScoped(x => { var config = new StandardEfDbConfig(Configuration, "Content"); var builder = new SqlServerDbContextOptionsBuilder(config); var result = new ExposureContentDbContext(builder.Build()); return(result); }); services.AddScoped(x => { var config = new StandardEfDbConfig(Configuration, "Workflow"); var builder = new SqlServerDbContextOptionsBuilder(config); var result = new WorkflowDbContext(builder.Build()); return(result); }); services.AddScoped(x => { var config = new StandardEfDbConfig(Configuration, "Icc"); var builder = new SqlServerDbContextOptionsBuilder(config); var result = new IccBackendContentDbContext(builder.Build()); return(result); }); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddScoped(x => DbContextStartup.Workflow(x, false)); services.AddScoped(x => DbContextStartup.Content(x, false)); services.AddScoped(x => DbContextStartup.Publishing(x, false)); services.AddTransient <ContentValidator>(); services.AddTransient <ContentInsertDbCommand>(); services.NlSignerStartup(_Configuration.UseCertificatesFromResources()); services.GaSignerStartup(_Configuration.UseCertificatesFromResources()); // Database Scoping services.AddScoped(x => { var config = new StandardEfDbConfig(_Configuration, "WorkFlow"); var builder = new SqlServerDbContextOptionsBuilder(config); var result = new WorkflowDbContext(builder.Build()); result.BeginTransaction(); return(result); }); services.AddScoped <IUtcDateTimeProvider, StandardUtcDateTimeProvider>(); services.AddTransient <IPublishingIdService, Sha256HexPublishingIdService>(); services.AddTransient <ZippedSignedContentFormatter>(); services.AddControllersWithViews(); }
public CreateWorkflowDatabase(IConfiguration configuration) { var config = new StandardEfDbConfig(configuration, "Workflow"); var builder = new SqlServerDbContextOptionsBuilder(config); _Provider = new WorkflowDbContext(builder.Build()); }
public async Task InitializeAsync() { _FakeTimeProvider = new FakeTimeProvider(); _Connection = new SqliteConnection("Data Source=:memory:"); _DbContext = new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlite(_Connection).Options); _Factory = WithWebHostBuilder(builder => { builder.ConfigureTestServices(services => { services.AddScoped(sp => { var context = new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlite(_Connection).Options); context.BeginTransaction(); return(context); }); services.AddTransient <IUtcDateTimeProvider>(x => _FakeTimeProvider); }); builder.ConfigureAppConfiguration((ctx, config) => { config.AddInMemoryCollection(new Dictionary <string, string> { ["Workflow:PostKeys:TemporaryExposureKeys:RollingStartNumber:Min"] = new DateTime(2019, 12, 31, 0, 0, 0, DateTimeKind.Utc).ToRollingStartNumber().ToString(), ["Validation:TemporaryExposureKey:RollingPeriod:Min"] = "1", ["Validation:TemporaryExposureKey:RollingPeriod:Max"] = "144" }); }); }); await _Connection.OpenAsync(); await _DbContext.Database.EnsureCreatedAsync(); }
public DataController(WorkflowDbContext workflowDbContext) { if (workflowDbContext == null) { throw new ArgumentNullException(nameof(workflowDbContext)); } _WorkflowDbContext = workflowDbContext; }
public HttpPostReleaseTeksCommand(IReleaseTeksValidator keyValidator, ISignatureValidator signatureValidator, ITekWriter writer, WorkflowDbContext dbContextProvider, IJsonSerializer jsonSerializer, ILogger <HttpPostReleaseTeksCommand> logger) { _KeyValidator = keyValidator ?? throw new ArgumentNullException(nameof(keyValidator)); _SignatureValidator = signatureValidator ?? throw new ArgumentNullException(nameof(signatureValidator)); _Writer = writer ?? throw new ArgumentNullException(nameof(writer)); _DbContextProvider = dbContextProvider ?? throw new ArgumentNullException(nameof(dbContextProvider)); _JsonSerializer = jsonSerializer ?? throw new ArgumentNullException(nameof(jsonSerializer)); _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public HttpPostGenerateExposureKeySetsCommand(WorkflowDbContext input, ExposureContentDbContext output, IUtcDateTimeProvider utcDateTimeProvider, IEfDbConfig standardEfDbConfig, IGaenContentConfig gaenContentConfig, IExposureKeySetHeaderInfoConfig hsmExposureKeySetHeaderInfoConfig, IExposureKeySetBatchJobConfig exposureKeySetBatchJobConfig) { _Input = input; _Output = output; _UtcDateTimeProvider = utcDateTimeProvider; _StandardEfDbConfig = standardEfDbConfig; _GaenContentConfig = gaenContentConfig; _HsmExposureKeySetHeaderInfoConfig = hsmExposureKeySetHeaderInfoConfig; _ExposureKeySetBatchJobConfig = exposureKeySetBatchJobConfig; }
public TekReleaseWorkflowStateCreate(WorkflowDbContext dbContextProvider, IUtcDateTimeProvider dateTimeProvider, IRandomNumberGenerator numberGenerator, ILabConfirmationIdService labConfirmationIdService, IWorkflowTime workflowTime, IWorkflowConfig workflowConfig, ILogger <TekReleaseWorkflowStateCreate> logger) { _WorkflowDbContext = dbContextProvider ?? throw new ArgumentNullException(nameof(dbContextProvider)); _DateTimeProvider = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider)); _NumberGenerator = numberGenerator ?? throw new ArgumentNullException(nameof(numberGenerator)); _LabConfirmationIdService = labConfirmationIdService ?? throw new ArgumentNullException(nameof(labConfirmationIdService)); _WorkflowTime = workflowTime ?? throw new ArgumentNullException(nameof(workflowTime)); _WorkflowConfig = workflowConfig ?? throw new ArgumentNullException(nameof(workflowConfig)); _Logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public WorkflowDatabaseCreateCommand(IConfiguration configuration, ITekValidatorConfig tekValidatorConfig, ILabConfirmationIdService labConfirmationIdService, IWorkflowConfig workflowConfig) { _TekValidatorConfig = tekValidatorConfig ?? throw new ArgumentNullException(nameof(tekValidatorConfig)); _LabConfirmationIdService = labConfirmationIdService ?? throw new ArgumentNullException(nameof(labConfirmationIdService)); _WorkflowConfig = workflowConfig ?? throw new ArgumentNullException(nameof(workflowConfig)); var config = new StandardEfDbConfig(configuration, "Workflow"); var builder = new SqlServerDbContextOptionsBuilder(config); _Provider = new WorkflowDbContext(builder.Build()); }
public App(ILogger <App> logger, WorkflowDbContext workflowDbContext, ExposureContentDbContext exposureContentDbContext, IccBackendContentDbContext iccBackedBackendContentDb) { _Logger = logger; _WorkflowDbContext = workflowDbContext; _ExposureContentDbContext = exposureContentDbContext; _IccBackendContentDbContext = iccBackedBackendContentDb; }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { ComponentsContainerHelper.RegisterDefaultServices(services); services.AddControllers(); services.AddSeriLog(Configuration); services.AddBasicAuthentication(); services.AddScoped(x => { var config = new StandardEfDbConfig(Configuration, "WorkFlow"); var builder = new SqlServerDbContextOptionsBuilder(config); var result = new WorkflowDbContext(builder.Build()); result.Database.BeginTransaction(); return(result); }); services.AddSingleton <IUtcDateTimeProvider, StandardUtcDateTimeProvider>(); services.AddScoped <HttpPostAuthorise, HttpPostAuthorise>(); services.AddScoped <ISignatureValidator, SignatureValidator>(); services.AddScoped <IAuthorisationWriter, AuthorisationWriter>(); services.AddSwaggerGen(o => { o.SwaggerDoc("v1", new OpenApiInfo { Title = Title, Version = "v1" }); o.AddSecurityDefinition("basic", new OpenApiSecurityScheme { Name = "Authorization", Type = SecuritySchemeType.Http, Scheme = "basic", In = ParameterLocation.Header, Description = "Basic Authorization header using the Bearer scheme." }); o.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "basic" } }, new string[] {} } }); }); }
public App(ILogger <App> logger, WorkflowDbContext workflowDbContext, ExposureContentDbContext exposureContentDbContext, IccBackendContentDbContext iccBackedBackendContentDb, IConfigurationRoot configuration) { _Logger = logger; _WorkflowDbContext = workflowDbContext; _ExposureContentDbContext = exposureContentDbContext; _IccBackendContentDbContext = iccBackedBackendContentDb; _Configuration = configuration; }
public void EndMainRowStatus(WorkflowDbContext context, FinishType finishType) { string sql = "UPDATE {0} SET " + " {2} " + " {1}_WF_STATUS = @WF_STATUS , " + " {1}_WF_IS_END = @WF_IS_END , " + " {1}_WF_TIME = @WF_TIME " + " WHERE FID = @FID"; string statusSql = Prefix + "_STEP_NAME = @STEP_NAME ,"; List <SqlParameter> list = new List <SqlParameter>(); SqlParameter statusPar = new SqlParameter("@WF_IS_END", (int)finishType); SqlParameter fidParm = new SqlParameter("@FID", FID) { DbType = DbType.String }; SqlParameter wftimeParm = new SqlParameter("@WF_TIME", context.Now) { DbType = DbType.DateTime }; list.Add(statusPar); list.Add(fidParm); list.Add(wftimeParm); string sql0 = string.Format(sql, MainTableName, Prefix, ""); switch (finishType) { case FinishType.ReturnBegin: break; case FinishType.Abort: //fMainRow[prefix + "WF_STATUS"] = "终止"; list.Add(new SqlParameter("@WF_STATUS", "终止")); //fMainRow[prefix + "STEP_NAME"] = "__abort"; list.Add(new SqlParameter("@STEP_NAME", "__abort")); sql0 = string.Format(sql, MainTableName, Prefix, statusSql); break; case FinishType.OverTryTimes: //fMainRow[prefix + "WF_STATUS"] = "重试错误终止"; list.Add(new SqlParameter("@WF_STATUS", "重试错误终止")); break; case FinishType.Error: // fMainRow[prefix + "WF_STATUS"] = "错误终止"; list.Add(new SqlParameter("@WF_STATUS", "错误终止")); break; default: list.Add(new SqlParameter("@WF_STATUS", "结束")); break; } context.RegisterSqlCommand(sql0, list.ToArray()); }
public SnapshotWorkflowTeksToDksCommand(ILogger <SnapshotWorkflowTeksToDksCommand> logger, IUtcDateTimeProvider dateTimeProvider, ITransmissionRiskLevelCalculationMk2 transmissionRiskLevelCalculation, WorkflowDbContext workflowDbContext, Func <WorkflowDbContext> workflowDbContextFactory, Func <DkSourceDbContext> dkSourceDbContextFactory, IWrappedEfExtensions sqlCommands, IDiagnosticKeyProcessor[] orderedProcessorList) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _dateTimeProvider = dateTimeProvider ?? throw new ArgumentNullException(nameof(dateTimeProvider)); _transmissionRiskLevelCalculation = transmissionRiskLevelCalculation ?? throw new ArgumentNullException(nameof(transmissionRiskLevelCalculation)); _workflowDbContext = workflowDbContext ?? throw new ArgumentNullException(nameof(workflowDbContext)); _workflowDbContextFactory = workflowDbContextFactory ?? throw new ArgumentNullException(nameof(workflowDbContextFactory)); _dkSourceDbContextFactory = dkSourceDbContextFactory ?? throw new ArgumentNullException(nameof(dkSourceDbContextFactory)); _sqlCommands = sqlCommands ?? throw new ArgumentNullException(nameof(sqlCommands)); _orderedProcessorList = orderedProcessorList ?? throw new ArgumentNullException(nameof(orderedProcessorList)); }