private void Find_Click(object sender, RoutedEventArgs e)
        {
            string value = FindTB.Text.Trim();

            if (commander.IsInputInvalid(value, "Category name"))
            {
                MessageBox.Show("Invalid value");
                return;
            }
            if (commander.ExistsInDatabaseByNameCaseInsensitive(OSHome.DbSources.Categories, value, out string found))
            {
                int categoryId = db.Categories.Single(x => x.category_name == found).category_id;
                MessageBox.Show($"Found:\nID: {categoryId}\nName: {found}");
                return;
            }
            MessageBox.Show("Not Found");
            FindTB.Text = "Category name";
        }
        private void Find_Click(object sender, RoutedEventArgs e)
        {
            string firstName = FindFirstNameTB.Text.Trim();
            string lastName  = FindLastNameTB.Text.Trim();

            if (commander.IsInputInvalid(firstName, "First name") || commander.IsInputInvalid(lastName, "Last name") || !commander.LettersInputOnly(firstName) || !commander.LettersInputOnly(lastName))
            {
                MessageBox.Show("Invalid first name or last name values.");
                return;
            }
            var foundEmployees = db.Employees.Where(x => x.employee_first_name.ToLower() == firstName.ToLower() && x.employee_name.ToLower() == lastName.ToLower());

            if (foundEmployees.Count() == 0)
            {
                MessageBox.Show($"No employees named {firstName} {lastName} found.");
                return;
            }
            StringBuilder sb = new StringBuilder();

            foreach (var emp in foundEmployees)
            {
                sb.Append($"ID: {emp.employee_id}, {emp.employee_first_name} {emp.employee_name}\n");
            }
            MessageBox.Show($"Employees found:\n{sb}");
            FindFirstNameTB.Text = "First name";
            FindLastNameTB.Text  = "Last name";
        }
        private void Add_Click(object sender, RoutedEventArgs e)
        {
            string value = AddNameTB.Text.Trim();

            if (commander.IsInputInvalid(value, "Producer name"))
            {
                MessageBox.Show($"Can't add empty or default value to database.");
                return;
            }
            if (commander.ExistsInDatabaseByNameCaseInsensitive(OSHome.DbSources.Producers, value, out string found))
            {
                MessageBox.Show($"Producer with name {found} already exists in database.");
                return;
            }
            Producers newProducer = new Producers();

            newProducer.producer_name = value;
            db.Producers.Add(newProducer);
            db.SaveChanges();
            MessageBox.Show($"Successfully added new producer to database: {value}.");
            AddNameTB.Text = "Producer name";
        }
예제 #4
0
        private void Add_Click(object sender, RoutedEventArgs e)
        {
            string firstName = AddFirstNameTB.Text.Trim();
            string lastName  = AddLastNameTB.Text.Trim();
            string fen       = AddFENTB.Text.Trim();

            if (commander.IsInputInvalid(firstName, "First name") || commander.IsInputInvalid(lastName, "Last name"))
            {
                MessageBox.Show($"Invalid name value.");
                return;
            }
            if (!commander.LettersInputOnly(firstName))
            {
                MessageBox.Show($"First name must consist of letter only.");
                return;
            }
            if (!commander.LettersInputOnly(lastName))
            {
                MessageBox.Show($"Last name must consist of letter only.");
                return;
            }
            if (fen.Length > 0 && fen.Length < 8)
            {
                MessageBox.Show($"FEN must consist of 8-10 letters or digits or must be empty.");
                return;
            }
            if (!commander.LettersAndDigitsInputOnly(fen))
            {
                MessageBox.Show($"FEN must consist of letters or digits only, {fen} is not valid FEN number");
                return;
            }
            var duplicatedClient = db.Clients.SingleOrDefault(x =>
                                                              x.client_first_name.ToLower() == firstName.ToLower() &&
                                                              x.client_name.ToLower() == lastName.ToLower() &&
                                                              x.firm_evidence_number.ToLower() == fen.ToLower());

            if (duplicatedClient != null)
            {
                MessageBox.Show($"Client already exists.\nID: {duplicatedClient.client_id}, {duplicatedClient.client_first_name} {duplicatedClient.client_name}, FEN: {duplicatedClient.firm_evidence_number}");
                return;
            }
            Clients newClient = new Clients();

            newClient.client_first_name    = firstName;
            newClient.client_name          = lastName;
            newClient.firm_evidence_number = fen;
            db.Clients.Add(newClient);
            db.SaveChanges();
            MessageBox.Show($"Successfully created client:\nID: {newClient.client_id}, {newClient.client_first_name} {newClient.client_name}, FEN: {newClient.firm_evidence_number}");
            AddFirstNameTB.Text = "First name";
            AddLastNameTB.Text  = "Last name";
            AddFENTB.Text       = "FEN";
        }
예제 #5
0
        private void Add_Click(object sender, RoutedEventArgs e)
        {
            var cat  = db.Categories.SingleOrDefault(x => x.category_name == AddCategoriesCB.Text);
            var prod = db.Producers.SingleOrDefault(x => x.producer_name == AddProducersCB.Text);

            if (cat == null || prod == null)
            {
                MessageBox.Show("Choose correct category and producer");
                return;
            }
            if (commander.IsInputInvalid(AddNameTB.Text, "Product name"))
            {
                MessageBox.Show($"Product name must not be empty");
                return;
            }
            string integerPartS = AddPriceIntTB.Text.Trim();
            string decimalPartS = AddatePriceDecimalTB.Text.Trim();

            if (!int.TryParse(integerPartS, out int integerPart) || !int.TryParse(decimalPartS, out int decimalPart))
            {
                MessageBox.Show($"Invalid value of price.");
                return;
            }
            string concatPrice = integerPartS + "." + decimalPartS;

            if (!decimal.TryParse(concatPrice, out decimal newPrice))
            {
                MessageBox.Show($"Invalid price");
                return;
            }
            string productName = AddNameTB.Text;
            int    categoryId  = cat.category_id;
            int    producerId  = prod.producer_id;

            if (commander.ExistsInDatabaseByNameCaseSensitive(OSHome.DbSources.Products, productName))
            {
                Products existingProduct = db.Products.Single(x => x.product_name == productName);
                if (existingProduct.price == newPrice && existingProduct.category == categoryId && existingProduct.producer == producerId)
                {
                    MessageBox.Show($"Product with values:\nName: {productName} already exists. (ID = {existingProduct.product_id})");
                    return;
                }
            }
            Products newProduct = new Products();

            newProduct.product_name = productName;
            newProduct.category     = (short)categoryId;
            newProduct.producer     = (short)producerId;
            newProduct.price        = newPrice;
            db.Products.Add(newProduct);
            db.SaveChanges();
            if (category_nameComboBox.Text != string.Empty && newProduct.category == (category_nameComboBox.SelectedItem as Categories).category_id)
            {
                RefillProductsByCatList();
            }
            MessageBox.Show($"Successfully created new product:\nID: {newProduct.product_name}");
            AddCategoriesCB.SelectedIndex = 0;
            AddProducersCB.SelectedIndex  = 0;
            AddNameTB.Text            = "Product name";
            AddPriceIntTB.Text        = "Integer part";
            AddatePriceDecimalTB.Text = "Decimal part";
        }