public async Task <IActionResult> Index(string sortColumn, string sortDirection, int pageSize = 0, int pageNumber = 0, string filters = null) { var scope = AuthenticationService.GetScope(User); var queryOptions = new CommissionQueryOptions(scope, sortColumn, sortDirection, pageSize, pageNumber, filters); var commissions = await CommissionService.GetCommissions(queryOptions); return(Ok(commissions)); }
public async Task GetCommissions() { var options = TestHelper.GetDbContext("GetCommissions"); var user1 = TestHelper.InsertUserDetailed(options); var user2 = TestHelper.InsertUserDetailed(options, user1.Organisation); var client1 = TestHelper.InsertClient(options, user1.Organisation); var client2 = TestHelper.InsertClient(options, user1.Organisation); var user3 = TestHelper.InsertUserDetailed(options); var client3 = TestHelper.InsertClient(options, user3.Organisation); var statement1 = TestHelper.InsertCommissionStatement(options, user1.Organisation); var statement2 = TestHelper.InsertCommissionStatement(options, user1.Organisation); var policy1 = new PolicyEntity { Id = Guid.NewGuid(), Number = Guid.NewGuid().ToString(), CompanyId = statement1.CompanyId, ClientId = client1.Client.Id, UserId = user1.User.Id }; var policy2 = new PolicyEntity { Id = Guid.NewGuid(), CompanyId = statement1.CompanyId, ClientId = client2.Client.Id, UserId = user2.User.Id }; var policy3 = new PolicyEntity { Id = Guid.NewGuid(), CompanyId = statement1.CompanyId, ClientId = client3.Client.Id, UserId = user3.User.Id }; //Given var commission1 = new CommissionEntity { Id = Guid.NewGuid(), PolicyId = policy1.Id, CommissionTypeId = Guid.NewGuid(), AmountIncludingVAT = 100, VAT = 10, CommissionStatementId = statement1.Id, UserId = user1.User.Id, }; var commission2 = new CommissionEntity { Id = Guid.NewGuid(), PolicyId = policy2.Id, CommissionTypeId = Guid.NewGuid(), AmountIncludingVAT = 200, VAT = 20, CommissionStatementId = statement1.Id, UserId = user2.User.Id, }; var commission3 = new CommissionEntity { Id = Guid.NewGuid(), PolicyId = policy2.Id, CommissionTypeId = Guid.NewGuid(), AmountIncludingVAT = 300, VAT = 30, CommissionStatementId = statement1.Id, UserId = user2.User.Id, }; var commission4 = new CommissionEntity { Id = Guid.NewGuid(), PolicyId = policy3.Id, CommissionTypeId = Guid.NewGuid(), AmountIncludingVAT = 40, VAT = 400, CommissionStatementId = statement2.Id, UserId = user3.User.Id, }; using (var context = new DataContext(options)) { context.Policy.Add(policy1); context.Policy.Add(policy2); context.Policy.Add(policy3); context.Commission.Add(commission1); context.Commission.Add(commission2); context.Commission.Add(commission3); context.Commission.Add(commission4); context.SaveChanges(); } using (var context = new DataContext(options)) { var auditService = new AuditServiceMock(); var service = new CommissionService(context, auditService); //When var scope = TestHelper.GetScopeOptions(user1); var queryOptions = new CommissionQueryOptions(scope, "", "", 0, 0); var commissions = await service.GetCommissions(queryOptions); //Then Assert.Equal(3, commissions.TotalItems); Assert.Equal(3, commissions.Items.Count()); Assert.Equal(600, commissions.SumAmountIncludingVAT); Assert.Equal(60, commissions.SumVAT); var items = commissions.Items.ToList(); var actual = items[0]; Assert.Equal(commission1.Id, actual.Id); Assert.Equal(commission1.PolicyId, actual.PolicyId); Assert.Equal(commission1.CommissionTypeId, actual.CommissionTypeId); Assert.Equal(commission1.AmountIncludingVAT, actual.AmountIncludingVAT); Assert.Equal(commission1.VAT, actual.VAT); Assert.Equal(commission1.CommissionStatementId, actual.CommissionStatementId); Assert.Equal(policy1.Number, actual.PolicyNumber); Assert.Equal(statement1.Date, actual.CommissionStatementDate); Assert.Equal(client1.Client.LastName, actual.PolicyClientLastName); Assert.Equal(client1.Client.Initials, actual.PolicyClientInitials); Assert.Equal(client1.Client.DateOfBirth, actual.PolicyClientDateOfBirth); Assert.Equal(statement1.CompanyId, actual.PolicyCompanyId); actual = items[1]; Assert.Equal(commission2.Id, actual.Id); actual = items[2]; Assert.Equal(commission3.Id, actual.Id); //Check scope scope = TestHelper.GetScopeOptions(user1, Scope.User); queryOptions = new CommissionQueryOptions(scope, "", "", 0, 0); commissions = await service.GetCommissions(queryOptions); Assert.Single(commissions.Items); actual = commissions.Items.First(); Assert.Equal(commission1.Id, actual.Id); } }