Ejemplo n.º 1
0
        public ServerBuilder AddDefinitions(List <string> pathLst)
        {
            var builder = _services.BuildServiceProvider();
            var commitAggregateHelper = (ICommitAggregateHelper)builder.GetService(typeof(ICommitAggregateHelper));
            var caseFiles             = new ConcurrentBag <CaseFileAggregate>();
            var caseDefinitions       = new ConcurrentBag <CasePlanAggregate>();

            foreach (var path in pathLst)
            {
                var cmmnTxt        = File.ReadAllText(path);
                var name           = Path.GetFileName(path);
                var caseFile       = CaseFileAggregate.New(name, name, 0, cmmnTxt);
                var tDefinitions   = CMMNParser.ParseWSDL(cmmnTxt);
                var caseDefinition = CMMNParser.ExtractCasePlans(tDefinitions, caseFile);
                foreach (var cd in caseDefinition)
                {
                    caseDefinitions.Add(cd);
                }

                caseFiles.Add(caseFile);
                var newCaseFile = caseFile.Publish();
                caseFiles.Add(newCaseFile);
                commitAggregateHelper.Commit(caseFile, CaseFileAggregate.GetStreamName(caseFile.AggregateId), CancellationToken.None).Wait();
                commitAggregateHelper.Commit(newCaseFile, CaseFileAggregate.GetStreamName(newCaseFile.AggregateId), CancellationToken.None).Wait();
            }

            _services.TryUpdateSingleton <ICaseFileQueryRepository>(new InMemoryCaseFileQueryRepository(caseFiles));
            _services.TryUpdateSingleton <ICaseFileCommandRepository>(new InMemoryCaseFileCommandRepository(caseFiles));
            _services.TryUpdateSingleton <ICasePlanCommandRepository>(new InMemoryCasePlanCommandRepository(caseDefinitions));
            _services.TryUpdateSingleton <ICasePlanQueryRepository>(new InMemoryCasePlanQueryRepository(caseDefinitions));
            return(this);
        }
Ejemplo n.º 2
0
        private void InitializeDatabase(IApplicationBuilder app)
        {
            var pathLst = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "Cmmns"), "*.cmmn").ToList();

            using (var scope = app.ApplicationServices.GetRequiredService <IServiceScopeFactory>().CreateScope())
            {
                using (var context = scope.ServiceProvider.GetService <CaseManagementDbContext>())
                {
                    context.Database.Migrate();
                    if (context.CasePlans.Any())
                    {
                        return;
                    }

                    var commitAggregateHelper = (ICommitAggregateHelper)scope.ServiceProvider.GetService(typeof(ICommitAggregateHelper));
                    foreach (var path in pathLst)
                    {
                        var cmmnTxt      = File.ReadAllText(path);
                        var name         = Path.GetFileName(path);
                        var caseFile     = CaseFileAggregate.New(name, name, 0, cmmnTxt);
                        var tDefinitions = CMMNParser.ParseWSDL(cmmnTxt);
                        var newCaseFile  = caseFile.Publish();
                        commitAggregateHelper.Commit(caseFile, CaseFileAggregate.GetStreamName(caseFile.AggregateId), CancellationToken.None).Wait();
                        commitAggregateHelper.Commit(newCaseFile, CaseFileAggregate.GetStreamName(newCaseFile.AggregateId), CancellationToken.None).Wait();
                    }

                    context.SaveChanges();
                }
            }
        }
