using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace ПроверкаПродукции
{
    internal class FileWork
    {
        public static string pathStart; // Путь к исходному файлу
        public static string pathEnd; // Путь к конечному файлу
        public void VvodNameFile()
        {
            char otv; // Переменная для диалога
            while (true)
            {
                Console.WriteLine("После нажатия Enter, Вам необходимо указать csv файл где хранятся входные данные");
                Console.ReadKey();
                OpenFileDialog OD = new OpenFileDialog();
                OD.DefaultExt = ".csv";
                OD.Filter = "Text documents (.csv)|*.csv";
                if (OD.ShowDialog() == DialogResult.OK)
                {
                    pathStart = OD.FileName;
                    break;
                }
                else
                {
                    while (true)
                    {
                        try
                        {
                            Console.Write("\nЖелаете повторить выбор входных данных?\nДа(Y)/Нет(N)\nОтвет: ");
                            otv = Convert.ToChar(Console.ReadLine());
                            break;
                        }
                        catch
                        {
                            Console.WriteLine("Введены некорректные данные!");
                        }
                    }
                    if ((otv.Equals('N') || otv.Equals('N') || otv.Equals('Т') || otv.Equals('т')))
                    {
                        return;
                    }
                }
            }
        }
        public void SaveNameFile() // Определение файла для вывода результатов
        {
            char otv; // Переменная для диалога с пользователем
            while (true)
            {
                Console.WriteLine("После нажатия Enter, Вам необходимо указать csv файл куда будет сохранён результат");
                Console.ReadKey();
                SaveFileDialog OD = new SaveFileDialog();
                OD.DefaultExt = ".csv";
                OD.Filter = "Text documents (.csv)|*.csv";
                if (OD.ShowDialog() == DialogResult.OK)
                {
                    pathEnd = OD.FileName;
                    break;
                }
                else
                {
                    while (true)
                    {
                        try
                        {
                            Console.Write("\nЖелаете повторить выбор файла?\nДа(Y)/Нет(N)\nОтвет: ");
                            otv = Convert.ToChar(Console.ReadLine());
                            break;
                        }
                        catch
                        {
                            Console.WriteLine("Введены некорректные данные!");
                        }
                    }
                    if ((otv.Equals('N') || otv.Equals('N') || otv.Equals('Т') || otv.Equals('т')))
                    {
                        return;
                    }
                }
            }
        }
        public string[,] GetData() // Взятие входных данных из файла
        {
            var lines = File.ReadAllLines(pathStart);
            string[][] text = new string[lines.Length][];
            for (int i = 0; i < text.Length; i++)
            {
                text[i] = lines[i].Split(';');
            }
            string[,] vhod = new string[text.Length, text[text.Length - 2].Length];
            int k = 0;
            foreach (string[] line in text)
            {
                int p = 0;
                foreach (string s in line)
                {
                    vhod[k, p] = Convert.ToString(s);
                    p++;
                }
                k++;
            }
            return vhod;
        }
    }
}
