public void Draw(Configuration configuration)
        {
            SchemaEntity schema;

            using (var fileStream = FileManager.OpenFileStream(configuration.SchemaFilePath))
            {
                schema = _schemaReader.Read(fileStream);
            }

            var points = _pointPositionCalculator.Handle(schema);

            if (FileManager.IsExist(configuration.DirectoryPath))
            {
                throw new Exception("Такая папка уже существует");
            }
            FileManager.CreateDirectory(configuration.DirectoryPath);
            FileManager.CopyFile("readme.md", Path.Combine(configuration.DirectoryPath, "readme.md"));
            using (var repo = new Repository(Repository.Init(configuration.DirectoryPath)))
            {
                Commands.Stage(repo, "readme.md");
                var maxCommitsCount = configuration.MaxCommitsCount > 4 ? configuration.MaxCommitsCount : 4;
                _commitCreator.Create(points, repo, maxCommitsCount, configuration.FileName, configuration.UserName,
                                      configuration.UserEmail);
            }
        }
        public void CreateRepositoryWithCommits()
        {
            var points = new List <PointPosition>
            {
                new PointPosition(0, 0, Saturation.Light, new DateTime(2017, 9, 24))
            };

            const string workingDirectoryPath = "test";

            if (FileManager.IsExist(workingDirectoryPath))
            {
                FileManager.RemoveDirectory(workingDirectoryPath);
            }
            FileManager.CreateDirectory(workingDirectoryPath);
            using (var repo = new Repository(Repository.Init(workingDirectoryPath)))
            {
                CommitCreator.Create(points, repo, 4, "test_file.txt", "TestUserName", "*****@*****.**");
            }
        }