Example #1
0
        public WorkflowDefinitionVersion Build()
        {
            // Generate deterministic activity ids.
            var id = 1;

            foreach (var activityBuilder in activityBuilders)
            {
                if (activityBuilder.Id == null)
                {
                    activityBuilder.Id = $"activity-{id++}";
                }
            }

            var activities   = activityBuilders.Select(x => x.BuildActivity()).ToList();
            var connections  = connectionBuilders.Select(x => x.BuildConnection()).ToList();
            var versionId    = idGenerator.Generate();
            var definitionId = !string.IsNullOrWhiteSpace(Id) ? Id : idGenerator.Generate();

            return(new WorkflowDefinitionVersion(
                       versionId,
                       definitionId,
                       Version,
                       Name,
                       Description,
                       activities,
                       connections,
                       IsSingleton,
                       IsDisabled,
                       Variables.Empty)
            {
                IsPublished = true,
                IsLatest = true
            });
        }
        public async Task <Article> AddAsync(Article article, CancellationToken cancellationToken)
        {
            article.Id = _idGenerator.Generate();

            var ret = await _repository.GetByTitleAsync(article.Title, cancellationToken);

            if (ret != null && !string.IsNullOrEmpty(ret.Title))
            {
                return(await _repository.AddAsync(article, cancellationToken));
            }

            return(null);
        }
Example #3
0
        public WorkflowDefinition New()
        {
            var definition = new WorkflowDefinition
            {
                Id           = _idGenerator.Generate(),
                DefinitionId = _idGenerator.Generate(),
                Name         = "New Workflow",
                Version      = 1,
                IsLatest     = true,
                IsPublished  = false,
                IsSingleton  = false
            };

            return(definition);
        }
        /// <summary>
        /// Создать лог организации
        /// </summary>
        /// <param name="stateRegistrationId">Идентификатор государственной регистрации</param>
        /// <param name="name">Наименование</param>
        /// <param name="shortName">Короткое наименование</param>
        /// <param name="legalAddress">Юридический адрес</param>
        /// <param name="scientificActivity">Научная деятельность</param>
        /// <param name="revisionNumber">Номер ревизии</param>
        /// <returns>Идентификатор лога организации</returns>
        public Guid Create(
            Guid stateRegistrationId,
            string name,
            string shortName,
            string legalAddress,
            string scientificActivity,
            long revisionNumber)
        {
            Contract.Argument.IsNotEmptyGuid(stateRegistrationId, nameof(stateRegistrationId));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(name, nameof(name));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(shortName, nameof(shortName));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(scientificActivity, nameof(scientificActivity));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(legalAddress, nameof(legalAddress));

            Contract.Argument.IsValidIf(revisionNumber > 0, $"{nameof(revisionNumber)} > 0");

            var createdOrganizationLog = _context.Set <OrganizationLog>().Create();
            var id = _idGenerator.Generate();

            createdOrganizationLog.Initialize(
                id: id,
                stateRegistrationId: stateRegistrationId,
                name: name,
                shortName: shortName,
                scientificActivity: scientificActivity,
                legalAddress: legalAddress,
                revisionNumber: revisionNumber);

            var newOrganizationLog = _context.Set <OrganizationLog>().Add(createdOrganizationLog);

            return(newOrganizationLog.Id);
        }
 public async Task AddEntryAsync(string workflowInstanceId, string activityId, string activityType, string eventName, string?message, string?tenantId, string?source, JObject?data, CancellationToken cancellationToken = default)
 {
     var id        = _idGenerator.Generate();
     var timeStamp = _clock.GetCurrentInstant();
     var record    = new WorkflowExecutionLogRecord(id, tenantId, workflowInstanceId, activityId, activityType, timeStamp, eventName, message, source, data);
     await _store.SaveAsync(record, cancellationToken);
 }
Example #6
0
 public EntityTypeDataComponent(
     EntityType entityType,
     IIdGenerator idGenerator)
 {
     EntityType = entityType;
     Id         = idGenerator.Generate();
 }
