public override MatchResult Match(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult)
        {
            matchResult.Commitments = commitments.ToArray();

            var commitmentsToMatch = commitments.Where(c => priceEpisode.NegotiatedPrice.HasValue &&
                                                       (long)c.NegotiatedPrice == priceEpisode.NegotiatedPrice.Value).ToList();

            if (!commitmentsToMatch.Any())
            {
                matchResult.ErrorCodes.Add(DataLockErrorCodes.MismatchingPrice);
            }

            else
            {
                matchResult.Commitments = commitmentsToMatch.ToArray();
            }

            return(ExecuteNextHandler(commitments, priceEpisode, dasAccounts, matchResult));
        }
Exemple #2
0
        public override MatchResult Match(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult)
        {
            matchResult.Commitments = commitments.ToArray();
            if (priceEpisode.StandardCode.HasValue)
            {
                var commitmentsToMatch = commitments.Where(c => c.StandardCode.HasValue &&
                                                           c.StandardCode.Value == priceEpisode.StandardCode.Value).ToList();

                if (!commitmentsToMatch.Any())
                {
                    matchResult.ErrorCodes.Add(DataLockErrorCodes.MismatchingStandard);
                }
                else
                {
                    matchResult.Commitments = commitmentsToMatch.ToArray();
                }
            }

            return(ExecuteNextHandler(commitments, priceEpisode, dasAccounts, matchResult));
        }
        public override MatchResult Match(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult)
        {
            var commitment    = commitments.FirstOrDefault();
            var accountsMatch = dasAccounts.Where(a => commitments.Any(c => c.Id == a.Id && a.IsLevyPayer == true));

            if (!accountsMatch.Any())
            {
                matchResult.ErrorCodes.Add(DataLockErrorCodes.NotLevyPayer);
            }


            return(ExecuteNextHandler(commitments, priceEpisode, dasAccounts, matchResult));
        }
Exemple #4
0
        public override MatchResult Match(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult)
        {
            var distinctCommitmentIds = commitments
                                        .Where(x => x.PaymentStatus != (int)PaymentStatus.Cancelled &&
                                               x.PaymentStatus != (int)PaymentStatus.Deleted &&
                                               x.PaymentStatus != (int)PaymentStatus.Completed)
                                        .Select(c => new { Id = c.Id })
                                        .Distinct()
                                        .ToArray();

            if (distinctCommitmentIds.Length > 1)
            {
                matchResult.ErrorCodes.Add(DataLockErrorCodes.MultipleMatches);
            }

            matchResult.Commitments = commitments.ToArray();

            return(ExecuteNextHandler(commitments, priceEpisode, dasAccounts, matchResult));
        }
        public override MatchResult Match(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult)
        {
            var commitmentsToMatch = commitments.Where(c => priceEpisode.StartDate >= c.StartDate &&
                                                       priceEpisode.StartDate < c.EndDate &&
                                                       priceEpisode.StartDate >= c.EffectiveFrom &&
                                                       (c.EffectiveTo == null || priceEpisode.StartDate <= c.EffectiveTo)).ToList();

            if (!commitmentsToMatch.Any())
            {
                matchResult.ErrorCodes.Add(DataLockErrorCodes.EarlierStartDate);
                matchResult.Commitments = commitments.ToArray();
            }
            else
            {
                matchResult.Commitments = commitmentsToMatch.ToArray();
            }

            return(ExecuteNextHandler(commitmentsToMatch, priceEpisode, dasAccounts, matchResult));
        }
        public override MatchResult Match(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult)
        {
            var commitmentsToMatch = commitments.Where(c => c.Ukprn == priceEpisode.Ukprn).ToList();

            if (!commitmentsToMatch.Any())
            {
                matchResult.ErrorCodes.Add(DataLockErrorCodes.MismatchingUkprn);
                matchResult.Commitments = commitments.ToArray();
            }
            else
            {
                matchResult.Commitments = commitmentsToMatch.ToArray();
            }

            return(ExecuteNextHandler(commitmentsToMatch, priceEpisode, dasAccounts, matchResult));
        }
 protected MatchResult ExecuteNextHandler(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult)
 {
     return(NextMatchHandler == null || (StopOnError && matchResult.ErrorCodes.Count > 0)
         ? matchResult
         : NextMatchHandler.Match(commitments, priceEpisode, dasAccounts, matchResult));
 }
 public abstract MatchResult Match(List <Commitment> commitments, Earning priceEpisode, List <Account> dasAccounts, MatchResult matchResult);