private void добавитьПодкатегориюToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var categories = categoryDB.GetList();

            if (categories.Count == 0)
            {
                MessageBox.Show("Вы ещё не создали категорию!");
                return;
            }
            SubcategoryForm subcategoryForm = new SubcategoryForm(categoryDB, dB);

            subcategoryForm.ShowDialog();
            LoadBox();
        }
Exemplo n.º 2
0
        public CategoryForm()
        {
            InitializeComponent();

            dB = new CategoryDB();
            // создаем экземпляр пагинатора для отображения 10 записей на странице. Число 10 можно сделать переменной и вынести в настройки
            paginator = new Paginator <CategoryDB, Category>(dB, 10);
            // для отображения данных в листвью я сделал отдельный класс
            // в нем кэшируются строки
            viewer = new Viewer <Category>();
            viewer.ViewerControl = listView1;
            var prop = listView1.GetType().GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);

            prop.SetValue(listView1, true, null);
            List <string> tags = new List <string>();

            for (int i = 0; i < listView1.Columns.Count; i++)
            {
                tags.Add(listView1.Columns[i].Tag.ToString());
            }
            Tags = tags;
            viewer.UniversalView(tags, dB.GetList());
            // подписываемся на событие изменения выводимых записей
            paginator.ShowRowsChanges += Paginator_ShowRowsChanges;
            // подписываемся на изменение кол-ва страниц
            paginator.CountChanged += Paginator_CountChanged;
            // подписываемся на изменение текущего индекса
            paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged;

            // вызываем обновление всех данных и событий
            // за счет того, что данный метод вызывается ПОСЛЕ создания пагинатора интерфейс успевает подписаться на события пагинатора и нормально отобразить все данные
            dB.Save();
        }
        public SubcategoryForm(CategoryDB categoryDB, AdvertisementDB advertisementDB)
        {
            InitializeComponent();
            this.categoryDB         = categoryDB;
            comboBox1.DataSource    = null;
            comboBox1.DataSource    = categoryDB.GetList();
            comboBox1.DisplayMember = "NameCategory";
            this.advertisementDB    = advertisementDB;
            // подписываемся на событие изменения выводимых записей
            paginator.ShowRowsChanges += Paginator_ShowRowsChanges;
            // подписываемся на изменение кол-ва страниц
            paginator.CountChanged += Paginator_CountChanged;
            // подписываемся на изменение текущего индекса
            paginator.CurrentIndexChanged += Paginator_CurrentIndexChanged;

            // вызываем обновление всех данных и событий
            // за счет того, что данный метод вызывается ПОСЛЕ создания пагинатора интерфейс успевает подписаться на события пагинатора и нормально отобразить все данные
            dB.Save();
        }
        public AddAdvertisementForm(AdvertisementDB dB, CategoryDB categoryDB, CountryDB countryDB, DiscoveredDB discoveredDB, Advertisement advertisement, int code)
        {
            InitializeComponent();
            this.categoryDB         = categoryDB;
            this.countryDB          = countryDB;
            this.discoveredDB       = discoveredDB;
            this.advertisement      = advertisement;
            this.dB                 = dB;
            this.code               = code;
            textBox1.Text           = advertisement.Header;
            textBox4.Text           = advertisement.Address;
            textBox2.Text           = advertisement.Phone.ToString();
            textBox5.Text           = advertisement.ContactPerson;
            textBox3.Text           = advertisement.Description;
            comboBox3.DataSource    = null;
            comboBox3.DataSource    = countryDB.GetList();
            comboBox3.DisplayMember = "NameCountry";

            comboBox1.DataSource    = null;
            comboBox1.DataSource    = categoryDB.GetList();
            comboBox1.DisplayMember = "NameCategory";

            comboBox5.DataSource    = null;
            comboBox5.DataSource    = discoveredDB.GetDiscovered();
            comboBox5.DisplayMember = "Status";

            if (code == 1)
            {
                button2.Visible = false;
                label11.Visible = false;
            }
            else if (code == 0)
            {
                for (int i = 0; i < comboBox3.Items.Count; i++)
                {
                    Country countrybox = (Country)comboBox3.Items[i];
                    if (countrybox.NameCountry == advertisement.Country.NameCountry)
                    {
                        comboBox3.SelectedIndex = i;
                        i = comboBox3.Items.Count;
                    }
                }
                for (int i = 0; i < comboBox1.Items.Count; i++)
                {
                    Category catrgorybox = (Category)comboBox1.Items[i];
                    if (catrgorybox.NameCategory == advertisement.Category.NameCategory)
                    {
                        comboBox1.SelectedIndex = i;
                        i = comboBox1.Items.Count;
                    }
                }
                for (int i = 0; i < comboBox5.Items.Count; i++)
                {
                    string discoveredbox = (string)comboBox5.Items[i];
                    if (discoveredbox == advertisement.Discovered)
                    {
                        comboBox5.SelectedIndex = i;
                        i = comboBox5.Items.Count;
                    }
                }
                button2.Visible = true;
                label11.Visible = true;
                TimeSpan timeSpan = new TimeSpan();
                timeSpan     = DateTime.Now - advertisement.Time;
                label11.Text = $"Времени прошло: {timeSpan}";
            }
            if (advertisement.Close == true)
            {
                textBox1.ReadOnly = true;
                textBox2.ReadOnly = true;
                textBox3.ReadOnly = true;
                textBox4.ReadOnly = true;
                textBox5.ReadOnly = true;
                comboBox1.Enabled = false;
                comboBox2.Enabled = false;
                comboBox3.Enabled = false;
                comboBox4.Enabled = false;
                comboBox5.Enabled = false;
                button2.Enabled   = false;
            }
        }
 public List <Category> GetCategories()
 {
     return(dB.GetList());
 }