public void Run(CustomerBet customerBet) { foreach (var bet in customerBet.Bet) { if (bet.Win >= 1000) bet.BigWin = true; } }
public void Run(CustomerBet customerBet) { foreach (var bet in customerBet.Bet) { if (bet.Stake >= 30 * customerBet.AverageBettingStake) bet.HighlyUnusual = true; } }
public void Init() { m_CustomerSettledBets = new List<CustomerBet>(); m_CustomerUnSettledBets = new List<CustomerBet>(); Bet b = new Bet {CustomerId = 10, Win = 1100,Stake =10}; CustomerBet c = new CustomerBet(); c.Bet = new List<Bet>(); c.Bet.Add(b); m_CustomerSettledBets.Add(c); }
public void Run(CustomerBet customerBet) { //Get Winning Bet and Total Bet for each customer var wins = customerBet.Bet.Count(x => x.Win > 0); var totalBets = customerBet.Bet.Count; //Prevent div by zero if (wins > 0 && totalBets > 0) { if((float)((float)wins / (float)totalBets) * 100 >= 60) customerBet.Bet.ToList().ForEach(y=>y.WinningAtUnusalRate = true); } }
public void Init() { m_CustomerSettledBets = new List<CustomerBet>(); m_CustomerUnSettledBets = new List<CustomerBet>(); //Load AllUnique Customers from the bet history var customerIDs = m_repository.GetUniqueCustomerID(); var settledRiskPolicies = new List<IRiskPolicy> { new WinningAtUnusalRatePolicy() }; var undsettledRiskPolicies = new List<IRiskPolicy> { new BigWinRiskPolicy(), new HighlyUnusalStakePolicy(), new UnusalStakePolicy() }; foreach (var customerID in customerIDs) { //Add Settled Bet for the given customer var settledBet = new CustomerBet(); settledBet.Bet = new List<Bet>(m_repository.GetSettledBetForCustomer(customerID)); settledBet.AverageBettingStake = settledBet.Bet.Average(a=>a.Stake); m_CustomerSettledBets.Add(settledBet); //Run Policy on settled Bet settledRiskPolicies.ForEach(policy => policy.Run(settledBet)); //Add Unsettled Bets for the given Customer var unSettledBet = new CustomerBet(); unSettledBet.Bet = new List<Bet>(m_repository.GetUnSettledBetForCustomer(customerID)); unSettledBet.AverageBettingStake = settledBet.AverageBettingStake; m_CustomerUnSettledBets.Add(unSettledBet); //Run policy on unsettled Bet undsettledRiskPolicies.ForEach(policy => policy.Run(unSettledBet)); //Mark all these customer as Risky as they have risky history unSettledBet.Bet.ForEach(x => x.WinningAtUnusalRate = settledBet.Bet.First().WinningAtUnusalRate); } }