public static HumanTaskDefResult ToDto(HumanTaskDefinitionAggregate humanTaskDef)
 {
     return(new HumanTaskDefResult
     {
         ActualOwnerRequired = humanTaskDef.ActualOwnerRequired,
         Id = humanTaskDef.AggregateId,
         UpdateDateTime = humanTaskDef.UpdateDateTime,
         CreateDateTime = humanTaskDef.CreateDateTime,
         Name = humanTaskDef.Name,
         NbInstances = humanTaskDef.NbInstances,
         Priority = humanTaskDef.Priority,
         Version = humanTaskDef.Version,
         SearchBy = humanTaskDef.SearchBy,
         Outcome = humanTaskDef.Outcome,
         Rendering = string.IsNullOrWhiteSpace(humanTaskDef.Rendering) ? new JObject()
         {
             { "type", "container" },
             { "children", new JArray() }
         } : JObject.Parse(humanTaskDef.Rendering),
         OperationParameters = humanTaskDef.OperationParameters.Select(_ => ParameterResult.ToDto(_)).ToList(),
         PeopleAssignments = humanTaskDef.PeopleAssignments.Select(_ => PeopleAssignmentDefinitionResult.ToDto(_)).ToList(),
         PresentationElements = humanTaskDef.PresentationElements.Select(_ => PresentationElementDefinitionResult.ToDto(_)).ToList(),
         DeadLines = humanTaskDef.DeadLines.Select(_ => HumanTaskDefinitionDeadLineResult.ToDto(_)).ToList(),
         PresentationParameters = humanTaskDef.PresentationParameters.Select(_ => PresentationParameterResult.ToDto(_)).ToList()
     });
 }
        public async Task <HumanTaskDefResult> Handle(AddHumanTaskDefCommand request, CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(request.Name))
            {
                _logger.LogError("the parameter 'name' is missing");
                throw new BadRequestException(string.Format(Global.MissingParameter, "name"));
            }

            var result = await _humanTaskDefQueryRepository.Search(new SearchHumanTaskDefParameter
            {
                Name = request.Name
            }, cancellationToken);

            if (result != null && result.Content.Count() > 0)
            {
                _logger.LogError($"the human task '{request.Name}' already exists");
                throw new BadRequestException(string.Format(Global.HumanTaskDefExists, request.Name));
            }

            var res = HumanTaskDefinitionAggregate.New(request.Name);
            await _humanTaskDefCommandRepository.Add(res, cancellationToken);

            await _humanTaskDefCommandRepository.SaveChanges(cancellationToken);

            _logger.LogInformation($"the human task definition '{request.Name}' has been added");
            return(HumanTaskDefResult.ToDto(res));
        }
 private HumanTaskDefBuilder(string name)
 {
     _humanTaskDef = new HumanTaskDefinitionAggregate
     {
         Name        = name,
         AggregateId = Guid.NewGuid().ToString()
     };
 }
        public Task <bool> Update(HumanTaskDefinitionAggregate humanTaskDef, CancellationToken token)
        {
            var r = _humanTaskDefs.First(_ => _.AggregateId == humanTaskDef.AggregateId);

            _humanTaskDefs.Remove(r);
            _humanTaskDefs.Add((HumanTaskDefinitionAggregate)humanTaskDef.Clone());
            return(Task.FromResult(true));
        }
        private static int EnrichPriority(HumanTaskDefinitionAggregate humanTaskDef, CreateHumanTaskInstanceCommand request)
        {
            int priority = humanTaskDef.Priority;

            if (request.Priority != null)
            {
                priority = request.Priority.Value;
            }

            return(priority);
        }
        private static ICollection <PeopleAssignmentDefinition> EnrichAssignment(HumanTaskDefinitionAggregate humanTaskDef, CreateHumanTaskInstanceCommand request)
        {
            var result = humanTaskDef.PeopleAssignments.ToList();

            if (request.PeopleAssignments != null)
            {
                foreach (var peopleAssignment in request.PeopleAssignments)
                {
                    result.Add(new PeopleAssignmentDefinition
                    {
                        Type  = peopleAssignment.Type,
                        Usage = peopleAssignment.Usage,
                        Value = peopleAssignment.Value
                    });
                }
            }

            return(result);
        }
 public Task <bool> Update(HumanTaskDefinitionAggregate humanTaskDef, CancellationToken token)
 {
     _humanTaskDBContext.Entry(humanTaskDef).State = EntityState.Modified;
     return(Task.FromResult(true));
 }
 public Task <bool> Add(HumanTaskDefinitionAggregate humanTaskDef, CancellationToken token)
 {
     _humanTaskDBContext.HumanTaskDefinitions.Add(humanTaskDef);
     return(Task.FromResult(true));
 }