Example #7
0
        /// <summary>
        ///  Создать приглашение
        /// </summary>
        /// <param name="alienId">Иностранец</param>
        /// <param name="employeeId">Сотрудник</param>
        /// <param name="visitDetailId">Детали визита</param>
        /// <param name="foreignParticipants">Сопровождение</param>
        /// <param name="createdDate">Дата создания</param>
        /// <param name="updateDate">Дата изменения</param>
        /// <param name="invitationStatus">Статус приглашения</param>
        /// <returns>Идентификатор приглашения</returns>
        public Invitation Create(
            Guid alienId,
            Guid employeeId,
            Guid visitDetailId,
            ICollection <ForeignParticipant> foreignParticipants,
            DateTimeOffset createdDate,
            DateTimeOffset updateDate,
            InvitationStatus invitationStatus)
        {
            Contract.Argument.IsNotEmptyGuid(alienId, nameof(alienId));
            Contract.Argument.IsNotEmptyGuid(employeeId, nameof(employeeId));
            Contract.Argument.IsNotEmptyGuid(visitDetailId, nameof(visitDetailId));
            Contract.Argument.IsNotNull(foreignParticipants, nameof(foreignParticipants));
            Contract.Argument.IsValidIf(createdDate <= updateDate, $"{nameof(createdDate)}:{createdDate} < {nameof(updateDate)}:{updateDate}");

            var createdInvitation = _context.Set <Invitation>().Create();

            var id = _idGenerator.Generate();

            createdInvitation.Initialize(
                id: id,
                alienId: alienId,
                employeeId: employeeId,
                visitDetailId: visitDetailId,
                foreignParticipants: foreignParticipants,
                createdDate: createdDate,
                updateDate: updateDate,
                invitationStatus: invitationStatus);

            var newInvitation = _context.Set <Invitation>().Add(createdInvitation);

            return(newInvitation);
        }
        /// <summary>
        /// Создать лог приглашения
        /// </summary>
        /// <param name="alienId">Идентификатор иностранца</param>
        /// <param name="employeeId">Идентификатор сотрудника</param>
        /// <param name="visitDetailId">Идентификатор деталей визита</param>
        /// <param name="createdDate">Дата создания</param>
        /// <param name="updateDate">Дата изменения</param>
        /// <param name="invitationStatus">Статус приглашения</param>
        /// <param name="revisionNumber">Номер ревизии</param>
        /// <returns>Идентификатор лога приглашения</returns>
        public Guid Create(
            Guid alienId,
            Guid employeeId,
            Guid visitDetailId,
            DateTime createdDate,
            DateTime updateDate,
            InvitationStatus invitationStatus,
            long revisionNumber)
        {
            Contract.Argument.IsNotEmptyGuid(alienId, nameof(alienId));
            Contract.Argument.IsNotEmptyGuid(employeeId, nameof(employeeId));
            Contract.Argument.IsNotEmptyGuid(visitDetailId, nameof(visitDetailId));

            Contract.Argument.IsValidIf(createdDate <= updateDate, $"{nameof(createdDate)}:{createdDate} < {nameof(updateDate)}:{updateDate}");
            Contract.Argument.IsValidIf(revisionNumber > 0, $"{nameof(revisionNumber)} > 0");

            var createdInvitationLog = _context.Set <InvitationLog>().Create();
            var id = _idGenerator.Generate();

            createdInvitationLog.Initialize(
                id: id,
                alienId: alienId,
                employeeId: employeeId,
                visitDetailId: visitDetailId,
                createdDate: createdDate,
                updateDate: updateDate,
                status: invitationStatus,
                revisionNumber: revisionNumber);

            var newInvitationLog = _context.Set <InvitationLog>().Add(createdInvitationLog);

            return(newInvitationLog.Id);
        }
Example #9
0
        /// <summary>
        /// 创建工作流
        /// </summary>
        /// <param name="definition"></param>
        /// <param name="input"></param>
        /// <param name="workflowInstance"></param>
        /// <param name="correlationId"></param>
        /// <returns></returns>
        public Workflow CreateWorkflow(
            WorkflowDefinitionVersion definition,
            Variables input = default,
            WorkflowInstance workflowInstance = default,
            string correlationId = default)
        {
            if (definition.IsDisabled)//工作流定义已经禁用
            {
                throw new InvalidOperationException("Cannot instantiate disabled workflow definitions.");
            }

            var activities  = CreateActivities(definition.Activities).ToList();      //创建节点
            var connections = CreateConnections(definition.Connections, activities); //创建连线
            var id          = idGenerator.Generate();                                //生成Id
            var workflow    = new Workflow(
                id,
                definition,
                clock.GetCurrentInstant(),
                activities,
                connections,
                input,
                correlationId);

            if (workflowInstance != default)
            {
                workflow.Initialize(workflowInstance);
            }

            return(workflow);
        }
