//private MegaSenaTicket MSTickets; //conecta ao banco de dados e retorna a conexão. private static SqlConnection startConnection() { SqlConnection con = new SqlConnection(); //essa connection string ta em App.config con.ConnectionString = ConfigurationManager.ConnectionStrings["Loteria"].ConnectionString; con.Open(); //da uma checada no banco de dados e garante que ele está pronto caso seja o primeiro acesso using (SqlCommand command = new SqlCommand("SELECT * FROM Raffle", con)) { using (SqlDataReader reader = command.ExecuteReader()) { //se entrou aqui não tem nenhum sorteio da mega sena cadastrado, e o necessario é que tenha 1 pra formar o vinculo if (!reader.Read()) { //então cria MSRaffle = new MegaSenaRaffle(); SqlCommand initializeCommand = new SqlCommand("INSERT INTO Raffle (result) output INSERTED.ID VALUES ('0')", con); MSRaffle.id = (int)initializeCommand.ExecuteScalar(); } } } return(con); }
//pra criar um novo public MegaSenaTicket(int[] numbers) { //se a entrada é nula, surpresinha. if (numbers == null) { this.numbers = MegaSenaRaffle.RandomRaffle(); } //se não é nula, e tem 6 valores distintos e entre 1 e 60 else if (numbers.Length == MegaSenaRaffle.neededNumbers && numbers.Distinct().ToArray().Length == numbers.Length && numbers.Min() >= 1 && numbers.Max() <= 60) { this.numbers = numbers; } //se não é uma entrada invalida, reclama. else { throw new ArgumentException(); } this.save(); }
//construtor, atribui o resultado passado caso a entrada seja valida, caso contrário atribui um resultado aleatório. //na pratica esse construtor não está sendo usado. public MegaSenaRaffle(int[] result) { //se a entrada é nula, surpresinha. if (result == null) { this.result = MegaSenaRaffle.RandomRaffle(); } //se não é nula, e tem 6 valores distintos else if (result.Length == MegaSenaRaffle.neededNumbers && result.Distinct().ToArray().Length == result.Length) { this.result = result; } //se não é uma entrada invalida, reclama. else { throw new ArgumentException(); } this.save(); }