示例#1
0
        public async Task <IActionResult> PostRule(string app, [FromBody] CreateRuleDto request)
        {
            var command = request.ToCommand();

            var response = await InvokeCommandAsync(command);

            return(CreatedAtAction(nameof(GetRules), new { app }, response));
        }
示例#2
0
        public async Task <IActionResult> PostRule(string app, [FromBody] CreateRuleDto request)
        {
            var context = await CommandBus.PublishAsync(request.ToCommand());

            var result   = context.Result <EntityCreatedResult <Guid> >();
            var response = EntityCreatedDto.FromResult(result);

            return(CreatedAtAction(nameof(GetRules), new { app }, response));
        }
示例#3
0
        public async Task <IActionResult> Simulate(string app, [FromBody] CreateRuleDto request)
        {
            var rule = request.ToRule();

            var simulation = await ruleRunnerService.SimulateAsync(App.NamedId(), DomainId.Empty, rule, HttpContext.RequestAborted);

            var response = SimulatedRuleEventsDto.FromDomain(simulation);

            return(Ok(response));
        }
示例#4
0
        public async Task <IActionResult> Add([FromRoute] Guid tenantId, [FromBody] CreateRuleDto createRuleDto)
        {
            RuleResultDto createRuleResultDto = await this.ruleService.Add(tenantId, createRuleDto);

            if (createRuleResultDto.AffectedRule != null)
            {
                return(this.Ok(createRuleResultDto.AffectedRule));
            }

            return(this.BadRequest(createRuleResultDto.ErrorMessages));
        }
示例#5
0
        public async Task <RuleResultDto> Add(Guid tenantId, CreateRuleDto createRuleDto)
        {
            CreateRule createRule = this.createRuleConversionProfile.Convert(tenantId, createRuleDto);

            RuleResult ruleResult = await this.createRuleService.CreateRule(createRule);

            return(new RuleResultDto
            {
                AffectedRule = ruleResult.AffectedRule != null?this.ConvertToDto(ruleResult.AffectedRule) : null,
                                   ErrorMessages = ruleResult.ErrorMessages.Select(m => new { m.Code, m.Message })
            });
        }
示例#6
0
        public async Task <IActionResult> PostRule(string app, [FromBody] CreateRuleDto request)
        {
            var command = request.ToCommand();

            var context = await CommandBus.PublishAsync(command);

            var result   = context.Result <EntityCreatedResult <Guid> >();
            var response = new EntityCreatedDto {
                Id = result.IdOrValue.ToString(), Version = result.Version
            };

            return(CreatedAtAction(nameof(GetRules), new { app }, response));
        }
 public CreateRule Convert(Guid tenantId, CreateRuleDto createRuleDto)
 {
     return(new CreateRule
     {
         ContentTypeCode = createRuleDto.ContentTypeCode,
         DateBegin = createRuleDto.DateBegin,
         DateEnd = createRuleDto.DateEnd,
         Name = createRuleDto.Name,
         Priority = createRuleDto.Priority,
         RootCondition = createRuleDto.RootCondition != null?this.conditionNodeConversionProfile.Convert(createRuleDto.RootCondition) : null,
                             TenantId = tenantId
     });
 }
示例#8
0
        public static CreateRule ToCommand(this CreateRuleDto dto)
        {
            var command = new CreateRule();

            if (dto.Action != null)
            {
                command.Action = dto.Action.ToAction();
            }

            if (dto.Trigger != null)
            {
                command.Trigger = dto.Trigger.ToTrigger();
            }

            return(command);
        }