Example #10
0
        /// <summary>
        /// Создать организацию
        /// </summary>
        /// <param name="stateRegistration">Государственная регистрация</param>
        /// <param name="name">Наименование</param>
        /// <param name="shortName">Короткое наименование</param>
        /// <param name="legalAddress">Юридический адрес</param>
        /// <param name="scientificActivity">Научная деятельность</param>
        /// <returns>Идентификатор организации</returns>
        public Organization Create(
            Guid stateRegistrationId,
            string name,
            string shortName,
            string legalAddress,
            string scientificActivity)
        {
            /*
             * Contract.Argument.IsNotEmptyGuid(stateRegistrationId, nameof(stateRegistrationId));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(name, nameof(name));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(shortName, nameof(shortName));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(scientificActivity, nameof(scientificActivity));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(legalAddress, nameof(legalAddress));
             */

            var createdOrganization = _domainContext.Set <Organization>().Create();

            var id = _idGenerator.Generate();

            createdOrganization.Initialize(
                id: id,
                stateRegistrationId: stateRegistrationId,
                name: name,
                shortName: shortName,
                scientificActivity: scientificActivity,
                legalAddress: legalAddress);

            var newOrganization = _domainContext.Set <Organization>().Add(createdOrganization);

            return(newOrganization);
        }
Example #11
0
        public async Task HandleAsync(SendStory command)
        {
            var user = await _userRepository.GetAsync(command.UserId);

            if (user is null)
            {
                throw new UserNotFoundException(command.UserId);
            }

            if (!_storyAuthorPolicy.CanCreate(user))
            {
                throw new CannotCreateStoryException(user.Id);
            }

            var author     = Author.Create(user);
            var text       = _storyTextFactory.Create(command.Text);
            var now        = _clock.Current();
            var visibility = command.VisibleFrom.HasValue && command.VisibleTo.HasValue
                ? new Visibility(command.VisibleFrom.Value, command.VisibleTo.Value, command.Highlighted)
                : Visibility.Default(now);
            var storyId = command.StoryId <= 0 ? _idGenerator.Generate() : command.StoryId;
            var story   = Story.Create(storyId, author, command.Title, text, command.Tags, now, visibility);
            await _storyRepository.AddAsync(story);

            var domainEvents = story.Events.ToArray();
            await _domainEventDispatcher.DispatchAsync(domainEvents);

            var integrationEvents = _eventMapper.Map(domainEvents).ToArray();

            _storyRequestStorage.SetStoryId(command.Id, story.Id);
            await _messageBroker.PublishAsync(integrationEvents);
        }
Example #12
0
        /// <summary>
        /// Создать лог контакта
        /// </summary>
        /// <param name="email">Электронный адрес</param>
        /// <param name="postcode">Почтовый индекс</param>
        /// <param name="homePhoneNumber">Домашний номер телефона</param>
        /// <param name="workPhoneNumber">Рабочий номер телефона</param>
        /// <param name="mobilePhoneNumber">Мобильный номер телефона</param>
        /// <returns>Идентификатор лога контакта</returns>
        public Guid Create(
            string email,
            string postcode,
            string homePhoneNumber,
            string workPhoneNumber,
            string mobilePhoneNumber,
            long revisionNumber)
        {
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(email, nameof(email));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(postcode, nameof(postcode));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(homePhoneNumber, nameof(homePhoneNumber));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(workPhoneNumber, nameof(workPhoneNumber));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(mobilePhoneNumber, nameof(mobilePhoneNumber));

            Contract.Argument.IsValidIf(revisionNumber > 0, $"{nameof(revisionNumber)} > 0");

            var createdContactLog = _context.Set <ContactLog>().Create();
            var id = _idGenerator.Generate();

            createdContactLog.Initialize(
                id: id,
                email: email,
                postcode: postcode,
                homePhoneNumber: homePhoneNumber,
                workPhoneNumber: workPhoneNumber,
                mobilePhoneNumber: mobilePhoneNumber,
                revisionNumber: revisionNumber);

            var newContactLog = _context.Set <ContactLog>().Add(createdContactLog);

            return(newContactLog.Id);
        }
