コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }