/// <summary> /// Callback-метод кнопки применения изменений профиля /// </summary> void SubmitButton_Click(object sender, RoutedEventArgs e) { if (dbase.Login != DataLogBox.Text) { if (dbase.IsLoginCorrect(DataLogBox.Text) && !dbase.CheckLogin(DataLogBox.Text)) { dbase.Pass = DataPassBox.Text; dbase.Login = DataLogBox.Text; dbase.SaveMe(); var mes = new Sign("Изменения приняты!"); mes.Show(); } else { DataPassBox.Text = dbase.Pass; DataLogBox.Text = dbase.Login; var mes = new Sign("Ошибка!"); mes.Show(); } } else { dbase.Pass = DataPassBox.Text; dbase.SaveMe(); var mes = new Sign("Изменения приняты!"); mes.Show(); } }
/// <summary> /// Callback-метод кнопки удаления объекта /// в зависимости от выбора в выпадающем меню /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void DeleteButton_Click(object sender, RoutedEventArgs e) { var mes = new Sign(); switch (flag) { case 0: dbase.DeleteUser(findUser.Id); findUser.Clear(); ClearFindBlocks(); mes.SetMessage("Пользователь удален!"); break; case 1: dbase.DeleteGame(findGame.GameId); findGame.Clear(); ClearFindBlocks(); mes.SetMessage("Игра удалена!"); break; case 2: dbase.DeleteTicket(findTicket.TicketId); findTicket.Clear(); mes.SetMessage("Билет удален!"); ClearFindBlocks(); break; default: mes.SetMessage("Ошибка удаления!"); break; } mes.Show(); }
/// <summary> /// Callback-метод кнопки применения изменений /// </summary> void SubmitChangesButton_Click(object sender, RoutedEventArgs e) { var mes = new Sign(); switch (flag) { case 0: if (CheckUserData()) { dbase.SaveUser(findUser); mes.SetMessage("Пользователь сохранен!"); } else { mes.SetMessage("Ошибка сохранения!"); } break; case 1: if (CheckGameData()) { dbase.SaveGame(findGame); mes.SetMessage("Игра сохранена!"); } else { mes.SetMessage("Ошибка сохранения!"); } break; case 2: if (CheckTicketData()) { dbase.SaveTicket(findTicket); mes.SetMessage("Билет сохранен!"); } else { mes.SetMessage("Ошибка сохранения!"); } break; default: mes.SetMessage("Ошибка сохранения!"); break; } mes.Show(); }
/// <summary> /// Callback-метод при нажатии на игру в сетке игр /// </summary> void Double_Click(object sender, RoutedEventArgs e) { Sample row = (Sample)AllGamesGrid.SelectedItem; Int32 id = Convert.ToInt32(row.P1); if (row.P6 == "Opened") { BetWindow bet = new BetWindow(dbase, row.ToGame()); bet.Show(); Close(); } else { var mes = new Sign("Игра закрыта!"); mes.Show(); } }
/// <summary> /// Callback-метод кнопки начала игры /// </summary> void StartGameButton_Click(object sender, RoutedEventArgs e) { if (findGame.WinCombination == "") { Random rand = new Random(); StringBuilder str = new StringBuilder(); int[] randmas = new int[findGame.GetMaxNum()]; for (int i = 0; i < findGame.GetMaxNum(); i++) { randmas[i] = i + 1; } int currand = 0; for (int i = 0; i < findGame.GetNumCount(); i++) { currand = rand.Next() % (findGame.GetMaxNum()); if (currand != i) { randmas[i] += randmas[currand]; randmas[currand] = randmas[i] - randmas[currand]; randmas[i] -= randmas[currand]; } } Array.Sort(randmas, 0, findGame.GetNumCount()); for (int i = 0; i < findGame.GetNumCount(); i++) { str.AppendFormat("_{0}", randmas[i]); } str.Remove(0, 1); findGame.WinCombination = str.ToString(); dbase.SaveGame(findGame); FindDataPermBox.Text = str.ToString(); List <Ticket> tickets = dbase.GetTicketsByGameId(findGame.GameId); int[][] ticketMas = new int[tickets.Count][]; for (int i = 0; i < tickets.Count; i++) { ticketMas[i] = new int[findGame.GetNumCount() + 1]; } for (int i = 0; i < tickets.Count; i++) { ticketMas[i] = dbase.SplitCombination(tickets[i].Combination, findGame.GetNumCount()); } for (int i = 0; i < findGame.GetNumCount(); i++) { for (int j = 0; j < tickets.Count; j++) { for (int k = 0; k < findGame.GetNumCount(); k++) { if (randmas[i] > ticketMas[j][k]) { break; } if (randmas[i] == ticketMas[j][k]) { ticketMas[j][findGame.GetNumCount()]++; break; } } } } for (int i = 0; i < tickets.Count; i++) { for (int j = findGame.GetNumCount(); j > 0; j--) { if (ticketMas[i][findGame.GetNumCount()] == j) { dbase.SetPrize(tickets[i].OwnerId, dbase.GetPrizeByNumberOfMatches(findGame.Pool, j, findGame.GetNumCount())); } } } var mes = new Sign("Игра успешно проведена!"); mes.Show(); } }
/// <summary> /// Callback-метод кнопки поиска содержимого строки поиска /// в зависимости от выбора в выпадающем меню /// </summary> void FindButton_Click(object sender, RoutedEventArgs e) { int a = 0; if (flag == 0) { FindMyGamesGrid.Items.Clear(); if (int.TryParse(FindTextBox.Text, out a)) { findUser = dbase.LoadClient(a); } else { findUser = dbase.LoadClient(FindTextBox.Text); } if (findUser.IsUserValid()) { FindProfileData.IsEnabled = true; FindMyGames.IsEnabled = true; FindDataLogBox.Text = findUser.Login; FindDataPassBox.Text = findUser.Pass; FindDataPermBox.Text = findUser.Type.ToString(); FindDataIdBox.Text = findUser.Id.ToString(); FindDataPointBox.Text = findUser.Money.ToString(); if (dbase.Type < 3) { FindDataPermBox.IsEnabled = false; } List <Game> games = findUser.GetGames(); for (int i = 0; i < games.Count; i++) { Sample sam = new Sample(); sam = games[i].ToSample(); sam.P7 = findUser.GetTicketByGameId(games[i].GameId).GetStringFromCombination(); FindMyGamesGrid.Items.Add(sam); } } else { var mes = new Sign("Пользователя не существует"); mes.Show(); } } else { if (Int32.TryParse(FindTextBox.Text, out a)) { if (flag == 1) { findGame = dbase.GetGame(a); if (findGame.IsGameValid()) { FindProfileData.IsEnabled = true; FindDataLogBox.Text = findGame.Pool.ToString(); FindDataPassBox.Text = findGame.Type.ToString(); FindDataPermBox.Text = findGame.WinCombination; FindDataIdBox.Text = findGame.GameId.ToString(); FindDataPointBox.Text = findGame.TicketCost.ToString(); if (dbase.Type < 3) { FindDataPermBox.IsEnabled = false; } } else { var mes = new Sign("Игры не существует"); mes.Show(); } } else if (flag == 2) { findTicket = dbase.GetTicket(a); if (findTicket.IsTicketValid()) { FindProfileData.IsEnabled = true; FindDataLogBox.Text = findTicket.GameId.ToString(); FindDataPassBox.Text = findTicket.OwnerId.ToString(); FindDataPermBox.Text = findTicket.Combination; FindDataPermBox.IsEnabled = true; FindDataIdBox.Text = findTicket.TicketId.ToString(); } else { var mes = new Sign("Билета не существует"); mes.Show(); } } } } }