コード例 #1
0
ファイル: LoanService.cs プロジェクト: TeamInterject/BillChop
        public async Task <IList <Loan> > GetReceivedLoansAsync(Guid loaneeId, Guid?groupId, DateTime?startTime, DateTime?endTime)
        {
            var filterInfo = new LoanFilterInfo()
            {
                LoaneeId  = loaneeId,
                GroupId   = groupId,
                StartTime = startTime,
                EndTime   = endTime,
            };

            return(await GetFilteredLoansAsync(filterInfo));
        }
コード例 #2
0
        private Task <IList <Loan> > GetLoansBetweenUsers(Guid loanerId, Guid loaneeId, Guid?groupContextId)
        {
            var filterData = new LoanFilterInfo()
            {
                LoaneeId = loaneeId,
                LoanerId = loanerId,
                GroupId  = groupContextId,
            };

            var dbFilter = loanDbFilterFactory.Create(filterData);

            return(loanRepository.GetAllAsync(dbFilter));
        }
コード例 #3
0
        public void Create_WhenFilterInfoIsPassed_ShouldReturnLoanDbFilter()
        {
            //Arrange
            var loanDbFilterFactory = new LoanDbFilterFactory();
            var filterInfo          = new LoanFilterInfo
            {
                LoanerId  = Guid.NewGuid(),
                GroupId   = Guid.NewGuid(),
                StartTime = DateTime.Now.AddMilliseconds(-1000),
                EndTime   = DateTime.Now.AddMilliseconds(1000),
                LoaneeId  = Guid.NewGuid(),
            };

            //Act
            var result = loanDbFilterFactory.Create(filterInfo);

            //Assert
            result.GetType().ShouldBe(typeof(LoanDbFilter));
        }
コード例 #4
0
        public void LoanDbFilter_WhenThereAreLoansCreatedBeforeCertainTime_ShouldReturnAllLoansCreatedBeforeThatTime()
        {
            //Arrange
            var sutBuilder = new LoanDbFilterSutBuilder();
            var loans      = sutBuilder.Setup();
            var filterInfo = new LoanFilterInfo
            {
                EndTime = DateTime.Now.AddMilliseconds(1000),
            };
            var filter = new LoanDbFilter(filterInfo);

            var queryableLoans = loans.AsQueryable();

            loans = loans.Where(u => u.Bill.CreationTime < filterInfo.EndTime).ToList();

            //Act
            var result = filter.ApplyFilter(queryableLoans).ToList();

            //Assert
            result.ShouldBe(loans);
        }
コード例 #5
0
        public void LoanDbFilter_WhenGroupHasBills_ShouldReturnAllGroupLoans()
        {
            //Arrange
            var sutBuilder = new LoanDbFilterSutBuilder();
            var loans      = sutBuilder.Setup();
            var filterInfo = new LoanFilterInfo
            {
                GroupId = loans[0].Bill.GroupContextId,
            };
            var filter = new LoanDbFilter(filterInfo);

            var queryableLoans = loans.AsQueryable();

            loans = loans.Where(u => u.Bill.GroupContextId == loans[0].Bill.GroupContextId).ToList();

            //Act
            var result = filter.ApplyFilter(queryableLoans).ToList();

            //Assert
            result.ShouldBe(loans);
        }
コード例 #6
0
        public void LoanDbFilter_WhenLoaneeHasRecievedLoans_ShouldReturnOnlyReceivedLoans()
        {
            //Arrange
            var sutBuilder = new LoanDbFilterSutBuilder();
            var loans      = sutBuilder.Setup();
            var filterInfo = new LoanFilterInfo
            {
                LoaneeId = loans[1].LoaneeId,
            };
            var filter = new LoanDbFilter(filterInfo);

            var queryableLoans = loans.AsQueryable();

            loans = loans.Where(u => u.LoaneeId == loans[1].LoaneeId).ToList();

            //Act
            var result = filter.ApplyFilter(queryableLoans).ToList();

            //Assert
            result.ShouldBe(loans);
        }
コード例 #7
0
 public IDbFilter <Loan> Create(LoanFilterInfo loanFilterInfo)
 {
     return(new LoanDbFilter(loanFilterInfo));
 }
コード例 #8
0
ファイル: LoanService.cs プロジェクト: TeamInterject/BillChop
        public Task <IList <Loan> > GetFilteredLoansAsync(LoanFilterInfo loanFilterInfo)
        {
            var filter = loanDbFilterFactory.Create(loanFilterInfo);

            return(loanRepository.GetAllAsync(filter));
        }
コード例 #9
0
        public async Task <ActionResult <IList <ApiLoan> > > GetLoans([FromQuery] LoanFilterInfo loanFilterInfo)
        {
            var loans = await loanService.GetFilteredLoansAsync(loanFilterInfo);

            return(mapper.Map <List <ApiLoan> >(loans));
        }