Ejemplo n.º 1
0
        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());
            }
        }
Ejemplo n.º 2
0
        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));
        }