<commit_before>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace WebAddressbookTests
{
    public class ContactHelper : HelperBase
    {
      
        public ContactHelper(ApplicationManager manager): base(manager)
        {
        }
        public ContactHelper Create(UserData contact)
        {
            manager.Navigator.GoToHomePage();

            GoToCreateContactPage();
            FillContactForm(new UserData("alisa", "grozny"));
            SubmitContactCreation();
          return this;
        }
        public ContactHelper FillContactForm(UserData user)
        {
            Type(By.Name("firstname"), user.Firstname);
            Type(By.Name("lastname"), user.LastName);
            return this;
        }

        public ContactHelper Modify(int v, UserData user)
        {
            manager.Navigator.GoToHomePage(); //внутри проверка находимся ли мы на стартовой странице. если нет, то отрабатывает метод gotohomepage если да, то ничего не делаем
            SelectContact(v);//находим первый элемент с name = selected выбираем его
            InitContactModification();//для этого элемента ищем кнопку edit и жмакаем ее
            FillContactForm(user);//заполняем форму 
            SubmitContactModification();//подтверждаем изменение
            manager.Navigator.GoToHomePage();//возвращаемся на стартовую страницу
            return this;
        }

        public ContactHelper Remove(int i)
        {
            manager.Navigator.GoToHomePage();

            SelectContact(i);
            DeleteContact();
            SubmitDeleteContact();
            manager.Navigator.GoToHomePage();
            return this;
        }

        public ContactHelper SubmitDeleteContact()
        {
            driver.SwitchTo().Alert().Accept();
            contactCache = null;
            return this;
        }

        public ContactHelper  DeleteContact()
        {
            driver.FindElement(By.XPath("//input[@value='Delete']")).Click();
            return this;
        }

        public ContactHelper GoToCreateContactPage()
        {
            driver.FindElement(By.LinkText("add new")).Click();
            return this;
        }

        public ContactHelper SelectContact(int v)
        {
            driver.FindElement(By.XPath("(//input[@name='selected[]'])[" + (v+1) + "]")).Click();
            return this;
        }
        public ContactHelper SubmitContactCreation()
        {
            driver.FindElement(By.XPath("(//input[@name='submit'])[1]")).Click();
            contactCache = null;
            return this;
        }
        public ContactHelper InitContactModification()
        {
            driver.FindElement(By.CssSelector("img[alt=\"Edit\"]")).Click();
            return this;
        }

        public ContactHelper SubmitContactModification()
        {
            driver.FindElement(By.XPath("(//input[@name='update'])[1]")).Click();
            contactCache = null;
            return this;
        }

        public bool ThereAreContacts()
        {
            return IsElementPresent(By.CssSelector("img[alt=\"Details\"]"));
        }

        private List<UserData> contactCache = null;

        public List<UserData> GetContactList()
        {
            if (contactCache == null)
            {
                contactCache = new List<UserData>();
                manager.Navigator.GoToHomePage();
                ICollection<IWebElement> elements = driver.FindElements(By.XPath("(.//*[@id='maintable']/tbody/tr/td[2])"));

                foreach (IWebElement element in elements)
                {
                    
                    contactCache.Add(new UserData(element.Text, element.Text));
                }

            }
           return new List<UserData>(contactCache);
        }
    }
}<commit_msg>текущее состояние проекта<commit_after>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace WebAddressbookTests
{
    public class ContactHelper : HelperBase
    {
      
        public ContactHelper(ApplicationManager manager): base(manager)
        {
        }
        public ContactHelper Create(UserData contact)
        {
            manager.Navigator.GoToHomePage();

            GoToCreateContactPage();
            FillContactForm(new UserData("alisa", "grozny"));
            SubmitContactCreation();
          return this;
        }
        public ContactHelper FillContactForm(UserData user)
        {
            Type(By.Name("firstname"), user.Firstname);
            Type(By.Name("lastname"), user.LastName);
            return this;
        }

        public ContactHelper Modify(int v, UserData user)
        {
            manager.Navigator.GoToHomePage(); //внутри проверка находимся ли мы на стартовой странице. если нет, то отрабатывает метод gotohomepage если да, то ничего не делаем
            SelectContact(v);//находим первый элемент с name = selected выбираем его
            InitContactModification();//для этого элемента ищем кнопку edit и жмакаем ее
            FillContactForm(user);//заполняем форму 
            SubmitContactModification();//подтверждаем изменение
            manager.Navigator.GoToHomePage();//возвращаемся на стартовую страницу
            return this;
        }

        public ContactHelper Remove(int i)
        {
            manager.Navigator.GoToHomePage();

            SelectContact(i);
            DeleteContact();
            SubmitDeleteContact();
            manager.Navigator.GoToHomePage();
            return this;
        }

        public ContactHelper SubmitDeleteContact()
        {
            driver.SwitchTo().Alert().Accept();
            contactCache = null;
            return this;
        }

        public ContactHelper  DeleteContact()
        {
            driver.FindElement(By.XPath("//input[@value='Delete']")).Click();
            return this;
        }

        public ContactHelper GoToCreateContactPage()
        {
            driver.FindElement(By.LinkText("add new")).Click();
            return this;
        }

        public ContactHelper SelectContact(int v)
        {
            driver.FindElement(By.XPath("(//input[@name='selected[]'])[" + (v+1) + "]")).Click();
            return this;
        }
        public ContactHelper SubmitContactCreation()
        {
            driver.FindElement(By.XPath("(//input[@name='submit'])[1]")).Click();
            contactCache = null;
            return this;
        }
        public ContactHelper InitContactModification()
        {
            driver.FindElement(By.CssSelector("img[alt=\"Edit\"]")).Click();
            return this;
        }

        public ContactHelper SubmitContactModification()
        {
            driver.FindElement(By.XPath("(//input[@name='update'])[1]")).Click();
            contactCache = null;
            return this;
        }

        public bool ThereAreContacts()
        {
            return IsElementPresent(By.CssSelector("img[alt=\"Details\"]"));
        }

        private List<UserData> contactCache = null;

        public List<UserData> GetContactList()
        {
            if (contactCache == null)
            {
                contactCache = new List<UserData>();
                manager.Navigator.GoToHomePage();
                ICollection<IWebElement> element1 = driver.FindElements(By.XPath("(.//*[@id='maintable']/tbody/tr/td[2])"));
                ICollection<IWebElement> element2 = driver.FindElements(By.XPath("(.//*[@id='maintable']/tbody/tr/td[3])"));
              //  for ()
        //        {
                    
      //             contactCache.Add(new UserData(???));
             //   }

            }
           return contactCache;
        }
    }
}
{'fraction_non_alphanumeric': 0.11191335740072202, 'fraction_numerical': 0.0013693514253703472, 'mean_word_length': 1.9150943396226414, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '983399', 'n_tokens_mistral': 2194, 'n_tokens_neox': 2190, 'n_words': 399}