public void GenerateSolution(SolutionSerializationMode serializationMode = SolutionSerializationMode.Bare)
        {
            if (DataSource == null)
            {
                DataSource = new StreamReader(SourcePath);
            }
            InstanceLoader.Reader = DataSource;
            Instance instance = InstanceLoader.LoadInstanceFile();

            InstanceConverter.Instance = instance;
            InstanceConverter.ConvertToProblem();
            Solution solution = new Solution()
            {
                Instance = instance,
            };

            solution.GenerateSolutionFromRealData();
            InstanceJsonSerializer serializer = new InstanceJsonSerializer();

            if (OutputFilename == null)
            {
                OutputFilename = Path.GetFileNameWithoutExtension(SourcePath) + ".json";
            }
            serializer.Path = OutputFilename;
            FileInfo file = new FileInfo(OutputFilename);

            file.Directory.Create();
            serializer.SerializeSolution(solution, serializationMode);
        }
        public void GenerateInstance()
        {
            if (DataSource == null)
            {
                DataSource = new StreamReader(SourcePath);
            }
            InstanceLoader.Reader = DataSource;
            var instance = InstanceLoader.LoadInstanceFile();

            InstanceConverter.Instance = instance;
            InstanceConverter.ConvertToProblem();
            InstanceJsonSerializer serializer = new InstanceJsonSerializer();

            if (OutputFilename == null)
            {
                OutputFilename = Path.GetFileNameWithoutExtension(SourcePath) + ".json";
            }
            serializer.Path = OutputFilename;
            FileInfo file = new FileInfo(OutputFilename);

            file.Directory.Create();
            serializer.SerializeInstance(instance);
        }