public long CreateJob(int groupKey, List <JobCriteria> criteria, string submittedBy)
        {
            _logger.Trace($"Create group request received for groupKey {groupKey} with criteria {criteria}");

            var groupEntity = _entityFactory.CreateGroupEntity();

            groupEntity.GroupKey    = groupKey;
            groupEntity.Criteria    = _ser.SerializeToString(criteria);
            groupEntity.IsGenerated = false;
            groupEntity.IsStopped   = false;
            groupEntity.IsFinished  = false;
            groupEntity.SubmittedBy = submittedBy;
            groupEntity.State       = CompletionStatus.Pending.Name;
            groupEntity.IsManual    = criteria.First().IsManual;

            var entity = _stateManager.CreateGroupEntity(groupEntity);

            //Robustness.Instance.SafeCall(()=> _watchDogPublisher.PublishMessage(new ProcessGroupAddedMessage{ GroupId = entity.Id}));

            _eventAggregator.PublishAsync(this, Constants.EventProcessGroupAdded, entity.Id.ToString());

            _logger.Trace($"Create group request complete for groupKey {groupKey} with criteria {criteria}");

            return(entity.Id);
        }
Beispiel #2
0
        private IReadWritableGroupEntity CreateGroupEntity(int key, List <JobCriteria> criteria, bool isManual,
                                                           string triggeredBy, List <int> processKeys)
        {
            var serializer = _serializersFactory.GetSerializer <JobCriteria>();
            var crit       = serializer.SerializeToString(criteria);

            IReadWritableGroupEntity entity = _entityFactory.CreateGroupEntity();

            //IGroupEntity entity =  _entityFactory.CreateGroupEntity(key, crit, isManual, false, triggeredBy, TaskCompletionStatus.Pending.Name);
            IWritableGroupEntity entityW = entity;

            entityW.Criteria       = crit;
            entityW.GroupKey       = key;
            entityW.IsManual       = isManual;
            entityW.IsResubmission = false;
            entityW.SubmittedBy    = triggeredBy;
            entityW.State          = CompletionStatus.Pending.Name;
            if (processKeys != null)
            {
                entityW.Payload = serializer.SerializeToString(processKeys);
            }
            //IGroupEntity g = entity;

            var entity2 = _stateManager.CreateGroupEntity(entity);

            return(entity2);
        }