Пример #1
0
        private void BtnRegister_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (ChkFull.IsChecked == false && ChkHalf.IsChecked == false && ChkSmall.IsChecked == false)
                {
                    MessageBox.Show("Должен быть выбран по крайней мере \n   один вид марафона");
                    return;
                }

                Regex reg = new Regex(@"^\d+");
                if (reg.IsMatch(TxtPayment.Text) == false)
                {
                    MessageBox.Show("Неверная сумма взноса");
                    return;
                }

                using (var db = new MarathonDBEntities1())
                {
                    Registration registration = new Registration
                    {
                        RunnerId             = Convert.ToInt32(LocalStorage.UserClass.RunnerId),
                        RegistrationDateTime = DateTime.Now,
                        RaceKitOptionId      = SelectedId.ToString(),
                        RegistrationStatusId = 1,
                        Cost              = Money,
                        CharityId         = Convert.ToInt32(CmbCharity.SelectedValue),
                        SponsorshipTarget = Convert.ToInt32(TxtPayment.Text)
                    };
                    db.Registration.Add(registration);

                    int LastMarathon = db.MarathonTbl.Count();
                    var RegEvent     = db.Event.Where(u => u.MarathonId == LastMarathon);

                    foreach (var item in EventType)
                    {
                        var EventId             = db.Event.FirstOrDefault(u => u.EventTypeId == item && u.MarathonId == LastMarathon);
                        RegistrationEvent regEv = new RegistrationEvent
                        {
                            RegistrationId = registration.RegistrationId,
                            BibNumber      = null,
                            RaceTime       = null,
                            EventId        = EventId.EventId
                        };
                        db.RegistrationEvent.Add(regEv);
                    }

                    db.SaveChanges();
                    new WinRunnerRegThanks().Show();
                    Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #2
0
        private void BtnLoad_Click(object sender, RoutedEventArgs e)
        {
            string[] volunteersList = File.ReadAllLines(fileName);
            Regex    reg            = new Regex(@"[0-9]");

            try
            {
                using (var db = new MarathonDBEntities1())
                {
                    foreach (var volunteer in volunteersList)
                    {
                        string[] volunteerInfo = volunteer.Split(',');
                        Match    match         = reg.Match(volunteerInfo[0]);
                        if (match.Success)
                        {
                            int id  = Convert.ToInt32(volunteerInfo[0]);
                            var vol = db.Volunteer.FirstOrDefault(v => v.VolunteerId == id);


                            if (volunteerInfo[1] == "" || volunteerInfo[1] == null)
                            {
                                MessageBox.Show("Не указанор имя");
                                return;
                            }
                            if (volunteerInfo[2] == "" || volunteerInfo[2] == null)
                            {
                                MessageBox.Show("Не указана фамилия");
                                return;
                            }
                            if (volunteerInfo[3] == "" || volunteerInfo[3] == null)
                            {
                                MessageBox.Show("не указана страна");
                                return;
                            }
                            if (volunteerInfo[4] == "F")
                            {
                                volunteerInfo[4] = "Female";
                            }
                            else if (volunteerInfo[4] == "M")
                            {
                                volunteerInfo[4] = "Male";
                            }
                            else
                            {
                                MessageBox.Show("В файле указан неверный пол");
                                return;
                            }
                            if (vol == null)
                            {
                                Volunteer vol1 = new Volunteer();
                                vol1.FirstName   = volunteerInfo[1];
                                vol1.LastName    = volunteerInfo[2];
                                vol1.CountryCode = volunteerInfo[3];
                                vol1.Gender      = volunteerInfo[4];
                                db.Volunteer.Add(vol1);
                                newVolunt++;
                            }
                            vol             = new Volunteer();
                            vol.FirstName   = volunteerInfo[1];
                            vol.LastName    = volunteerInfo[2];
                            vol.CountryCode = volunteerInfo[3];
                            vol.Gender      = volunteerInfo[4];
                            updVolunt++;
                            db.SaveChanges();
                        }
                    }
                    MessageBox.Show("Изменения внесены успешно\n" + updVolunt + " волонтеров обновлено\n" + newVolunt + " волонтеров добавлено");
                    newVolunt = 0;
                    updVolunt = 0;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #3
0
        private void BtnPay_Click(object sender, RoutedEventArgs e)
        {
            if (TxtName.Text != "" && TxtName.Text != " " && TxtCardInf.Text != "" && TxtCardInf.Text != " " && Money > 0 && CmbRunners.SelectedIndex > -1)
            {
                try
                {
                    Int32.Parse(TxtMonth.Text);
                    Int32.Parse(TxtYear.Text);
                    Int64.Parse(TxtCardNum.Text);
                    Int32.Parse(TxtCVC.Text);
                }
                catch
                {
                    MessageBox.Show("Поля не заполнены или не верный тип данных");
                    return;
                }

                if (TxtCardNum.Text.Length < 16)
                {
                    MessageBox.Show("Номер карты должен содержать 16 цифр!");
                    return;
                }

                if (Convert.ToInt32(TxtMonth.Text) > 12 || Convert.ToInt32(TxtMonth.Text) < 1)
                {
                    MessageBox.Show("Неверный месяц");
                    return;
                }

                if (Convert.ToInt32(TxtYear.Text) < 2016 || Convert.ToInt32(TxtYear.Text) > 3000)
                {
                    MessageBox.Show("Неверный год");
                    return;
                }

                DateTime startTime = new DateTime(Convert.ToInt32(TxtYear.Text), Convert.ToInt32(TxtMonth.Text), 1);
                DateTime now       = DateTime.Now;
                TimeSpan span      = startTime.Subtract(now);

                if (span.Days <= 0)
                {
                    MessageBox.Show("Карта не активна");
                    return;
                }

                if (TxtCVC.Text.Length < 3)
                {
                    MessageBox.Show("CVC карты должен содержать 3 цифры!");
                    return;
                }

                using (var DataBase = new MarathonDBEntities1())
                {
                    Sponsorship Sponsor = new Sponsorship
                    {
                        SponsorName    = TxtName.Text,
                        RegistrationId = Convert.ToInt32(CmbRunners.SelectedValue),
                        Amount         = Convert.ToDecimal(Money)
                    };

                    DataBase.Sponsorship.Add(Sponsor);
                    DataBase.SaveChanges();
                }

                LocalStorage.SelectedRunnerForSponsorShip.Amount      = Money;
                LocalStorage.SelectedRunnerForSponsorShip.CharityName = CharityInform.CharityName;

                new WinSponsorThanks().Show();
                Close();
            }
            else
            {
                MessageBox.Show("Введены некорректные данные");
                return;
            }
        }
Пример #4
0
        private void BtnSave_Click(object sender, RoutedEventArgs e)
        {
            #region Проверка заполнения полей

            if (TxtName.Text == "" || TxtName.Text == " ")
            {
                MessageBox.Show("Заполните наименование организации");
                return;
            }
            if (TxtDesc.Text == "" || TxtDesc.Text == " ")
            {
                MessageBox.Show("Заполните описание организации");
                return;
            }
            if (TxtSource.Text == "")
            {
                MessageBox.Show("Установите логотип организации");
                return;
            }

            #endregion

            #region Если создаем организацию

            if (LocalStorage.CharityClass.CharityId == "" || LocalStorage.CharityClass.CharityId == null || LocalStorage.CharityClass.CharityId == " ")
            {
                Charity charity = new Charity();
                charity.CharityName        = TxtName.Text;
                charity.CharityDescription = TxtDesc.Text;
                string[] fileName = TxtSource.Text.Split('\\');
                string   way      = Assembly.GetExecutingAssembly().Location.Replace("bin\\Debug\\Marathon.exe", "CharityLogos\\" + fileName[fileName.Length - 1]);
                File.Copy(TxtSource.Text, way, true);
                charity.CharityLogo = fileName[fileName.Length - 1];
                try
                {
                    using (var db = new MarathonDBEntities1())
                    {
                        db.Charity.Add(charity);
                        db.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return;
                }
            }
            #endregion

            #region Если редачим существующую организацию

            else
            {
                try
                {
                    using (var db = new MarathonDBEntities1())
                    {
                        var charityOrg = db.Charity.FirstOrDefault(c => c.CharityId.ToString() == LocalStorage.CharityClass.CharityId);
                        charityOrg.CharityName        = TxtName.Text;
                        charityOrg.CharityDescription = TxtDesc.Text;
                        charityOrg.CharityLogo        = LocalStorage.CharityClass.CharityLogo.Replace("CharityLogos/", "");
                        db.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return;
                }
            }
            #endregion
            MessageBox.Show("Изменения внесены успешно!");
        }
Пример #5
0
        private void BtnSaveChanges_Click(object sender, RoutedEventArgs e)
        {
            if (TxtFirstName.Text == "" || TxtLastName.Text == "" || DateOfBirthPick.SelectedDate == null)
            {
                MessageBox.Show("Не все поля заполнены!");
                return;
            }

            #region Проверка пароля.
            if (PasswdBox.Password != "" && PasswdBox.Password != " ")
            {
                Regex reg = new Regex(@"[a-z]");

                if (!reg.IsMatch(PasswdBox.Password))
                {
                    MessageBox.Show("Пароль должен содержать как минимум 1 прописную букву");
                    return;
                }

                reg = new Regex(@"[0-9]");
                if (!reg.IsMatch(PasswdBox.Password))
                {
                    MessageBox.Show("Пароль должен содержать как минимум 1 цифру");
                    return;
                }

                reg = new Regex(@"[!@#$%^]");
                if (!reg.IsMatch(PasswdBox.Password))
                {
                    MessageBox.Show("Пароль должен содержать как минимум один из следующих символов\n !@#$%^");
                    return;
                }
                if (PasswdBox.Password != ConfirmPasswdBox.Password)
                {
                    MessageBox.Show("Пароли не совпадают!");
                    return;
                }
            }
            #endregion

            #region Проверка возраста
            int yearOld = DateTime.Now.Year - Convert.ToInt32(DateOfBirthPick.SelectedDate.Value.Year);
            if (DateTime.Now.DayOfYear < DateOfBirthPick.SelectedDate.Value.DayOfYear)
            {
                yearOld--;
                if (yearOld < 10)
                {
                    MessageBox.Show("Вам должно быть больше 10 лет");
                    return;
                }
            }
            #endregion


            try
            {
                using (var db = new MarathonDBEntities1())
                {
                    //обновление бегуна
                    var updRunner = db.Runner.FirstOrDefault(r => r.Email == LocalStorage.UserClass.Email);
                    updRunner.CountryCode = CmbCountry.SelectedValue.ToString();
                    updRunner.DateOfBirth = DateOfBirthPick.SelectedDate;
                    updRunner.Gender      = CmbGender.SelectedValue.ToString();

                    //обновление юзера
                    var updUser = db.User.FirstOrDefault(u => u.Email == LocalStorage.UserClass.Email);
                    if (PasswdBox.Password != "" && PasswdBox.Password != " ")
                    {
                        updUser.Password = PasswdBox.Password;
                    }
                    updUser.FirstName = TxtFirstName.Text;
                    updUser.LastName  = TxtLastName.Text;

                    if (TxtPhotoFile.Text != "")
                    {
                        Byte[]       img    = null;
                        FileStream   stream = new FileStream(TxtPhotoFile.Text, FileMode.Open, FileAccess.Read);
                        StreamReader read   = new StreamReader(stream);
                        img = new byte[stream.Length - 1];
                        stream.Read(img, 0, (int)stream.Length - 1);
                        updUser.Image = img;
                    }

                    db.SaveChanges();
                    MessageBox.Show("Изменения внесены успешно");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Пример #6
0
        private void BtnRegister_Click(object sender, RoutedEventArgs e)
        {
            User   NewUser   = new User();
            Runner NewRunner = new Runner();

            if (PasswdBox.Password == "" || PasswdBox.Password == " " || ConfirmPasswdBox.Password == "" || ConfirmPasswdBox.Password == " " ||
                TxtFirstName.Text == "" || TxtFirstName.Text == " " || TxtLastName.Text == "" || TxtLastName.Text == " " || BirthOfDatePick.SelectedDate == null)
            {
                MessageBox.Show("Заполнены не все поля!");
                return;
            }

            NewUser.RoleId        = "R";
            NewUser.FirstName     = TxtFirstName.Text;
            NewUser.LastName      = TxtLastName.Text;
            NewRunner.Gender      = CmbGender.SelectedValue.ToString();
            NewRunner.CountryCode = CmbCountry.SelectedValue.ToString();

            #region Проверка Email.
            EmailAddressAttribute emailCheck = new EmailAddressAttribute();
            if (!emailCheck.IsValid(TxtEmail.Text))
            {
                MessageBox.Show("Введен некорректный Email");
                return;
            }

            #endregion
            NewUser.Email   = TxtEmail.Text;
            NewRunner.Email = TxtEmail.Text;

            #region Проверка пароля.
            if (PasswdBox.Password.Length < 6)
            {
                MessageBox.Show("Пароль должен содержать не менее 6 символов");
                return;
            }

            if (ConfirmPasswdBox.Password != PasswdBox.Password)
            {
                MessageBox.Show("Пароли не совпадают");
                return;
            }

            Regex reg = new Regex(@"[a-z]");
            if (!reg.IsMatch(PasswdBox.Password))
            {
                MessageBox.Show("Пароль должен содержать как минимум 1 прописную букву");
                return;
            }

            reg = new Regex(@"[0-9]");
            if (!reg.IsMatch(PasswdBox.Password))
            {
                MessageBox.Show("Пароль должен содержать как минимум 1 цифру");
                return;
            }

            reg = new Regex(@"[!@#$%^]");
            if (!reg.IsMatch(PasswdBox.Password))
            {
                MessageBox.Show("Пароль должен содержать как минимум один из следующих символов\n !@#$%^");
                return;
            }
            #endregion
            NewUser.Password = PasswdBox.Password;

            #region Подсчет возраста.
            int yearOld = DateTime.Now.Year - Convert.ToInt32(BirthOfDatePick.SelectedDate.Value.Year);
            if (DateTime.Now.DayOfYear < BirthOfDatePick.SelectedDate.Value.DayOfYear)
            {
                yearOld--;
                if (yearOld < 10)
                {
                    MessageBox.Show("Вы не можете зарегистрироваться, так как вам меньше 10 лет");
                    return;
                }
            }
            #endregion
            NewRunner.DateOfBirth = Convert.ToDateTime(BirthOfDatePick.SelectedDate);

            #region Сохранение изображения.
            if (LblFileName.Content != "")
            {
                try
                {
                    Byte[]       ImgData = null;
                    FileStream   stream  = new FileStream(LblFileName.Content.ToString(), FileMode.Open, FileAccess.Read);
                    StreamReader read    = new StreamReader(stream);
                    ImgData = new byte[stream.Length - 1];
                    stream.Read(ImgData, 0, (int)stream.Length - 1);

                    NewUser.Image = ImgData;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            #endregion

            using (var DataBase = new MarathonDBEntities1())
            {
                DataBase.User.Add(NewUser);
                DataBase.Runner.Add(NewRunner);
                DataBase.SaveChanges();
            }

            #region Сохранение данных в LocalStorage.
            LocalStorage.UserClass.Email     = TxtEmail.Text;
            LocalStorage.UserClass.FirstName = TxtFirstName.Text;
            LocalStorage.UserClass.LastName  = TxtLastName.Text;
            LocalStorage.UserClass.RunnerId  = NewRunner.RunnerId.ToString();
            #endregion
            new WinRegForTheMarathon().Show();
            Close();
        }