123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898 |
- Первоначальный алгоритм. Создали класс бд, создали класс frame. В MainWindow инициализировали бд и фрейм, сделали переход на следующее окно(авторизация)
- class db:
- class db
- {
- public static Entities tbe;
- }
- -----------------
- class Frame
- class MainFrame
- {
- public static Frame frame;
- }
- -----------------
- class User - объединить в одну строку
- public string FullName
- {
- get
- {
- return UserSurname + " " + UserName + " " + UserPatronymic;
- }
- }
- -----------------
- style App
- <Style x:Key="tbStyleFont" TargetType="TextBlock">
- <Style.Setters>
- <Setter Property="FontFamily" Value="Comic Sans MS"/>
- <Setter Property="FontSize" Value="15"/>
- </Style.Setters>
- </Style>
- -----------------
- окно MainWindow
- public MainWindow()
- {
- InitializeComponent();
- db.tbe = new Entities();
- MainFrame.frame = fMain;
- MainFrame.frame.Navigate(new AuthorizationPage());
- }
- -----------------
- Капча AuthPage(первое окно)
- private DispatcherTimer dispatcher;
- public static bool checkedCaptcha;
- private int counter = 10;
- public AuthorizationPage()
- {
- InitializeComponent();
- dispatcher = new DispatcherTimer();
- dispatcher.Interval = new TimeSpan(0, 0, 0, 1);
- dispatcher.Tick += new EventHandler(TimerEnd);
- }
- private void TimerEnd(object sender, EventArgs e)
- {
- try
- {
-
- if (counter != 0)
- {
-
- tbAuth.Text = "Новый код доступен через \n\t" + string.Format("00:00:{0}", counter) + " секунд ";
- }
- else
- {
- btnAuth.IsEnabled = true;
- gpPassword.IsEnabled = true;
- gpLogin.IsEnabled = true;
-
- tbAuth.Visibility = Visibility.Collapsed;
- dispatcher.Stop();
- }
- counter--;
- }
- catch
- {
- MessageBox.Show("Дваайте еще раз попробуем");
- }
- }
-
- private void btnAuth_Click(object sender, RoutedEventArgs e)
- {
- User user = db.tbe.User.FirstOrDefault(x => x.UserPassword == tbPassword.Text && x.UserLogin == tbLogin.Text);
- try
- {
- if (user == null)
- {
- //tbLogin.Text != user.UserLogin && tbPassword.Text != user.UserPassword
- MessageBox.Show("Введенный логин и/или пароль неверен");
- Captcha captcha = new Captcha();
- captcha.Show();
- captcha.Closing += (obj, args) =>
- {
- if (!checkedCaptcha)
- {
- btnAuth.IsEnabled = false;
- gpPassword.IsEnabled = false;
- gpLogin.IsEnabled = false;
- counter = 10;
- dispatcher.Start();
- }
-
- };
- }
- else
- {
- if (!string.IsNullOrEmpty(tbLogin.Text) && !string.IsNullOrEmpty(tbPassword.Text))
- {
- if (tbLogin.Text != null && tbPassword.Text != null)
- {
- if (user.UserLogin == tbLogin.Text)
- {
- if (user.UserPassword == tbPassword.Text)
- {
- NavigationService.Navigate(new PageProducts(user));
-
- }
- else
- {
- MessageBox.Show("Пароль в системе отсутствует");
- }
- }
- else
- {
- MessageBox.Show("Логин в системе отсутствует");
- }
- }
- }
- else
- {
- MessageBox.Show("Неверный логин и/или пароль!");
- }
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- -----------------
- Страница с выводом:
- В инициализации:
- db.tbe = new Entities();
- lvProduct.ItemsSource = db.tbe.Product.ToList();
- lvProduct.SelectedValuePath = "ProductArticleNumber";
- tblast.Text = db.tbe.Product.Count().ToString(); // вывод 15
- tbFirst.Text = lvProduct.Items.Count.ToString(); // вывод 47
- -----------------
- <Page.Resources>
- <BitmapImage x:Key="noPhoto" UriSource="\resources\picture.png"></BitmapImage>
- </Page.Resources>
- -----------------
- 1.ListView
- 2.ListView.ItemTemplate
- 3.DataTemplate
- 4.Grid
- В конце можно изьебнуться и вставить. При нажатии на контекстное меню добавляется товар в заказ
- <ListView.ContextMenu>
- <ContextMenu>
- <MenuItem Header="Добавить к заказу" Click="MenuItem_Click" Uid="{Binding ProductArticleNumber}"></MenuItem>
- </ContextMenu>
- </ListView.ContextMenu>
- </ListView>
- а в коде
- public static List<string> articleProducts = new List<string>();
- private void MenuItem_Click(object sender, RoutedEventArgs e)
- {
- btnOrder.Visibility = Visibility.Visible;
- articleProducts.Add(lvProduct.SelectedValue.ToString());
- }
- Создать кнопку btnorder
- private void btnOrder_Click(object sender, RoutedEventArgs e)
- {
- Window1 window = new Window1(user);
- window.Show();
- window.Closing += (obj, args) =>
- {
- if (articleProducts.Count == 0)
- {
- btnOrder.Visibility = Visibility.Collapsed;
- }
- else
- {
- btnOrder.Visibility = Visibility.Visible;
- }
- };
- }
- -----------------
- Просмотр заказа (корзина)
- Разметка:
- <Grid>
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="*"></RowDefinition>
- <RowDefinition Height="5*"></RowDefinition>
- <RowDefinition Height="*"></RowDefinition>
- </Grid.RowDefinitions>
- <StackPanel Grid.Row="1">
- <ListView Name="lvOrder" ScrollViewer.VerticalScrollBarVisibility="Disabled" Height="230" Width="800" >
- <ListView.ItemTemplate>
- <DataTemplate>
- <Grid Background="{Binding colorBrush}" Width="770" >
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="0.5*"/>
- <ColumnDefinition Width="1*"/>
- <ColumnDefinition Width="*"/>
- </Grid.ColumnDefinitions>
- <StackPanel Grid.Column="0">
- <Image Height="100" Source="{Binding ProductPhoto, TargetNullValue={StaticResource noPhoto}}"></Image>
- </StackPanel>
- <StackPanel Grid.Column="1">
- <TextBlock Text="{Binding ProductName}"/>
- <TextBlock Text="{Binding ProductDescription}" TextWrapping="Wrap"/>
- <TextBlock Text="{Binding manufacture.manufactureName}"/>
- <StackPanel Orientation="Horizontal">
- <TextBlock Text=" "></TextBlock>
- <TextBlock Text="{Binding ProductCost, StringFormat={}{0:0}}" TextDecorations="Strikethrough" Uid="{Binding ProductDiscountAmount}"/>
- <TextBlock Text=" "></TextBlock>
- <TextBlock Text="{Binding ActualPrice, StringFormat={}{0:0}руб.}"/>
- </StackPanel>
- </StackPanel>
- <StackPanel Grid.Column="2">
- <Button Background="#498c51" Content="Удалить из заказа" Name="btnDelete" Click="btnDelete_Click" Uid="{Binding ProductArticleNumber}"/>
- <GroupBox Header="Количество товара">
- <TextBox Text="1" TextChanged="TextBox_TextChanged" Uid="{Binding ProductArticleNumber}">
- <TextBox.ToolTip>Введите количество товара</TextBox.ToolTip>
- </TextBox>
- </GroupBox>
- </StackPanel>
- </Grid>
- </DataTemplate>
- </ListView.ItemTemplate>
- </ListView>
- <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center">
- <ComboBox Name="cmbOrderPoint"></ComboBox>
- <Button Margin="15 0 0 0" Background="#498c51" Content="Сформировать заказ" Name="btnFormOrder" Click="btnFormOrder_Click"/>
- <TextBlock Name="tbSummaZakaza" FontWeight="Bold"></TextBlock>
- <TextBlock Name="tbSaleZakaza" Margin="15 0 0 0"></TextBlock>
- </StackPanel>
- </StackPanel>
- </Grid>
- </Grid>
- Код на корзину
- List<Product> products = new List<Product>();
- List<Article> articles = new List<Article>();
- User user;
- public Window1(User user)
- {
- InitializeComponent();
- System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
- this.user = user;
- cmbOrderPoint.ItemsSource = db.tbe.Point.ToList();
- cmbOrderPoint.SelectedValuePath = "idPickupPoint";
- cmbOrderPoint.DisplayMemberPath = "displayPoint";
- cmbOrderPoint.SelectedIndex = 0;
- foreach (Product product in db.tbe.Product.ToList())
- {
- foreach (string item in PageProducts.articleProducts)
- {
- if (product.ProductArticleNumber == item)
- {
- products.Add(product);
- Article article = new Article()
- {
- article = product.ProductArticleNumber,
- count = 1,
- };
- articles.Add(article);
- }
- }
- }
- lvOrder.ItemsSource = products;
- lvOrder.SelectedValuePath = "ProductArticleNumber";
- summOrder();
- }
- private void summOrder() // вывод суммы заказа
- {
- double sum = 0;
- double summWithDiscount = 0;
- foreach (var item in articles)
- {
- sum += Convert.ToDouble(db.tbe.Product.FirstOrDefault(x => x.ProductArticleNumber == item.article).ProductCost * item.count);
- summWithDiscount += Convert.ToDouble(((db.tbe.Product.FirstOrDefault(x => x.ProductArticleNumber == item.article).ProductCost - db.tbe.Product.FirstOrDefault(x => x.ProductArticleNumber == item.article).ProductCost / 100 * db.tbe.Product.FirstOrDefault(x => x.ProductArticleNumber == item.article).ProductDiscountAmount)) * item.count);
- }
- tbSaleZakaza.Text = "Общая скидка " + Convert.ToInt32((sum - summWithDiscount)).ToString() + "руб.";
- tbSummaZakaza.Text = "Итоговая цена " + Convert.ToInt32(Math.Round(summWithDiscount)).ToString() + "руб.";
- orderSummaSale = Convert.ToInt32((sum - summWithDiscount)).ToString() + "руб.";
- orderSumma = Convert.ToInt32(Math.Round(summWithDiscount)).ToString() + "руб.";
- }
- public static string ordedDate;
- public static int orderID;
- public static string orderSostav;
- public static string orderSumma;
- public static string orderSummaSale;
- public static string orderPoint;
- private void btnFormOrder_Click(object sender, RoutedEventArgs e)
- {
- try
- {
- Random random = new Random();
- int codeRND = random.Next(100, 999);
- Order order = new Order();
- order.OrderID = db.tbe.Order.Max(x => x.OrderID) + 1;
- order.OrderStatus = 1;
- order.OrderPickupPoint = (int)cmbOrderPoint.SelectedValue;
- if (user != null)
- {
- order.OrderClientsId = user.UserID;
- }
- else
- {
- }
- order.Code = codeRND;
- order.OrderDate = DateTime.Now;
- foreach (Product item in products)
- {
- if (item.ProductQuantityInStock < 3 || item.ProductQuantityInStock == 0)
- {
- order.OrderDeliveryDate = DateTime.Now.AddDays(6);
- }
- else
- {
- order.OrderDeliveryDate = DateTime.Now.AddDays(3);
- }
- }
- db.tbe.Order.Add(order);
- db.tbe.SaveChanges();
- string orderPoint = cmbOrderPoint.Text;
- int orderID = order.OrderID;
- // формирование для смежной таблицы
- foreach (var item in articles)
- {
- OrderProduct orderProduct = new OrderProduct();
- orderProduct.OrderID = order.OrderID;
- orderProduct.ProductArticleNumber = item.article;
- orderProduct.Count = item.count;
- db.tbe.OrderProduct.Add(orderProduct);
- }
- string ordedDate = order.OrderDeliveryDate.ToString();
- db.tbe.SaveChanges();
- PageProducts.articleProducts.Clear();
- var ok = MessageBox.Show("Ваш заказ сформирован. Вам доступен талон для получения заказа. ", "Системное сообщение", MessageBoxButton.OK, MessageBoxImage.Information);
- // формирование состава заказа
- string nameOrderProduct = "";
- List<OrderProduct> orderProductSostav = db.tbe.OrderProduct.Where(x => x.OrderID == order.OrderID).ToList();
- foreach (var item in orderProductSostav)
- {
- Product product1 = db.tbe.Product.FirstOrDefault(x => x.ProductArticleNumber == item.ProductArticleNumber);
- nameOrderProduct += product1.ProductName + $"({item.Count} шт.) ";
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show(ex.Message);
- }
- }
- private void deleteMethod(string id) // метод удаления из списка добавленных
- {
- PageProducts.articleProducts.Remove(id);
- if (PageProducts.articleProducts.Count == 0)
- {
- this.Close();
- }
- else
- {
- products.Clear();
- foreach (Product product in db.tbe.Product.ToList())
- {
- foreach (string item in PageProducts.articleProducts)
- {
- if (product.ProductArticleNumber == item)
- {
- products.Add(product);
- Article article = new Article()
- {
- article = product.ProductArticleNumber,
- count = 1,
- };
- articles.Add(article);
- MessageBox.Show(article.article);
- }
- }
- }
- lvOrder.Items.Refresh();
- lvOrder.ItemsSource = products;
- lvOrder.SelectedValuePath = "ProductArticleNumber";
- lvOrder.Items.Refresh();
- summOrder();
- }
- }
- private void btnDelete_Click(object sender, RoutedEventArgs e)
- {
- Button button = (Button)sender;
- string id = button.Uid;
- deleteMethod(id);
- }
- private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
- {
- TextBox textBox = (TextBox)sender;
- string id = textBox.Uid;
- articles.FirstOrDefault(x => x.article == id).count = Convert.ToInt32(textBox.Text);
- if (!string.IsNullOrEmpty(textBox.Text))
- {
- summOrder();
- }
- if (textBox.Text.Equals("0"))
- {
- deleteMethod(id);
- }
- }
- -----------------
- -----------------
- Отсутствие фото:
- -----------------
- В гриде биндинг, нулевая фотка:
- <StackPanel Grid.Column="0" >
- <Image Height="100" Source="{Binding ProductPhoto, TargetNullValue={StaticResource noPhoto}}"></Image>
- </StackPanel>
- Вывод в комбобокс без контента на разметке:
- cmbOrderPoint.ItemsSource = db.tbe.Point.ToList();
- cmbOrderPoint.SelectedValuePath = "idPickupPoint";
- cmbOrderPoint.DisplayMemberPath = "displayPoint";
- cmbOrderPoint.SelectedIndex = 0;
- Вывод в комбобокс с добавлением через цикл
- List<Raions> raions = Base.baseDate.Raions.ToList(); // Заполнение списка районов
- cbFilterRaion.Items.Add("Все районы");
- foreach(Raions raion in raions)
- {
- cbFilterRaion.Items.Add(raion.RaionName);
- }
- cbFilterRaion.SelectedIndex = 0;
- Вывод записей 15 из 47
- 1. 15
- private void tblast_Loaded(object sender, RoutedEventArgs e)
- {
- List<Product> products = db.tbe.Product.ToList();
- tblast.Text = lvProduct.Items.Count.ToString();
- lvProduct.ItemsSource = products;
- }
- 2. 47
- private void tbFirst_Loaded(object sender, RoutedEventArgs e)
- {
- List<Product> products = db.tbe.Product.ToList();
- tbFirst.Text = db.tbe.Product.ToList().Count().ToString();
- lvProduct.ItemsSource = products;
- }
- -----------------
- Фильтрация и сортировка
- -----------------
- <GroupBox Header="Сортировка товаров">
- <ComboBox Name="cmbSorted" SelectionChanged="cmbSorted_SelectionChanged">
- <ComboBoxItem Content="По умолчанию"/>
- <ComboBoxItem Content="По возрастанию стоимости"/>
- <ComboBoxItem Content="По убыванию стоимости"/>
- </ComboBox>
- </GroupBox>
- <GroupBox Header="Фильтрация товаров">
- <ComboBox Name="cmbFiltres" SelectionChanged="cmbSorted_SelectionChanged">
- <ComboBoxItem Content="Все диапазоны"/>
- <ComboBoxItem Content="0-9,99%"/>
- <ComboBoxItem Content="10-14,99%"/>
- <ComboBoxItem Content="15% и более"/>
- </ComboBox>
- </GroupBox>
- private void filtresMethod() // общий метод сортировки и фильтрации
- {
- List<Product> products = db.tbe.Product.ToList();
- if (cmbSorted.SelectedItem != null)
- {
- ComboBoxItem comboBoxItem = (ComboBoxItem)cmbSorted.SelectedItem;
- switch (comboBoxItem.Content)
- {
- case "По умолчанию":
- {
- products = products;
- break;
- }
- case "По возрастанию стоимости":
- {
- products = products.OrderBy(x => x.ProductCost).ToList();
- break;
- }
- case "По убыванию стоимости":
- {
- products = products.OrderByDescending(x => x.ProductCost).ToList();
- break;
- }
- }
- }
- if (cmbFiltres.SelectedItem != null)
- {
- ComboBoxItem comboBoxItem = (ComboBoxItem)cmbFiltres.SelectedItem;
- switch (comboBoxItem.Content)
- {
- case "Все диапазоны":
- {
- products = products;
- break;
- }
- case "0-9,99%":
- {
- products = products.Where(x => x.ProductDiscountAmount >= 0 && x.ProductDiscountAmount <= 9.99).ToList();
- break;
- }
- case "10-14,99%":
- {
- products = products.Where(x => x.ProductDiscountAmount >= 10 && x.ProductDiscountAmount <= 14.99).ToList();
- break;
- }
- case "15% и более":
- {
- products = products.Where(x => x.ProductDiscountAmount >= 15).ToList();
- break;
- }
- }
- }
- if (tbSearch.Text != null)
- {
- if (!string.IsNullOrEmpty(tbSearch.Text))
- {
- products = products.Where(x => x.ProductName.ToLower().Contains(tbSearch.Text)).ToList();
- }
- }
- if (products.Count == 0 || products.Count == null)
- {
- MessageBox.Show("Отсутствуют критерии, удовлетворяющие результатам поиска!");
- }
- lvProduct.ItemsSource = products;
- tblast.Text = lvProduct.Items.Count.ToString();
- }
- -----------------
- Удаление заказа
- -----------------
- Получаем UID кнопки, инициализируем объект БД, прогняем по циклу и удаляем
- Удаление со смежными таблицами
- Button button = (Button)sender;
- string id = button.Uid;
- Product product = db.tbe.Product.FirstOrDefault(x => x.ProductArticleNumber == id);
- foreach (var item in db.tbe.OrderProduct.Where(x => x.ProductArticleNumber == id))
- {
- db.tbe.OrderProduct.Remove(item);
- }
- var result = MessageBox.Show("Подтвердите удаление товара", "Системное диалоговое окно", MessageBoxButton.YesNo, MessageBoxImage.Question);
- if(result == MessageBoxResult.Yes)
- {
- db.tbe.Product.Remove(product);
- db.tbe.SaveChanges();
- MessageBox.Show("Товар " + product.ProductName + " был удален");
- NavigationService.Navigate(new PageProducts(user));
- }
- else
- {
- MessageBox.Show("Товар " + product.ProductName + " не удален");
- NavigationService.Navigate(new PageProducts(user));
- }
- -----------------
- Изменение товара (создать новое окно)
- -----------------
- Button button = (Button)sender;
- string id = button.Uid;
- Product product = db.tbe.Product.FirstOrDefault(x => x.ProductArticleNumber == id);
- WindowChangeProduct windowChangeProduct = new WindowChangeProduct(product);
- windowChangeProduct.Show();
- windowChangeProduct.Closing += (bin, args) => // при закрытии окна применяем возможные изменения
- {
- NavigationService.Navigate(new PageProducts(user));
- lvProduct.ItemsSource = db.tbe.Product.ToList();
- };
- -----------------
- В самом окне windowChangeProduct создаем объекты текстбоксов, в коде следующее:
- В инициализации
- tbProductName.Text = product.ProductName;
- tbProductDescription.Text = product.ProductDescription;
- cmbProductSupplier.ItemsSource = db.tbe.supplier.ToList();
- cmbProductSupplier.SelectedValuePath = "idSupplier";
- cmbProductSupplier.DisplayMemberPath = "supplierName";
- cmbProductSupplier.SelectedValue = product.idSupplier.ToString();
- tbOldPrice.Text = product.ProductCost.ToString();
- tbSale.Text = product.ProductDiscountAmount.ToString();
- в кнопке для изменения
- if(!string.IsNullOrEmpty(tbProductName.Text) && !string.IsNullOrEmpty(tbProductDescription.Text) && !string.IsNullOrEmpty(tbOldPrice.Text) && !string.IsNullOrEmpty(tbSale.Text) && cmbProductSupplier.SelectedIndex != null && cmbProductSupplier != null)
- {
- product.ProductName = tbProductName.Text;
- product.ProductDescription = tbProductDescription.Text;
- product.idSupplier = Convert.ToInt32(cmbProductSupplier.SelectedValue);
- product.ProductCost = Convert.ToDecimal(tbOldPrice.Text);
- product.ProductDiscountAmount = Convert.ToInt32(tbSale.Text);
- db.tbe.SaveChanges();
- this.Close();
- MessageBox.Show("Готово");
-
- }
- -----------------
- Добавление товара. Создаем нужны поля в разметке
- В инициализации определяем комбобоксы
- cmbCategory.ItemsSource = db.tbe.ProductCategory.ToList();
- cmbCategory.SelectedValuePath = "ProductCategoryID";
- cmbCategory.DisplayMemberPath = "ProductCategoryName";
- cmbManufacturer.ItemsSource = db.tbe.manufacture.ToList();
- cmbManufacturer.SelectedValuePath = "idManufacture";
- cmbManufacturer.DisplayMemberPath = "manufactureName";
- cmbEdIzm.ItemsSource = db.tbe.edIzm.ToList();
- cmbEdIzm.SelectedValuePath = "idEdIzm";
- cmbEdIzm.DisplayMemberPath = "edenicaizm";
- cmbSupplier.ItemsSource = db.tbe.supplier.ToList();
- cmbSupplier.SelectedValuePath = "idSupplier";
- cmbSupplier.DisplayMemberPath = "supplierName";
- addProduct.Background = (SolidColorBrush)new SolidColorBrush(Color.FromRgb(73, 140, 81));
- В кнопке добавления проверяем все условия на !null и !string.IsNullOrEmpt? а после
- Product product = new Product();
- product.ProductArticleNumber = tbArcticle.Text;
- product.ProductName = tbNameProduct.Text;
- product.ProductDescription = tbDescriptionProduct.Text;
- product.ProductCategory = Convert.ToInt32(cmbCategory.SelectedValue);
- product.ProductManufacturer = Convert.ToInt32(cmbManufacturer.SelectedValue);
- product.ProductCost = Convert.ToDecimal(tbCost.Text);
- product.ProductDiscountAmount = Convert.ToInt32(tbSale.Text);
- product.ProductQuantityInStock = Convert.ToInt32(tbQuantity.Text);
- product.ProductStatus = null;
- product.idEdIzm = Convert.ToInt32(cmbEdIzm.SelectedValue);
- product.maxDiscount = Convert.ToInt32(tbMaxDiscount.Text);
- product.idSupplier = Convert.ToInt32(cmbSupplier.SelectedValue);
- product.ProductPhoto = null;
- db.tbe.Product.Add(product);
- db.tbe.SaveChanges();
- MessageBox.Show("Товар был успешно добавлен");
- this.Close();
- -----------------
- -----------------
- Капча второе окно с выводом картинки:
- <Grid>
- <StackPanel HorizontalAlignment="Center" Orientation="Vertical">
- <Image Name="CaptchaImage" Height="100" Width="150"></Image>
- <TextBox BorderBrush="Black" Name="tbCheckedCaptcha"></TextBox>
- <Button Background="#498c51" Content="Проверить" Click="Button_Click"></Button>
- </StackPanel>
- </Grid>
- public partial class Captcha : Window
- {
- public static bool checkedCaptcha;
- int num = 0;
- public Captcha()
- {
- InitializeComponent();
- CreateImg();
- }
- private void CreateImg()
- {
- Random random = new Random();
- num = random.Next(1000, 9999);
- var pixels = new byte[Convert.ToInt32(CaptchaImage.Width) * Convert.ToInt32(CaptchaImage.Height) * 4];
- random.NextBytes(pixels);
- BitmapSource bitmapSource = BitmapSource.Create(Convert.ToInt32(CaptchaImage.Width), Convert.ToInt32(CaptchaImage.Height), 96, 96, PixelFormats.Bgra32, null, pixels, Convert.ToInt32(CaptchaImage.Width) * 4);
- var visual = new DrawingVisual();
- using (DrawingContext drawingContext = visual.RenderOpen())
- {
- drawingContext.DrawText(
- new FormattedText(num.ToString(), CultureInfo.InvariantCulture, FlowDirection.LeftToRight,
- new Typeface("Arial"), 100, System.Windows.Media.Brushes.Red), new System.Windows.Point(0, CaptchaImage.Height / 2));
- drawingContext.DrawImage(bitmapSource, new Rect(0, 0, 256, 256));
- }
- var image = new DrawingImage(visual.Drawing);
- CaptchaImage.Source = image;
- }
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- if(num == Convert.ToInt32(tbCheckedCaptcha.Text))
- {
- if (!string.IsNullOrEmpty(tbCheckedCaptcha.Text))
- {
- MessageBox.Show("Код введен верно.");
- AuthorizationPage.checkedCaptcha = true;
-
- this.Close();
- }
- else
- {
- MessageBox.Show("Введите код для капчи");
- }
-
-
- }
- else
- {
- MessageBox.Show("Код введен неверно.");
- AuthorizationPage.checkedCaptcha = false;
- this.Close();
- }
- }
- }
- -----------------
- Классы
- -----------------
- Article
- public class Article
- {
- public string article
- {
- get;
- set;
- }
- public int count
- {
- get;set;
- }
- }
- -----------------
- db
- class db
- {
- public static Entities tbe;
- }
- -----------------
- Frame
- class MainFrame
- {
- public static Frame frame;
- }
- -----------------
- PartialEditedOrder - парш на смена цвета смену цвета
- -----------------
- public partial class Product
- {
- public SolidColorBrush colorBrushes
- {
- get
- {
- if (ProductQuantityInStock > 3)
- {
- SolidColorBrush scb = (SolidColorBrush)new BrushConverter().ConvertFromString("#20b2aa");
- return scb;
- }
- else
- {
- SolidColorBrush scb1 = (SolidColorBrush)new BrushConverter().ConvertFromString("#ff8c00");
- return scb1;
- }
- }
- }
- }
- -----------------
- PartialProduct. Вывод скидки товра. Вывод скидка товара. Закрашивание на ListView
- -----------------
- public double ActualPrice
- {
- get
- {
- if (ProductDiscountAmount != null)
- {
- double ammount = Convert.ToDouble(ProductCost) - Convert.ToDouble(ProductCost) / 100 * Convert.ToDouble(ProductDiscountAmount);
- return ammount;
- }
- else
- {
- return Convert.ToDouble(ProductCost);
- }
-
- }
- }
- public SolidColorBrush colorBrush
- {
- get
- {
- if (ProductDiscountAmount > 15)
- {
- SolidColorBrush solidColorBrush = new SolidColorBrush(Color.FromRgb(127, 255, 0));
- return solidColorBrush;
- }
- else
- {
- SolidColorBrush solidColorBrush = new SolidColorBrush(Color.FromRgb(255, 255, 255));
- return solidColorBrush;
- }
- }
- }
- -----------------
- Объединение ФИО В одно
- public partial class User
- {
- public string FullName
- {
- get
- {
- return UserSurname + " " + UserName + " " + UserPatronymic;
- }
- }
- }
- -----------------
- SaleClass
- -----------------
- public class SaleClass
- {
- public Order order { get; set; }
- public double Sale { get; set; }
- }
- -----------------
- SummClass
- public class SummClass
- {
- public Order order { get; set; }
- public int Summa { get; set; }
- public double
- SALE { get; set; }
- }
- -----------------
- Объединение городов в комбобокс на странице WindowOrder
- public partial class Point
- {
- public string displayPoint
- {
- get
- {
- string str = indexPoint.ToString() + " " + cityPoint + " " + streetPoint + " " + homePoint.ToString();
- return str;
- }
- }
- }
- -----------------
- Тут ведется вывод старой цены и новой цены с учетом скидки
- <StackPanel Orientation="Horizontal">
- <TextBlock Text=" "></TextBlock>
- <TextBlock Text="{Binding ProductCost, StringFormat={}{0:0}}" TextDecorations="Strikethrough" Uid="{Binding ProductDiscountAmount}" Loaded="TextBlock_Loaded"/>
- <TextBlock Text=" "></TextBlock>
- <TextBlock Text="{Binding ActualPrice, StringFormat={}{0:0}руб.}"/>
- </StackPanel>
|