Example #13
0
        /// <summary>
        /// Создать документ
        /// </summary>
        /// <param name="invitationId">Идентификатор приглашения</param>
        /// <param name="name">Название</param>
        /// <param name="content">Содержимое</param>
        /// <param name="createdDate">Дата создания</param>
        /// <param name="updateDate">Дата изменения</param>
        /// <param name="documentType">Тип документа</param>
        /// <returns>Идентификатор документа</returns>
        public Guid Create(
            Guid invitationId,
            string name,
            byte[] content,
            DateTime createdDate,
            DateTime updateDate,
            DocumentType documentType)
        {
            Contract.Argument.IsNotEmptyGuid(invitationId, nameof(invitationId));
            Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(name, nameof(name));
            Contract.Argument.IsNotNull(content, nameof(content));
            Contract.Argument.IsValidIf(createdDate <= updateDate, $"{nameof(createdDate)}:{createdDate} < {nameof(updateDate)}:{updateDate}");

            var createdDocument = _context.Set <Document>().Create();
            var id = _idGenerator.Generate();

            createdDocument.Initialize(
                id: id,
                invitationId: invitationId,
                name: name,
                content: content,
                createdDate: createdDate,
                updateDate: updateDate,
                documentType: documentType);

            var newDocument = _context.Set <Document>().Add(createdDocument);

            return(newDocument.Id);
        }
        public WorkflowDefinition New()
        {
            var definition = new WorkflowDefinition
            {
                Id           = _idGenerator.Generate(),
                DefinitionId = _idGenerator.Generate(),
                Name         = "New Workflow",
                Version      = 1,
                IsLatest     = true,
                IsPublished  = false,
                IsSingleton  = false,
                CreatedAt    = _clock.GetCurrentInstant()
            };

            return(definition);
        }
        public async Task HandleAsync(SendStory command)
        {
            var user = await _userRepository.GetAsync(command.UserId);

            if (user is null)
            {
                throw new UserNotFoundException(command.UserId);
            }

            if (user.Locked)
            {
                throw new UserLockedException(command.UserId);
            }

            var author    = Author.Create(user);
            var storyText = new StoryText(command.Text);

            _storyTextPolicy.Verify(storyText);
            var now        = _dateTimeProvider.Get();
            var visibility = command.VisibleFrom.HasValue && command.VisibleTo.HasValue
                ? new Visibility(command.VisibleFrom.Value, command.VisibleTo.Value, command.Highlighted)
                : Visibility.Default(now);
            var storyId = command.StoryId == default ? _idGenerator.Generate() : command.StoryId;
            var story   = new Story(storyId, author, command.Title, storyText, command.Tags, now, visibility);
            await _storyRepository.AddAsync(story);

            _storyRequestStorage.SetStoryId(command.Id, story.Id);
            await _messageBroker.PublishAsync(new StorySent(story.Id,
                                                            new StorySent.AuthorModel(author.Id, author.Name), story.Title, story.Tags, story.CreatedAt,
                                                            new StorySent.VisibilityModel(story.Visibility.From, story.Visibility.To,
                                                                                          story.Visibility.Highlighted)));
        }
Example #16
0
        public async Task <ActionResult <WebhookDefinition> > Handle([FromBody] SaveWebhookDefinitionRequest request, [FromRoute] ApiVersion apiVersion, CancellationToken cancellationToken)
        {
            var webhookId         = request.Id;
            var webhookDefinition = !string.IsNullOrWhiteSpace(webhookId) ? await _store.FindAsync(new EntityIdSpecification <WebhookDefinition>(webhookId), cancellationToken) : default;

            if (webhookDefinition == null)
            {
                webhookDefinition = new WebhookDefinition
                {
                    Id = !string.IsNullOrWhiteSpace(webhookId) ? webhookId : _idGenerator.Generate(),
                }
            }
            ;

            webhookDefinition.Name            = request.Name.Trim();
            webhookDefinition.Path            = request.Path.Trim();
            webhookDefinition.Description     = request.Description?.Trim();
            webhookDefinition.PayloadTypeName = request.PayloadTypeName?.Trim();
            webhookDefinition.IsEnabled       = request.IsEnabled;

            await _store.SaveAsync(webhookDefinition, cancellationToken);

            return(CreatedAtAction("Handle", "Get", new { id = webhookDefinition.Id, apiVersion = apiVersion.ToString() }, webhookDefinition));
        }
    }
