예제 #1
0
        private async Task <IActionResult> SharedAdd(CreateHumanTaskInstanceCommand parameter, CancellationToken token)
        {
            try
            {
                parameter.Claims = User.GetClaims();
                var result = await _mediator.Send(parameter, token);

                return(new CreatedResult(string.Empty, result));
            }
            catch (UnknownHumanTaskDefException ex)
            {
                return(this.ToError(new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("bad_request", ex.Message)
                }, HttpStatusCode.BadRequest, Request));
            }
            catch (NotAuthorizedException ex)
            {
                return(this.ToError(new List <KeyValuePair <string, string> >
                {
                    new KeyValuePair <string, string>("bad_request", ex.Message)
                }, HttpStatusCode.Unauthorized, Request));
            }
            catch (BadOperationExceptions ex)
            {
                var valErrors = ex.ValidationErrors.Select(_ => new KeyValuePair <string, string>("bad_request", _)).ToList();
                return(this.ToError(valErrors, HttpStatusCode.BadRequest, Request));
            }
        }
예제 #2
0
 public Task <IActionResult> AddMe([FromBody] CreateHumanTaskInstanceCommand parameter, CancellationToken token)
 {
     parameter.Claims         = User.GetClaims();
     parameter.NameIdentifier = parameter.Claims.GetUserNameIdentifier();
     return(SharedAdd(parameter, token));
 }
예제 #3
0
 public Task <IActionResult> Add([FromBody] CreateHumanTaskInstanceCommand parameter, CancellationToken token)
 {
     parameter.IgnorePermissions = true;
     return(SharedAdd(parameter, token));
 }