Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        // 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"
                });
            });
        }
Esempio n. 4
0
        // 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;
 }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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
                },
            }
                                         );
        }
Esempio n. 8
0
 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));
 }
Esempio n. 9
0
 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));
 }
Esempio n. 10
0
 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);
     }
 }
Esempio n. 12
0
        // 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);
        }
Esempio n. 13
0
 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;
 }
Esempio n. 14
0
        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();
        }
Esempio n. 15
0
        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();
        }
Esempio n. 16
0
 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));
 }
Esempio n. 17
0
        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);
            });
        }
Esempio n. 18
0
        // 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();
        }
Esempio n. 19
0
        public CreateWorkflowDatabase(IConfiguration configuration)
        {
            var config  = new StandardEfDbConfig(configuration, "Workflow");
            var builder = new SqlServerDbContextOptionsBuilder(config);

            _Provider = new WorkflowDbContext(builder.Build());
        }
Esempio n. 20
0
        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));
 }
Esempio n. 25
0
        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;
 }
Esempio n. 29
0
        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());
        }
Esempio n. 30
0
 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));
 }