public async Task <IActionResult> Update(Guid commissionSplitRuleId, [FromBody] CommissionSplitRule commissionSplitRule) { commissionSplitRule.Id = commissionSplitRuleId; var scope = AuthenticationService.GetScope(User); var result = await CommissionSplitService.UpdateCommissionSplitRule(scope, commissionSplitRule); if (!result.Success) { return(BadRequest(result.ValidationFailures)); } return(Ok(result)); }
public async Task UpdateCommissionSplitRule() { var options = TestHelper.GetDbContext("UpdateCommissionSplitRule"); var user1 = TestHelper.InsertUserDetailed(options); var user2 = TestHelper.InsertUserDetailed(options, user1.Organisation); var user3 = TestHelper.InsertUserDetailed(options); var csr1 = new CommissionSplitRuleEntity { Id = Guid.NewGuid(), UserId = user1.User.Id, Name = "Com Split Rule 1", IsDefault = true, Split = new List <CommissionSplit>() { new CommissionSplit() { UserId = user1.User.Id, Percentage = 100 } } }; var csr2 = new CommissionSplitRuleEntity { Id = Guid.NewGuid(), UserId = user2.User.Id, Name = "Com Split Rule 2", IsDefault = false, Split = new List <CommissionSplit>() { new CommissionSplit() { UserId = user2.User.Id, Percentage = 100 } } }; var csr3 = new CommissionSplitRuleEntity { Id = Guid.NewGuid(), UserId = user3.User.Id, Name = "Com Split Rule 3", IsDefault = true, Split = new List <CommissionSplit>() { new CommissionSplit() { UserId = user3.User.Id, Percentage = 100 } } }; using (var context = new DataContext(options)) { context.CommissionSplitRule.Add(csr2); context.CommissionSplitRule.Add(csr1); context.CommissionSplitRule.Add(csr3); context.SaveChanges(); } using (var context = new DataContext(options)) { var csr2Updated = new CommissionSplitRule { Id = csr2.Id, UserId = user1.User.Id, Name = "Com Split Rule 2 updated", IsDefault = true, Split = new List <CommissionSplit>() { new CommissionSplit() { UserId = user1.User.Id, Percentage = 50 }, new CommissionSplit() { UserId = user2.User.Id, Percentage = 50 } } }; var auditService = new AuditServiceMock(); var service = new CommissionSplitService(context, auditService); //When var scope = TestHelper.GetScopeOptions(user1); var result = await service.UpdateCommissionSplitRule(scope, csr2Updated); //Then Assert.True(result.Success); var actual = await context.CommissionSplitRule.FindAsync(csr2Updated.Id); Assert.Equal(csr2Updated.Id, actual.Id); Assert.Equal(csr2Updated.Name, actual.Name); Assert.Equal(csr2Updated.UserId, actual.UserId); Assert.Equal(csr2Updated.IsDefault, actual.IsDefault); Assert.Equal(csr2Updated.Split, actual.Split); //Check is default clear from csr1 actual = await context.CommissionSplitRule.FindAsync(csr1.Id); Assert.False(actual.IsDefault); //Out of scope scope = TestHelper.GetScopeOptions(user3, Scope.User); result = await service.UpdateCommissionSplitRule(scope, csr2Updated); Assert.False(result.Success); Assert.Equal("'User' does not exist.", result.ValidationFailures.First().ErrorMessage); } }