Example #17
0
        /// <summary>
        /// Создать контакт
        /// </summary>
        /// <param name="email">Электронный адрес</param>
        /// <param name="postcode">Почтовый индекс</param>
        /// <param name="homePhoneNumber">Домашний номер телефона</param>
        /// <param name="workPhoneNumber">Рабочий номер телефона</param>
        /// <param name="mobilePhoneNumber">Мобильный номер телефона</param>
        /// <returns></returns>
        public Contact Create(
            string email,
            string postcode,
            string homePhoneNumber,
            string workPhoneNumber,
            string mobilePhoneNumber)
        {
            /*
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(email, nameof(email));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(postcode, nameof(postcode));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(homePhoneNumber, nameof(homePhoneNumber));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(workPhoneNumber, nameof(workPhoneNumber));
             * Contract.Argument.IsNotNullOrEmptyOrWhiteSpace(mobilePhoneNumber, nameof(mobilePhoneNumber));
             */

            var createdContact = _domainContext.Set <Contact>().Create();

            var id = _idGenerator.Generate();

            createdContact.Initialize(
                id: id,
                email: email,
                postcode: postcode,
                homePhoneNumber: homePhoneNumber,
                workPhoneNumber: workPhoneNumber,
                mobilePhoneNumber: mobilePhoneNumber);

            var newContact = _domainContext.Set <Contact>().Add(createdContact);

            return(newContact);
        }
        public override void Add(User user)
        {
            userValidator.Validate(user);
            user.Id = idGenerator.Generate();
            UserRepository.Set(user);

            OnUserAdded(user);
        }
Example #19
0
        public Task AddAsync(Workflow value, CancellationToken cancellationToken)
        {
            value.Metadata.Id = idGenerator.Generate();
            value.CreatedAt   = clock.GetCurrentInstant();

            Workflows.Add(value);
            return(Task.CompletedTask);
        }
Example #20
0
        public void AddEntry(string workflowInstanceId, string activityId, string activityType, string eventName, string?message, string?tenantId, string?source, JObject?data)
        {
            var id        = _idGenerator.Generate();
            var timeStamp = _clock.GetCurrentInstant();
            var record    = new WorkflowExecutionLogRecord(id, tenantId, workflowInstanceId, activityId, activityType, timeStamp, eventName, message, source, data);

            _records.Add(record);
        }
Example #21
0
        public async Task <Workflow> DeriveAsync(Workflow parent, CancellationToken cancellationToken)
        {
            var child = await CloneAsync(parent, cancellationToken);

            child.Metadata.ParentId = parent.Metadata.Id;
            child.Metadata.Id       = idGenerator.Generate();
            return(child);
        }
Example #22
0
        private WebhookDefinition Initialize(WebhookDefinition webhookDefinition)
        {
            if (string.IsNullOrWhiteSpace(webhookDefinition.Id))
            {
                webhookDefinition.Id = _idGenerator.Generate();
            }

            return(webhookDefinition);
        }
Example #23
0
        public async Task StartMonitoring(StartMonitoringModel startMonitoringModel)
        {
            var newId = _idGenerator.Generate();
            await _siteStorage.AddSiteInfo(newId, startMonitoringModel.Uri, startMonitoringModel.RefreshTimeInSeconds);

            await _trackingTimer.Start(newId, startMonitoringModel.Uri, startMonitoringModel.RefreshTimeInSeconds);

            await _clientNotifier.UpdateSitesInfo();
        }
        private static Dictionary <string, Country> LoadCountries(IIdGenerator idGenerator)
        {
            var scotland = new Country {
                Id = idGenerator.Generate(), Name = "Scotland"
            };

            return(new Dictionary <string, Country>
            {
                { DobihCodeForScotland, new Country {
                      Id = idGenerator.Generate(), Name = "Scotland"
                  } },
                //{ DobihCodeForEngland, new Country {Id = idGenerator.Generate(), Name = "England"} },
                //{ DobihCodeForWales, new Country {Id = idGenerator.Generate(), Name = "Wales"} },
                //{ DobihCodeForIreland, new Country {Id = idGenerator.Generate(), Name = "Ireland"} },
                //{ DobihCodeForChannelIslands, new Country {Id = idGenerator.Generate(), Name = "Channel Islands"} },
                //{ DobihCodeForIsleOfMan, new Country {Id = idGenerator.Generate(), Name = "Isle of Man"} }
            });
        }
        private WorkflowSetting Initialize(WorkflowSetting workflowSetting)
        {
            if (string.IsNullOrWhiteSpace(workflowSetting.Id))
            {
                workflowSetting.Id = _idGenerator.Generate();
            }

            return(workflowSetting);
        }
