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 })); } }
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 }); }