123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- Skip to content
- ludmila-mukhina
- /
- CatBaseProject
- Public
- Code
- Issues
- Pull requests
- Actions
- Projects
- Security
- Insights
- CatBaseProject/WpfApp2/Pages/CreateCatPage.xaml.cs
- @ludmila-mukhina
- ludmila-mukhina Комментарии на страницах с просмотром данных о котах, добавлением и р…
- …
- 1 contributor
- 213 lines (186 sloc) 10.1 KB
- using Microsoft.Win32;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Navigation;
- using System.Windows.Shapes;
- namespace WpfApp2
- {
- /// <summary>
- /// Логика взаимодействия для CreateCatPage.xaml
- /// </summary>
- public partial class CreateCatPage : Page
- {
- CatTable CAT; // объект, в котором будет хранится данные о новом или отредактированном коте
- bool flagUpdate = false; // для определения, создаем мы новый объект или редактируем старый
- string path; // путь к картинке
- public void uploadFields() // метод для заполнения списков
- {
- cmbBreed.ItemsSource = BaseClass.tBE.BreedTable.ToList();
- cmbBreed.SelectedValuePath = "idBreed";
- cmbBreed.DisplayMemberPath = "Breed";
- cmbGender.ItemsSource = BaseClass.tBE.GenderTable.ToList();
- cmbGender.SelectedValuePath = "idGender";
- cmbGender.DisplayMemberPath = "Gender";
- lbTraits.ItemsSource = BaseClass.tBE.TraitTable.ToList();
- lbTraits.SelectedValuePath = "idTrait";
- lbTraits.DisplayMemberPath = "Trait";
- lbFeed.ItemsSource = BaseClass.tBE.FeedTable.ToList();
- }
- // конструктор для редактирования данных о коте ( с аргументом, который хранит информацию о коте, которого хотим отредактировать)
- public CreateCatPage(CatTable cat)
- {
- InitializeComponent();
- uploadFields(); // заполняем списки
- flagUpdate = true; // отметка о том, что кота редактируем
- CAT = cat; // ассоциируем выше созданный глобавльный объект с объектом в кострукторе для дальнейшего редактирования этих данных
- tbName.Text = cat.CatName; // вывод имени кота
- cmbBreed.SelectedIndex = cat.idBreed - 1; // вывод породы кота
- dpBirthday.SelectedDate = cat.Birthday; // вывод даты рождения
- cmbGender.SelectedIndex = cat.idGender - 1; // вывод пола
- tbPassport.Text = cat.PassportTable.UniqueNumber; // вывод паспорта
- tbColor.Text = cat.PassportTable.ColorCat; // вывод окраса
- // находим черты характера того кота, которого мы редактируем:
- List<TraitCat> tC = BaseClass.tBE.TraitCat.Where(x => x.idCat == cat.idCat).ToList();
- // цикл для выделения черт характера кота в общем списке:
- foreach (TraitTable t in lbTraits.Items)
- {
- if (tC.FirstOrDefault(x => x.idTrait == t.idTrait) != null)
- {
- lbTraits.SelectedItems.Add(t);
- }
- }
- // находим корма для того кота, которого мы редактируем
- List<FeedCatTable> fct = BaseClass.tBE.FeedCatTable.Where(x => x.idCat == cat.idCat).ToList();
- // цикл для отображения кормов и их количества для кота:
- foreach (FeedTable t in lbFeed.Items)
- {
- if (fct.FirstOrDefault(x => x.idFeed == t.idFeed) != null)
- {
- t.QM = fct.Count;
- }
- }
- // вывод картинки
- if (cat.Photo != null)
- {
- BitmapImage img = new BitmapImage(new Uri(cat.Photo, UriKind.RelativeOrAbsolute));
- photoCat.Source = img;
- }
- }
- // конструктор для создания нового кота (без аргументов)
- public CreateCatPage()
- {
- InitializeComponent();
- uploadFields(); // заполняем списки
- }
- private void btnAdd_Click(object sender, RoutedEventArgs e)
- {
- try
- {
- // если флаг равен false, то создаем объект для добавления кота
- if (flagUpdate == false)
- {
- CAT = new CatTable();
- }
- // заполняем поля таблицы CatTable
- CAT.CatName = tbName.Text;
- CAT.idBreed = cmbBreed.SelectedIndex + 1;
- CAT.Birthday = Convert.ToDateTime(dpBirthday.SelectedDate);
- CAT.idGender = cmbGender.SelectedIndex + 1;
- CAT.Photo = path;
- // если флаг равен false, то добавляем объект в базу
- if (flagUpdate == false)
- {
- BaseClass.tBE.CatTable.Add(CAT);
- }
- // BaseClass.tBE.SaveChanges();
- // Заполнение таблицы PassportTable
- PassportTable pas = new PassportTable()
- {
- idCat = CAT.idCat,
- UniqueNumber = tbPassport.Text,
- ColorCat = tbColor.Text
- };
- // если флаг равен false, то добавляем объект в базу
- if (flagUpdate == false)
- {
- BaseClass.tBE.PassportTable.Add(pas);
- }
- // BaseClass.tBE.SaveChanges();
- // Для заполнения таблицы TraitsCats нужно организовать цикл, так как черт характера у кота может быть несколько
- // Цикл будет организовывать по чертам характера, которые выделены в списке
- // находим список черт характера кота:
- List<TraitCat> traits = BaseClass.tBE.TraitCat.Where(x => CAT.idCat == x.idCat).ToList();
- // если список не пустой, удаляем из него все черты характера этого кота
- if (traits.Count > 0)
- {
- foreach (TraitCat t in traits)
- {
- BaseClass.tBE.TraitCat.Remove(t);
- }
- }
- // перезаписываем черты кота (или добавляем черты для нового кота)
- foreach (TraitTable t in lbTraits.SelectedItems)
- {
- TraitCat TC = new TraitCat() // объект для записи в таблицу TraitsCat
- {
- idCat = CAT.idCat,
- idTrait = t.idTrait
- };
- BaseClass.tBE.TraitCat.Add(TC);
- }
- // BaseClass.tBE.SaveChanges();
- // Для заполнения таблицы Diets нужно организовать цикл, так как кормов у кота может быть несколько
- // Цикл будет организовывать по всем кормам, которые есть в списке
- // находим список с кормами для кота
- List<FeedCatTable> feed = BaseClass.tBE.FeedCatTable.Where(x => CAT.idCat == x.idCat).ToList();
- // если список не пустой, удаляем из него все корма для этого кота
- if (feed.Count > 0)
- {
- foreach (FeedCatTable t in feed)
- {
- BaseClass.tBE.FeedCatTable.Remove(t);
- }
- }
- // перезаписываем корма для кота (или добавляем корма для нового кота)
- foreach (FeedTable f in lbFeed.Items)
- {
- if (f.QM > 0)
- {
- FeedCatTable FCT = new FeedCatTable() // объект для записи в таблицу FeedCatTable
- {
- idCat = CAT.idCat,
- idFeed = f.idFeed,
- Count = f.QM
- };
- BaseClass.tBE.FeedCatTable.Add(FCT);
- }
- }
- BaseClass.tBE.SaveChanges();
- MessageBox.Show("Информация добавлена");
- }
- catch
- {
- MessageBox.Show("Что-то пошло не по плану");
- }
- }
- private void btnPhto_Click(object sender, RoutedEventArgs e) // добавление фото кота с помощью диалогового окна
- {
- OpenFileDialog OFD = new OpenFileDialog(); // создаем объект диалогового окна
- OFD.ShowDialog(); // открываем диалоговое окно
- path = OFD.FileName; // извлекаем полный путь к картинке
- string[] arrayPath = path.Split('\\'); // разделяем путь к картинке в массив
- path = "\\" + arrayPath[arrayPath.Length - 2] + "\\" + arrayPath[arrayPath.Length - 1]; // записываем в бд путь, начиная с имени папки
- // MessageBox.Show(path);
- }
- }
- }
- Footer
- © 2023 GitHub, Inc.
- Footer navigation
- Terms
- Privacy
- Security
- Status
- Docs
- Contact GitHub
- Pricing
- API
- Training
- Blog
- About
- CatBaseProject/CreateCatPage.xaml.cs at master · ludmila-mukhina/CatBaseProjectя данные о новнов
|