public IList <PaymentArchiveItemModel> QueryArchive(PaymentArchiveQuery query) { EnsureIsValid(query); EnsureIsSecure <PaymentArchiveQuery, UserQueryValidator>(query); try { var operationsByUser = DbQuery.For <UserBankOperation>() .FilterBy(x => x.User.Id == query.UserId); var operationIds = _deps.UserBankOperations .Select(operationsByUser, x => x.OperationId) .ToList(); var paymentsQuery = DbQuery.For <PaymentArchiveItemModel>() .FromClientQuery(query) .AndFilterBy(x => operationIds.Contains(x.OperationId)); var payments = _deps.CardPayments .ProjectThenQuery <PaymentArchiveItemModel>(paymentsQuery) .ToList(); return(payments); } catch (Exception ex) { throw new ServiceException("Can't get payments archive.", ex); } }
public IHttpActionResult Query(PaymentArchiveQuery query) { return(Ok(_paymentService.QueryArchive(query))); }