コード例 #1
0
        public IActionResult GetInvestmentProgramRequests([FromBody] InvestmentProgramRequestsFilter filter)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ErrorResult.GetResult(ModelState)));
            }

            var errors = investorValidator.ValidateInvestor(CurrentUser);

            if (errors.Any())
            {
                return(BadRequest(ErrorResult.GetResult(errors, ErrorCodes.ValidationError)));
            }

            var requests = trustManagementService.GetInvestmentProgramRequests(filter, CurrentUser.Id);

            if (!requests.IsSuccess)
            {
                return(BadRequest(ErrorResult.GetResult(requests)));
            }

            return(Ok(new InvestmentProgramRequests
            {
                Requests = requests.Data.Item1,
                Total = requests.Data.Item2
            }));
        }
コード例 #2
0
        public OperationResult <(List <InvestmentProgramRequest>, int)> GetInvestmentProgramRequests(InvestmentProgramRequestsFilter filter, Guid userId)
        {
            return(InvokeOperations.InvokeOperation(() =>
            {
                var query = context.InvestmentRequests
                            .Where(x => x.InvestmentProgramtId == filter.InvestmentProgramId &&
                                   x.UserId == userId);

                if (filter.Status.HasValue)
                {
                    query = query.Where(x => x.Status == filter.Status.Value);
                }
                if (filter.Type.HasValue)
                {
                    query = query.Where(x => x.Type == filter.Type.Value);
                }
                if (filter.DateFrom.HasValue)
                {
                    query = query.Where(x => x.Date >= filter.DateFrom.Value);
                }
                if (filter.DateTo.HasValue)
                {
                    query = query.Where(x => x.Date < filter.DateTo.Value);
                }

                var count = query.Count();

                if (filter.Skip.HasValue)
                {
                    query = query.Skip(filter.Skip.Value);
                }
                if (filter.Take.HasValue)
                {
                    query = query.Take(filter.Take.Value);
                }

                var programs = query.Select(x => x.ToInvestmentRequest()).ToList();

                return (programs, count);
            }));
        }