/// <summary> /// Winnningses the over loosings. /// </summary> /// <param name="stock">The stock.</param> /// <returns></returns> private double WinningsOverLoosings(StockExchange stock) { var netEarnings = stock.Earnings != 0 ? (stock.Earnings - stock.TransactionCost) : 0; var reward = 0.0; if (netEarnings > 0) { Winnings.Enqueue(netEarnings); } else { Loosings.Enqueue(netEarnings); } var totalWinnings = Winnings.ToList().Sum(); var totalLoosings = Math.Abs(Loosings.ToList().Sum()); if (totalLoosings > 0) { reward = totalWinnings / totalLoosings; } else { reward = totalWinnings; } return(Math.Round(reward, 2)); }
public ActionResult Get([DataSourceRequest] DataSourceRequest request, int year) { List <Winnings> winnings = new List <Winnings>(); var memberWinnings = from mw in db.MemberWinnings where mw.Event.EventEnd.Year == year group mw by new { mw.MemberId, mw.WinningTypeId } into grp select new { MemberId = grp.Key.MemberId, TypeId = grp.Key.WinningTypeId, Data = grp.Sum(mw => mw.Amount), }; var ordered = memberWinnings.OrderBy(x => x.MemberId).ToList(); foreach (var mw in ordered) { // See if the current member winning (mw) has an entry in the list Winnings member = winnings.Where(w => w.MemberId == mw.MemberId).FirstOrDefault(); if (member == null) { var m = db.Members.Find(mw.MemberId); member = new Winnings(); member.MemberId = mw.MemberId; member.Member = new Members() { Firstname = m.Firstname, Lastname = m.Lastname, MemberId = m.MemberId }; winnings.Add(member); } switch (mw.TypeId) { case 1: // Tournament member.Tournament = mw.Data; break; case 2: // Side Games member.SideGame = mw.Data; break; default: break; } } return(Json(winnings.AsQueryable().ToDataSourceResult(request), JsonRequestBehavior.AllowGet)); }
static void Main(string[] args) { //Enter game var player = new Player(); player.DepositAmount = GameHelper.StartGame(); //Initialize components Random random = new Random(); var game = new SlotGame(); var display = new Display(); var winnings = new Winnings(); var stats = new Stats(); var winAmount = 0m; //Select stake and spin while (player.DepositAmount > 0m) { Console.WriteLine(Constants.STAKE_AMOUNT_TEXT); var stake = Convert.ToDecimal(Console.ReadLine()); stake = Math.Round(stake, Constants.DECIMAL_PRECISION); player.StakeAmount = GameHelper.TakeBetByPlayer(player, stake); //Roll symbols GameHelper.Spin(random, game, display); GameHelper.ShowSymbolsResultOnDisplay(display); //Collect all winnigs per line winnings.FirstLine = PaymentService.AmountWonPerLine(display.FirstLine, player); winnings.SecondLine = PaymentService.AmountWonPerLine(display.SecondLine, player); winnings.ThirdLine = PaymentService.AmountWonPerLine(display.ThirdLine, player); winnings.FourthLine = PaymentService.AmountWonPerLine(display.FourthLine, player); winAmount = Math.Round(winnings.CollectAllWinnings(), Constants.DECIMAL_PRECISION); GameHelper.ResetReels(display); stats.WinAmount = winAmount; //Display stats at current stage stats.TotalBalance = GameHelper.TotalBalance(player.DepositAmount, player.StakeAmount, winAmount); player.DepositAmount = stats.TotalBalance; player.DepositAmount = Math.Round(player.DepositAmount, Constants.DECIMAL_PRECISION); Console.WriteLine(string.Format(Constants.WIN_TEXT, stats.WinAmount)); Console.WriteLine(string.Format(Constants.CURRENT_BALANCE_TEXT, player.DepositAmount)); } Console.WriteLine(Constants.INSERT_CREDIT_TEXT); }