private void ChangeEmail(object sender, RoutedEventArgs e) { Random rnd = new Random(); var newemail = email.Text; randcode = rnd.Next(1000, 9999); Auth_Reg a = new Auth_Reg(); bool mail = a.SendMail($"Код подтверждения смены email: {randcode}", email.Text); if (mail) { code.Visibility = Visibility.Visible; submit.Visibility = Visibility.Visible; MessageBox.Show("Письмо с кодом подтверждения было отправлено на введенную почту"); } else { MessageBox.Show("Что-то пошло не так."); } }
private void Book(object sender, RoutedEventArgs e) { var num = 1; var date = seancess.seance.Title.ToString("t").Split(':'); var time = seancess.date.Title.ToString("d").Split('.'); DateTime a = DateTime.Now; DateTime b = new DateTime(int.Parse(time[2]), int.Parse(time[1]), int.Parse(time[0]), int.Parse(date[0]), int.Parse(date[1]), 0); var diff = b.Subtract(a).TotalMinutes; if (seancess.main.user == null) { using (KinoContext db = new KinoContext()) { for (int i = 0; i < panels.Count(); i++) { var grids = panels.ElementAt(i).Children.OfType <Grid>(); foreach (var y in grids) { var buttons = y.Children.OfType <Button>(); foreach (var z in buttons) { if (z.Style == (Style)FindResource("RoundCornerSold")) { db.SoldPlaces.Add(new SoldPlace { Range = i + 1, Place = int.Parse(z.Content.ToString()), FilmDateSeanceId = seancess.filmdateseance.Id }); db.SaveChanges(); } } } } db.Prices.First(x => x.Range == 1).Cost = int.Parse(firstf.Text); db.Prices.First(x => x.Range == 2).Cost = int.Parse(secondf.Text); db.Prices.First(x => x.Range == 3).Cost = int.Parse(thirdf.Text); db.Prices.First(x => x.Range == 4).Cost = int.Parse(fourthf.Text); db.Prices.First(x => x.Range == 5).Cost = int.Parse(fifthf.Text); db.Prices.First(x => x.Range == 6).Cost = int.Parse(sixf.Text); db.Prices.First(x => x.Range == 7).Cost = int.Parse(seventhf.Text); db.Prices.First(x => x.Range == 8).Cost = int.Parse(eighthf.Text); db.SaveChanges(); } } else if (diff > 15) { var dir = "KINOAFISHA " + DateTime.Now.ToString("dd-mm-yy hh-mm"); using (KinoContext db = new KinoContext()) { MessageBox.Show(user.Id.ToString()); if (db.Users.First(x => x.Id == user.Id).PathForTickets == null) { folder = SetPath(); MessageBox.Show(db.Users.First(x => x.Id == user.Id).PathForTickets); db.Users.First(x => x.Id == user.Id).PathForTickets = folder; db.SaveChanges(); MessageBox.Show(db.Users.First(x => x.Id == user.Id).PathForTickets); } else { folder = db.Users.First(x => x.Id == user.Id).PathForTickets; } } using (KinoContext db = new KinoContext()) { Directory.CreateDirectory(db.Users.First(x => x.Id == user.Id).PathForTickets + "\\" + dir); var number = 0; if (db.ReservationCodes.Where(x => x.UserId == user.Id && x.FilmDateSeanceId == seancess.filmdateseance.Id).Count() == 0) { Random rnd = new Random(); number = rnd.Next(100000, 999999); ReservationCode code = new ReservationCode { Code = number, UserId = user.Id, FilmDateSeanceId = seancess.filmdateseance.Id }; db.ReservationCodes.Add(code); db.SaveChanges(); } else { number = db.ReservationCodes.First(x => x.UserId == user.Id && x.FilmDateSeanceId == seancess.filmdateseance.Id).Code; } var codeid = db.ReservationCodes.First(x => x.UserId == user.Id && x.FilmDateSeanceId == seancess.filmdateseance.Id).Id; List <Order> orders = new List <Order>(); for (int i = 0; i < panels.Count(); i++) { var grids = panels.ElementAt(i).Children.OfType <Grid>(); foreach (var y in grids) { var buttons = y.Children.OfType <Button>(); foreach (var z in buttons) { if (z.Style == (Style)FindResource("RoundCornerChosed")) { int price = 0; switch (i) { case 0: price = int.Parse(firstf.Text); break; case 1: price = int.Parse(secondf.Text); break; case 2: price = int.Parse(thirdf.Text); break; case 3: price = int.Parse(fourthf.Text); break; case 4: price = int.Parse(fifthf.Text); break; case 5: price = int.Parse(sixf.Text); break; case 6: price = int.Parse(seventhf.Text); break; case 7: price = int.Parse(eighthf.Text); break; } if (student.IsChecked == true) { orders.Add(new StudentOrder(i + 1, int.Parse(z.Content.ToString()), codeid, price)); } else if (retiree.IsChecked == true) { orders.Add(new RetireeOrder(i + 1, int.Parse(z.Content.ToString()), codeid, price)); } else { orders.Add(new SimpleOrder(i + 1, int.Parse(z.Content.ToString()), codeid, price)); } num++; } } } } if (orders.Count() >= 5) { if (orders.Count() >= 10) { for (int i = 0; i < orders.Count(); i++) { orders[i] = new MoreThan10Decorator(orders[i]); } } else { for (int i = 0; i < orders.Count(); i++) { orders[i] = new MoreThan5Decorator(orders[i]); } } } num = 1; var totalprice = db.ReservationCodes.First(r => r.Id == codeid).TotalPrice; foreach (var x in orders) { db.ReservationPlaces.Add(new ReservationPlace { CodeId = x.Code, Place = x.Place, Range = x.Range, Price = x.Price, Retiree = x.Retiree, Student = x.Student }); db.SaveChanges(); Ticket t = new Ticket(user); t.path = folder; t.filmname.Text = seancess.film.Name; t.filmcode.Text = db.ReservationCodes.First(r => r.UserId == user.Id && r.FilmDateSeanceId == seancess.filmdateseance.Id).Code.ToString(); t.filmdate.Text = seancess.date.Title.ToString("d"); t.filmplace.Text = x.Place.ToString(); t.filmrange.Text = x.Range.ToString(); t.filmseance.Text = seancess.seance.Title.ToString("t"); t.filmprice.Text = x.GetCost().ToString(); t.dir = dir; t.number = num.ToString(); t.Show(); num++; totalprice += x.Price; } db.ReservationCodes.First(r => r.Id == codeid).TotalPrice = totalprice; Auth_Reg auth = new Auth_Reg(); auth.SendMail($"Привет, {user.FirstName}! Ваше бронирование №{db.ReservationCodes.First(r => r.Id == codeid).Code} на сумму {totalprice} было успешно оформлено. Основная информация про заказ: фильм - \"{seancess.film.Name}\", дата - {seancess.date.Title.ToString("d")}, сеанс - {seancess.seance.Title.ToString("t")}. Для более детальной информации просмотрите вкладку \"Профиль\" в нашем приложении KINOAFISHA. Спасибо за бронирование!", user.Email); MessageBox.Show($"Письмо о бронировании было отправлено на Вашу электронную почту, в папке {folder} были сохранены электронные билеты. Спасибо за бронирование!"); db.Notifications.Add(new Notification { Message = $"Привет, {user.FirstName}!\nВы успешно совершили бронирование №{db.ReservationCodes.First(r => r.Id == codeid).Code} на сумму {totalprice} грн.\n\nФильм: \"{seancess.film.Name}\"\nДата: {seancess.date.Title.ToString("d")}\nСеанс: {seancess.seance.Title.ToString("t")}", Time = $"{DateTime.Now.Day.ToString("00")}.{DateTime.Now.Month.ToString("00")}\n{DateTime.Now.Hour.ToString("00")}:{DateTime.Now.Minute.ToString("00")}", UserId = user.Id }); db.SaveChanges(); } } else { MessageBox.Show("Бронировать билеты можно не позже, чем за 15 минут до начала сеанса."); } }