Загрузка данных


static void correktirovkaZapisei()
{
    // Важно: проверяем на пустоту и прерываем метод, если список пуст
    if (!MyProducts.Any())
    {
        Console.WriteLine("Список пуст\n");
        return;
    }

    Console.WriteLine("Какую запись поменять?");
    listNames();
    
    int choice = IntInRange("Ваш выбор: ", 1, MyProducts.Count);
    int index = choice - 1;

    // Выгружаем структуру во временную переменную для изменения
    Product currentProduct = MyProducts[index];

    Console.WriteLine("\nЧто вы хотите изменить в этом товаре?");
    Console.WriteLine("1 - Имя");
    Console.WriteLine("2 - Вид упаковки");
    Console.WriteLine("3 - Цена");
    Console.WriteLine("4 - Срок реализации");
    Console.WriteLine("0 - Отмена");
    
    int editChoice = IntInRange("Ваш выбор: ", 0, 4);

    switch (editChoice)
    {
        case 1:
            while (true)
            {
                Console.WriteLine("Введите новое имя:");
                string newName = ValString(Console.ReadLine());
                if (newName == null) continue;

                if (newName == currentProduct.name) 
                {
                    break; // Имя осталось тем же
                }
                
                if (MyProductsName.Contains(newName))
                {
                    Console.WriteLine("Такой товар уже существует. Напишите другое имя");
                }
                else
                {
                    // Обновляем список имен: удаляем старое, добавляем новое
                    MyProductsName.Remove(currentProduct.name);
                    MyProductsName.Add(newName);
                    
                    currentProduct.name = newName;
                    break;
                }
            }
            break;
            
        case 2:
            Console.WriteLine("Введите вид упаковки: \n 1 - Коробка \n 2 - Банка \n 3 - Бутылка");
            currentProduct.pack = (TypeOfPack)IntInRange("", 1, 3);
            break;
            
        case 3:
            while (true)
            {
                Console.WriteLine("Введите новую цену:");
                if (double.TryParse(Console.ReadLine(), out double price) && price >= 0)
                {
                    currentProduct.price = price;
                    break;
                }
                Console.WriteLine("Ошибка: введите корректное число");
            }
            break;
            
        case 4:
            Console.WriteLine("Введите новый срок реализации в днях");
            currentProduct.period = PositiveInt("");
            break;
            
        case 0:
            Console.WriteLine("Отмена редактирования.\n");
            return;
    }

    // Сохраняем измененную структуру обратно в список
    MyProducts[index] = currentProduct;
    Console.WriteLine("Запись успешно обновлена!\n");
}