public override RealizeLotteryResult RealizeLottery(IGameStore <Game> store) { var quadraGames = new List <Game>(); var quinaGames = new List <Game>(); var megaGames = new List <Game>(); var result = new RealizeLotteryResult(); if (store.Store.Count == 0) { result.Success = false; result.Error = "Não existem jogos pra realizar um sorteio."; return(result); } var currentLotteryNumbers = this.GetLotteryNumbers(); foreach (var storeItem in store.Store) { var currGame = storeItem.Value; var matches = 0; foreach (var number in currGame.Numbers) { if (currentLotteryNumbers.Contains(number)) { matches++; } } if (matches == 4) { quadraGames.Add(currGame); } else if (matches == 5) { quinaGames.Add(currGame); } else if (matches == 6) { megaGames.Add(currGame); } } result.LotteryNumbers = currentLotteryNumbers; result.QuadraGames = quadraGames.ToArray(); result.QuinaGames = quinaGames.ToArray(); result.MegaGames = megaGames.ToArray(); result.Success = true; return(result); }
private string GetLotteryOutput(RealizeLotteryResult result) { var builder = new StringBuilder(); builder.AppendLine(); builder.AppendLine(string.Format("Sorteio de número {0}:", result.Id)); builder.AppendLine(string.Format("Números sorteados: {0}", string.Join("; ", result.LotteryNumbers))); builder.AppendLine(); if (result.QuadraGames.Length > 0) { builder.AppendLine(string.Format("{0} jogos acertaram a quadra:", result.QuadraGames.Length)); builder.AppendLine(); foreach (var game in result.QuadraGames) { builder.AppendLine(string.Format("Jogo {0}:", game.Id)); builder.AppendLine(string.Format("Números do jogo: {0}", string.Join("; ", game.Numbers))); builder.AppendLine(string.Format("Data: {0}", string.Join("; ", game.CreatedAt.ToString("dd/MM/yyyy")))); } builder.AppendLine(); } else { builder.AppendLine("Nenhum jogo acertou a quadra."); } if (result.QuinaGames.Length > 0) { builder.AppendLine(string.Format("{0} jogos acertaram a quina:", result.QuadraGames.Length)); builder.AppendLine(); foreach (var game in result.QuinaGames) { builder.AppendLine(string.Format("Jogo {0}:", game.Id)); builder.AppendLine(string.Format("Números do jogo: {0}", string.Join("; ", game.Numbers))); builder.AppendLine(string.Format("Data: {0}", string.Join("; ", game.CreatedAt.ToString("dd/MM/yyyy")))); } builder.AppendLine(); } else { builder.AppendLine("Nenhum jogo acertou a quina."); } if (result.MegaGames.Length > 0) { builder.AppendLine(string.Format("{0} jogos acertaram a mega:", result.QuadraGames.Length)); builder.AppendLine(); foreach (var game in result.MegaGames) { builder.AppendLine(string.Format("Jogo {0}:", game.Id)); builder.AppendLine(string.Format("Números do jogo: {0}", string.Join("; ", game.Numbers))); builder.AppendLine(string.Format("Data: {0}", string.Join("; ", game.CreatedAt.ToString("dd/MM/yyyy")))); } builder.AppendLine(); } else { builder.AppendLine("Nenhum jogo acertou a mega."); } return(builder.ToString()); }