Пример #1
0
        protected void ButtonAdd_Click(object sender, EventArgs e)
        {
            var договор = new Договор()
            {
                номерДоговора = TextBoxNumber.Text,
                Информация    = TextBoxName.Text,
            };

            DataServiceProvider.Current.AddDogovor(договор);
            Session["IsDogovorAdded"] = true;
            Response.Redirect(Request.Url.AbsoluteUri);
        }
Пример #2
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_TooShort() // слишком короткий номер + не соответствует шаблону
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "2рв2в",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #3
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_OnlyLetters() // только буквы
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "аругылару",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #4
0
        public void TestGetCodeForRecordBook_CorrectDogovorNumber_Registrs() // разный регистр букв и разные языки (2 теста в одном)
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "341NqЩ231",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #5
0
        public void TestGetCodeForRecordBook_CorrectDogovorNumber_CorrectSymbols() // номер с допустимыми символами  -()/.
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "341fh/231",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #6
0
        public void TestGetCodeForRecordBook_InorrectDogovorNumber_EmptyInformation() // не введена информация
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "341фрп231",
                Информация    = ""
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #7
0
        public void TestGetCodeForRecordBook_СorrectDogovorNumber2() // номер в виде 0ААА000 для шаблона 000ААА000.
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "1оар374", // = 001оар374
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #8
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_EmptyNumber() // не введен номер договора
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #9
0
        public void TestGetCodeForRecordBook_IncorrectDogovorNumber_Almost() // частично правильный номер: ААА000
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "врп231",
                Информация    = "Информация для тестового договора."
            };

            var expectedКорректность = false;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #10
0
        public void TestGetCodeForRecordBook_CorrectDogovor() // с русскими буквами
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "273икр729",
                Информация    = "Информация для тестового договора."
            };

            //var expectedКодДоговора = "2a";
            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);
        }
Пример #11
0
        /// <summary>
        /// Добавляет договоры в хранилище.
        /// </summary>
        /// <param name="договор">
        /// Договор, который необходимо добавить в хранилище
        /// </param>
        public void AddDogovor(Договор договор)
        {
            if (CheckNumber.GetCodeForRecordBook(договор) == true)
            {
                var номер = договор.номерДоговора;
                foreach (Договор c in _dogovorsStorage)
                {
                    if (c.номерДоговора == номер)
                    {
                        throw new Exception("Договор с таким номером уже существует!");
                    }
                }

                _dogovorsStorage.Add(договор);
            }
            else
            {
                throw new Exception("Номер договора некорректен или есть незаполненные поля!");
            }
        }
Пример #12
0
        public void TestGetCodeForRecordBook_CorrectDogovorNumber1() // с английскими буквами
        {
            ///Arrange.
            var договор = new Договор()
            {
                номерДоговора = "273dhw729",
                Информация    = "Информация для тестового договора."
            };

            ///Act.
            //   var ex = Assert.Throws<ArgumentNullException>(() => CheckNumber.GetCodeForRecordBook(договор));

            var expectedКорректность = true;
            ///Act.
            var Корректность = CheckNumber.GetCodeForRecordBook(договор);

            ///Assert.
            Assert.Equal(expectedКорректность, Корректность);


            ///Assert.
            //        Assert.Contains("Некорректный номер договора", ex.Message);
        }
Пример #13
0
        public static bool GetCodeForRecordBook(Договор договор)
        {
            var    эталон = "000AAA000"; // шаблон, с которым будет сверяться введенный номер договора. "0" - цифра, "А" - буква
            string symb   = "0123456789";

            char[] числа = symb.ToCharArray();
            string symb2 = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNM-()/.";//допустимые символы (нет проверки на несколько "-()/." подряд, несложно доделать)

            char[] буквы               = symb2.ToCharArray();
            var    номерДоговора       = договор.номерДоговора.ToUpper();
            var    count               = 0;
            int    длинаНомераДоговора = номерДоговора.Length;
            int    длинаЭталона        = эталон.Length;
            int    разница             = (длинаЭталона - длинаНомераДоговора);
            var    корректность        = true; // во избежание выполнения лишнего кода return стоит в 4 местах ниже

            if (договор.Информация == "")
            {
                return(корректность = false);
            }
            else
            {
                if (разница < 0) // если введенный номер больше эталона (в самом элементе формы стоит ограничение на 12 символов)
                {
                    // номерДоговора = "Некорректное значение!";
                    return(корректность = false);
                }
                else
                {
                    var массив = Encoding.Default.GetChars(Encoding.Default.GetBytes(эталон));
                    for (int i = 0; i < массив.Length; i++)
                    {
                        if (массив[i] == '0')
                        {
                            count = длинаЭталона - i; // если формат 00А0, то если вводим 1А4 и 01А4, это одно и то же. Поэтому нужно...
                        }
                        else if (массив[i] == 'A')
                        {
                            if ((i == 0) && (разница != 0))// .... вот это условие
                            {
                                //  номерДоговора = "Некорректное значение! первой должна быть буква";
                                корректность = false;
                            }
                            break;
                        }
                    }


                    if (длинаНомераДоговора < count)
                    {
                        //  номерДоговора = "Некорректное значение! длина меньше";
                        return(корректность = false);
                    }


                    var массив1 = Encoding.Default.GetChars(Encoding.Default.GetBytes(номерДоговора));
                    for (int i = 0; i < массив1.Length; i++) // переводим введенный номер в код для сравнения с эталоном (распознаем цифры и допустимые символы)
                    {
                        foreach (char a in числа)
                        {
                            foreach (char b in буквы)
                            {
                                if (массив1[i] == a)
                                {
                                    массив1[i] = '0';
                                    continue;
                                }
                                else
                                {
                                    if (массив1[i] == b)
                                    {
                                        массив1[i] = 'A';
                                    }
                                    else if (массив1[i] == ' ')
                                    {
                                        // номерДоговора = "Некорректное значение! Уберите пробел";
                                        корректность = false;
                                        break;
                                    }
                                }
                            }
                        }
                    }


                    for (int i = 0; i < массив1.Length; i++)
                    {
                        if (массив1[i] != массив[i + разница])
                        {
                            //   номерДоговора = "Некорректное значение! не совпадает с эталоном";
                            корректность = false;
                            break;
                        }
                    }
                }
                return(корректность);
            }
        }
Пример #14
0
 /// <summary>
 /// Добавляет договоры в хранилище.
 /// </summary>
 /// <param name="договор">
 /// Договор, который необходим добавить в хранилище
 /// </param>
 public void AddDogovor(Договор договор)
 {
 }