public async Task <ActionResult <EntitiesResponse <Document> > > SignLines([FromBody] List <int> lineIds, [FromQuery] SignArguments args) { var serverTime = DateTimeOffset.UtcNow; var result = await GetService().SignLines(lineIds, args); if (args.ReturnEntities ?? false) { var response = TransformToEntitiesResponse(result, serverTime, cancellation: default); return(Ok(response)); } else { return(Ok()); } }
public async Task <ActionResult <EntitiesResponse <Document> > > SignLines([FromBody] List <int> ids, [FromQuery] SignArguments args) { return(await ControllerUtilities.InvokeActionImpl(async() => { // Parse parameters var selectExp = SelectExpression.Parse(args.Select); var expandExp = ExpandExpression.Parse(args.Expand); var idsArray = ids.ToArray(); // TODO: Check user permissions // await CheckActionPermissions("IsActive", idsArray); // Execute and return using var trx = ControllerUtilities.CreateTransaction(); // TODO: Validate sign var documentIds = await _repo.Lines__Sign( ids, args.ToState, args.ReasonId, args.ReasonDetails, args.OnBehalfOfUserId, args.RoleId, args.SignedAt ?? DateTimeOffset.Now); if (args.ReturnEntities ?? false) { var response = await GetByIdListAsync(documentIds.ToArray(), expandExp, selectExp); trx.Complete(); return Ok(response); } else { trx.Complete(); return Ok(); } } , _logger)); }