コード例 #1
0
        public async Task<Result<ListResult<AccountResponse>>> Handle(GetAllAccountsRequest request, CancellationToken cancellationToken)
        {
            try
            {
                var user = await _userRepository.GetUserByEmail(request.RequestEmail);

                if (user.Role.Name != "Admin" && !IsAccountAdmin(user.Id))
                {
                    return Result<ListResult<AccountResponse>>.AccessDenied("No access!");
                }

                var result = await _accountRepository.GetList(request.PaginationEntry, request.Sorting, request.Filtering);

                if (user.Role.Name != "Admin")
                {
                    var records = result.Records;
                    var newRecords = records.ToList().Where(x => x.Admins.Select(x => x.UserId).Contains(user.Id));
                    result = new ListResult<Account>(newRecords, newRecords.Count());
                }

                var response = CreateListResponse(result.Records.ToList());

                return Result<ListResult<AccountResponse>>.Ok(response);
            }
            catch (Exception e)
            {
                return Result<ListResult<AccountResponse>>.Failure(e.Message);
            }
        }
コード例 #2
0
        public GetAllAccountsResponse GetAllAccounts(GetAllAccountsRequest request)
        {
            return new GetAllAccountsResponse
                {
                    Accounts = this.documents
                        .Query<AccountSummary, AccountSummaryIndex>()
                        .AsProjection<AccountSummary>()
                        .ToArray(),

                    OpenAccountUri = this.links.Relative(RouteNames.OpenAccount)
                };
        }