Ejemplo n.º 1
0
        public async Task <IActionResult> GetDebtChangesById([FromQuery] ChangeSearchDTO model)
        {
            try
            {
                var data = await _debtService.GetDebtChangesByIdAsync(model);

                return(Ok(data));
            }
            catch (UnauthorizedAccessException)
            {
                return(Unauthorized());
            }
            catch (Exception e)
            {
                return(BadRequest(new { e.Message }));
            }
        }
Ejemplo n.º 2
0
        public async Task <ChangesReturnDTO> GetDebtChangesByIdAsync(ChangeSearchDTO model)
        {
            var idClaim = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;

            if (!long.TryParse(idClaim, out var ownerId))
            {
                throw new UnauthorizedAccessException();
            }

            var changes = (await _changeRepository.GetAllAsync(change =>
                                                               change.ChangedDebt.Id == model.Id, change => change.FieldChanges))
                          .OrderByDescending(change => change.Created);

            var changesCount = changes.Count();

            var changesTaken = await changes.Skip(model.Offset).Take(model.Take)
                               .Select(change => change.ToChangeReturnDTO()).ToListAsync();

            return(new ChangesReturnDTO
            {
                Changes = changesTaken,
                HasMore = model.Offset + model.Take < changesCount
            });
        }