Beispiel #1
0
        public async Task <IHttpActionResult> PutAsync(int id, [FromBody] RuleItemDto model, CancellationToken cancellationToken)
        {
            if (model == null)
            {
                return(BadRequest());
            }
            var rule = ModelMapper.ToRuleItem(model);

            rule.Id = id;
            var validationResult = await _ruleManager.UpdateAsync(rule, cancellationToken);

            if (validationResult.Succeeded == false)
            {
                return(this.ValidationContent(validationResult));
            }
            return(new RuleItemContentResult(rule, this));
        }
Beispiel #2
0
        /// <summary>
        /// Returns with a <see cref="RuleItem" /> domain object.
        /// </summary>
        /// <param name="ruleDto">The data transfer object (DTO) to map to a domain object.</param>
        /// <returns>
        /// The <see cref="RuleItem" />.
        /// </returns>
        public static RuleItem ToRuleItem(RuleItemDto ruleDto)
        {
            var rule = new RuleItem();

            if (ruleDto.Conditions != null)
            {
                foreach (var condition in ruleDto.Conditions)
                {
                    rule.Conditions.Add(condition);
                }
            }
            if (ruleDto.Actions != null)
            {
                foreach (var action in ruleDto.Actions)
                {
                    rule.Actions.Add(action);
                }
            }
            return(rule);
        }
Beispiel #3
0
        public async Task <IHttpActionResult> PostAsync([FromBody] RuleItemDto model, CancellationToken cancellationToken)
        {
            if (model == null)
            {
                return(BadRequest());
            }
            var user = await _userManager.FindByIdAsync(ApiSecurity.CurrentUserId, cancellationToken);

            if (user == null)
            {
                return(StatusCode(HttpStatusCode.Forbidden));
            }
            var rule             = ModelMapper.ToRuleItem(model);
            var validationResult = await _ruleManager.CreateAsync(rule, user, cancellationToken);

            if (validationResult.Succeeded == false)
            {
                return(this.ValidationContent(validationResult));
            }
            return(new RuleItemContentResult(HttpStatusCode.Created, rule, this));
        }