Ejemplo n.º 3
0
        public ServerBuilder AddDefinitions(List <string> pathLst, string caseOwner = null)
        {
            var caseFiles       = new ConcurrentBag <CaseFileAggregate>();
            var caseDefinitions = new ConcurrentBag <CasePlanAggregate>();

            foreach (var path in pathLst)
            {
                var cmmnTxt        = File.ReadAllText(path);
                var name           = Path.GetFileName(path);
                var caseFile       = CaseFileAggregate.New(name, name, 0, caseOwner, cmmnTxt);
                var tDefinitions   = CMMNParser.ParseWSDL(cmmnTxt);
                var caseDefinition = CMMNParser.ExtractCasePlans(tDefinitions, caseFile);
                foreach (var cd in caseDefinition)
                {
                    caseDefinitions.Add(cd);
                }

                caseFiles.Add(caseFile);
            }

            _services.TryUpdateSingleton <ICaseFileQueryRepository>(new InMemoryCaseFileQueryRepository(caseFiles));
            _services.TryUpdateSingleton <ICaseFileCommandRepository>(new InMemoryCaseFileCommandRepository(caseFiles));
            _services.TryUpdateSingleton <ICasePlanCommandRepository>(new InMemoryCasePlanCommandRepository(caseDefinitions));
            _services.TryUpdateSingleton <ICasePlanQueryRepository>(new InMemoryCasePlanQueryRepository(caseDefinitions));
            return(this);
        }
Ejemplo n.º 4
0
        private void InitializeDatabase(IApplicationBuilder app)
        {
            var pathLst = Directory.EnumerateFiles(Path.Combine(Directory.GetCurrentDirectory(), "Cmmns"), "*.cmmn").ToList();

            using (var scope = app.ApplicationServices.GetRequiredService <IServiceScopeFactory>().CreateScope())
            {
                using (var context = scope.ServiceProvider.GetService <CaseManagementDbContext>())
                {
                    context.Database.Migrate();
                    if (context.CasePlans.Any())
                    {
                        return;
                    }

                    foreach (var path in pathLst)
                    {
                        var cmmnTxt      = File.ReadAllText(path);
                        var name         = Path.GetFileName(path);
                        var caseFile     = CaseFileAggregate.New(name, name, 0, cmmnTxt);
                        var tDefinitions = CMMNParser.ParseWSDL(cmmnTxt);
                        var newCaseFile  = caseFile.Publish();
                        context.CaseFiles.Add(caseFile);
                        context.CaseFiles.Add(newCaseFile);
                        foreach (var casePlan in CMMNParser.ExtractCasePlans(tDefinitions, caseFile))
                        {
                            context.CasePlans.Add(casePlan);
                        }
                    }

                    context.SaveChanges();
                }
            }
        }
Ejemplo n.º 5
0
        public async Task <CreateCaseFileResult> Handle(AddCaseFileCommand addCaseFileCommand, CancellationToken token)
        {
            var payload = addCaseFileCommand.Payload;

            if (string.IsNullOrWhiteSpace(addCaseFileCommand.Payload))
            {
                payload = _options.DefaultCMMNSchema;
                payload = payload.Replace("{id}", $"CasePlanModel_{Guid.NewGuid()}");
            }

            var caseFile   = CaseFileAggregate.New(addCaseFileCommand.Name, addCaseFileCommand.Description, 0, addCaseFileCommand.Owner, payload);
            var streamName = CaseFileAggregate.GetStreamName(caseFile.AggregateId);
            await _commitAggregateHelper.Commit(caseFile, streamName, token);

            return(new CreateCaseFileResult
            {
                Id = caseFile.AggregateId
            });
        }
        public async Task <CreateCaseFileResult> Handle(AddCaseFileCommand addCaseFileCommand, CancellationToken token)
        {
            var payload = addCaseFileCommand.Payload;

            if (string.IsNullOrWhiteSpace(addCaseFileCommand.Payload))
            {
                payload = _options.DefaultCMMNSchema;
                payload = payload.Replace("{id}", $"CasePlanModel_{Guid.NewGuid()}");
            }

            var caseFile = CaseFileAggregate.New(addCaseFileCommand.Name, addCaseFileCommand.Description, 0, payload);
            await _caseFileCommandRepository.Add(caseFile, token);

            await _caseFileCommandRepository.SaveChanges(token);

            return(new CreateCaseFileResult
            {
                Id = caseFile.AggregateId
            });
        }