예제 #1
0
파일: Shop.cs 프로젝트: DaAyupov21/Zoya
        private static string makeAnOrder(string NameOrder, int Count, Courier courier, Customer customer) // функция в которую будем создавать заказы и изменять вместе с этим значения в базе данных
        {
            using (ShoppingContext db = new ShoppingContext())
            {
                Stock stock = null;          //создаем пустую локальную переменную
                foreach (var c in db.Stocks) //ищем по названию нужную запись в бд
                {
                    if (NameOrder.IndexOf(c.Type) >= 0)
                    {
                        stock = c; //записываем найденную запись в локальную переменную
                        break;
                    }
                }
                if (stock == null)
                {
                    MessageBox.Show("Не найдена запись", "Ошибка");
                    return("");       //прерываем программу
                }
                stock.Count -= Count; // вычитаем значение количества
                if (stock.Count < 0)
                {
                    MessageBox.Show("На складен нет столько товаров, сколько вы заказали", "Ошибка");
                    return("");
                }
                else if (stock.Count == 0)
                {
                    db.Stocks.Remove(stock); //удаляем запись т.к. товаров больше не осталось
                    db.SaveChanges();        //сохраняем изменения в бд
                }
                else
                {
                    db.Entry(stock).State = System.Data.Entity.EntityState.Modified; //если товара на складе остается, то просто меняем
                    db.SaveChanges();
                }


                string Order = $"Заказ успешно совершен!\n" +
                               $"Детали заказа:\n" +
                               $"{stock.Type} Количество: {Count} Цена: {stock.Price * Count}\n" +
                               $"Сервис доставки: {courier.Name}\n" +
                               $"Имя заказчика: {customer.Name} {customer.SecondName}";
                return(Order);
            }
        }