public CreateGameWindow()
        {
            InitializeComponent();
            StringBuilder characterGroups = new StringBuilder();

            foreach (KeyValuePair <string, string> characterGroup in Game.Requirements.NameCharacters)
            {
                characterGroups.Append(characterGroup.Value);
                AcceptableCharactersTextBlock.Inlines.Add(new Run($" \u2022 {characterGroup.Key} ({characterGroup.Value})"));
                AcceptableCharactersTextBlock.Inlines.Add(new LineBreak());
            }

            InputChecker = new TextBoxInputChecker($@"\A[{characterGroups.ToString()}]+\z", Game.Requirements.NameMaxLength);
            AcceptableLengthTextBlock.Inlines.Add(new Run($" \u2022 {Game.Requirements.NameMinLength}-{Game.Requirements.NameMaxLength} Characters"));

            DataObject.AddPastingHandler(GameNameTextBox, TextBox_Paste);
            GameNameTextBox.Focus();
        }
Пример #2
0
        private void AddBtn_Click(object sender, RoutedEventArgs e)
        {
            string tempPrice;

            VideoGame vg = new VideoGame();

            vg.GameName = GameNameTextBox.Text;
            vg.Rating   = RatingTextBox.Text;
            tempPrice   = PriceTextBox.Text;
            if (!double.TryParse(tempPrice, out double i))
            {
            }
            vg.Price = i;

            VideoGameListView.Items.Add(vg);

            GameNameTextBox.Text = " ";
            RatingTextBox.Text   = " ";
            PriceTextBox.Text    = " ";

            GameNameTextBox.Focus();
        }
        private bool CheckingIfEveryFieldIsFilledCorrectly()
        {
            if (GameNameTextBox.Text == defaultGameName)
            {
                MessageBox.Show("Название игры является обязательным полем!", "Ошибка!");
                GameNameTextBox.Focus();
                return(false);
            }

            else if (GameDescriptionTextBox.Text == defaultDescription)
            {
                MessageBox.Show("Описание должно присутствовать у каждой игры. Не оставляйте это поле пустым.", "Ошибка!");
                GameDescriptionTextBox.Focus();
                return(false);
            }

            else if (CharacteristicsListBox.Items.Count == 0)
            {
                MessageBox.Show("В игре не может не быть характеристик вообще — добавьте, пожалуйста, хотя бы одну!", "Ошибка!");

                AddNewDefaultCharacteristic();
                _characteristicNameTextBoxShouldBeFocused = true;

                return(false);
            }

            else if (UIMethods.FindCurrentTextInTextBoxesOfTheTemplatedListBox(CharacteristicsListBox, 0, defaultCharacteristicName, "Название характеристики — обязательный аттрибут. Заполните все поля либо удалите ненужные характеристики."))
            {
                return(false);
            }

            var namesOfCharacteristics = _characteristics.Select(ch => ch.Name);
            var namesOfCharacteristicsWithOneRegister = _characteristics.Select(ch => ch.Name.ToUpperInvariant());

            if (GeneralMethods.AreThereSameElementsInTheStringCollection(namesOfCharacteristics, out string element))
            {
                UIMethods.FindCurrentTextInTextBoxesOfTheTemplatedListBox(CharacteristicsListBox, 0, element, "По крайней мере две ваши характеристики имеют одинаковое название. Так нельзя — как же игроки будут их различать?");

                _theSameCharacteristicsNamesErrorWasShown = true;

                return(false);
            }

            else if (GeneralMethods.AreThereSameElementsInTheStringCollection(namesOfCharacteristicsWithOneRegister, out element))
            {
                if (_theSameCharacteristicsNamesErrorWasShown)
                {
                    UIMethods.FindCurrentTextInTextBoxesOfTheTemplatedListBox(CharacteristicsListBox, 0, element, "Одинаковые названия в разном регистре  — не вариант, уж простите. Пожалуйста, измените названия.");
                }

                else
                {
                    UIMethods.FindCurrentTextInTextBoxesOfTheTemplatedListBox(CharacteristicsListBox, 0, element, "По крайней мере две ваши характеристики имеют одинаковое название. Без учета регистра. Пожалуйста, измените названия.");
                }

                return(false);
            }

            int amountOfGamesWithSuchName = _user.Games.Where(game => game.Name == GameNameTextBox.Text).Count();

            if ((amountOfGamesWithSuchName > 0 && _creatingTheGameForTheFirstTime) || (amountOfGamesWithSuchName > 1 && (!_creatingTheGameForTheFirstTime)))
            {
                MessageBox.Show("У Вас уже есть игра с таким названием. Пожалуйста, придумайте для этой игры другое!", "Ошибка!");

                GameNameTextBox.Focus();

                return(false);
            }

            return(true);
        }