public async Task <Result> UpdateCommissionSplitRulePolicy(ScopeOptions scope, CommissionSplitRulePolicy commissionSplitRulePolicy) { var validator = new CommissionSplitRulePolicyValidator(_context, scope, false); var result = validator.Validate(commissionSplitRulePolicy).GetResult(); if (!result.Success) { return(result); } var entity = await GetCommissionSplitRulePolicyEntityQuery(scope).FirstOrDefaultAsync(b => b.Id == commissionSplitRulePolicy.Id); if (entity == null) { return(new Result()); } var defaultRule = await GetDefaultCommissionSplitRule(scope, commissionSplitRulePolicy.PolicyId.Value); //If this is the default rule, then remove this instance if (defaultRule != null && commissionSplitRulePolicy.CommissionSplitRuleId == defaultRule.Id) { await DeleteCommissionSplitRulePolicy(scope, commissionSplitRulePolicy.Id.Value); return(result); } var commissionSplitRulePolicyEntity = MapModelToEntity(commissionSplitRulePolicy, entity); await _context.SaveChangesAsync(); await _auditService.InsertAuditLog(scope, AuditLog.ACTION_UPDATE, "CommissionSplitRulePolicy", entity.Id, commissionSplitRulePolicy); return(result); }
public async Task <Result> InsertCommissionSplitRulePolicy(ScopeOptions scope, CommissionSplitRulePolicy commissionSplitRulePolicy) { var validator = new CommissionSplitRulePolicyValidator(_context, scope, true); var result = validator.Validate(commissionSplitRulePolicy).GetResult(); if (!result.Success) { return(result); } var defaultRule = await GetDefaultCommissionSplitRule(scope, commissionSplitRulePolicy.PolicyId.Value); //If the rule is already the default dont add it if (defaultRule != null && commissionSplitRulePolicy.CommissionSplitRuleId == defaultRule.Id) { return(result); } var entity = MapModelToEntity(commissionSplitRulePolicy); await _context.CommissionSplitRulePolicy.AddAsync(entity); await _context.SaveChangesAsync(); commissionSplitRulePolicy.Id = entity.Id; result.Tag = commissionSplitRulePolicy; await _auditService.InsertAuditLog(scope, AuditLog.ACTION_INSERT, "CommissionSplitRulePolicy", entity.Id, commissionSplitRulePolicy); return(result); }