Example #26
0
        public async Task AddAsync(Workflow value, CancellationToken cancellationToken)
        {
            var fileExtension = $".{Format.ToLower()}";
            var id            = $"{idGenerator.Generate()}{fileExtension}";

            value.Metadata.Id = id;

            await UpdateAsync(value, cancellationToken);
        }
Example #27
0
        private WorkflowDefinition Initialize(WorkflowDefinition workflowDefinition)
        {
            if (string.IsNullOrWhiteSpace(workflowDefinition.Id))
            {
                workflowDefinition.Id = _idGenerator.Generate();
            }

            if (workflowDefinition.Version == 0)
            {
                workflowDefinition.Version = 1;
            }

            if (string.IsNullOrWhiteSpace(workflowDefinition.DefinitionId))
            {
                workflowDefinition.DefinitionId = _idGenerator.Generate();
            }

            return(workflowDefinition);
        }
        public async Task <Result <Image, Error> > UploadAsync(Name galleryName, byte[] data, Option <byte[]> meta)
        {
            var imageId = await _imageIdGenerator.Generate().ConfigureAwait(false);

            return(await CreateImageWithThumbnails(galleryName, imageId, 1u, meta, data)
                   .AndThenAsync(async imageAndThumbnails =>
            {
                var result = await _thumbnailRepository.Insert(galleryName, imageAndThumbnails.Thumbnails)
                             .AndThenAsync(_ => _imageRepository.Insert(galleryName, new[] { imageAndThumbnails.Image }));
                return result.MapSuccess(_ => imageAndThumbnails.Image);
            }));
        }
 private static Maps LoadMaps(IIdGenerator idGenerator, IOsFile osFile)
 {
     return(new Maps
     {
         Landranger = osFile
                      .Landranger
                      .Select(x => Build(x, idGenerator.Generate(), MapConstants.Landranger, MapConstants.OneTo50K))
                      .ToList(),
         LandrangerActive = osFile
                            .LandrangerActive
                            .Select(x => Build(x, idGenerator.Generate(), MapConstants.LandrangerActive, MapConstants.OneTo50K))
                            .ToList(),
         Explorer = osFile
                    .Explorer
                    .Select(x => Build(x, idGenerator.Generate(), MapConstants.Explorer, MapConstants.OneTo25K))
                    .ToList(),
         ExplorerActive = osFile
                          .ExplorerActive
                          .Select(x => Build(x, idGenerator.Generate(), MapConstants.ExplorerActive, MapConstants.OneTo25K))
                          .ToList(),
         Discoverer = osFile
                      .Discoverer
                      .Select(x => Build(x, idGenerator.Generate(), MapConstants.Discoverer, MapConstants.OneTo50K))
                      .ToList(),
         Discovery = osFile
                     .Discovery
                     .Select(x => Build(x, idGenerator.Generate(), MapConstants.Discovery, MapConstants.OneTo50K))
                     .ToList()
     });
 }
Example #30
0
        public async Task <IEnumerable <StartableWorkflow> > FindStartableWorkflowsAsync(WorkflowsQuery query, CancellationToken cancellationToken = default)
        {
            var correlationId  = query.CorrelationId ?? _idGenerator.Generate();
            var updatedContext = query with {
                CorrelationId = correlationId
            };

            await using var lockHandle = await AcquireLockAsync(correlationId, cancellationToken);

            var startableWorkflowDefinitions = await CollectStartableWorkflowsInternalAsync(updatedContext, cancellationToken);

            return(await InstantiateStartableWorkflows(startableWorkflowDefinitions, cancellationToken).ToList());
        }