private TSqlScript ParseSp(IFileInfoWrapper spFile)
        {
            var sql = _fileWrapper.ReadAllText(spFile.FullName);

            var sqlParser = new TSql140Parser(false);

            var parsedSql =
                sqlParser.Parse(new StringReader(sql), out var parseErrors);

            if (parseErrors.Count != 0)
            {
                throw new Exception($"Error parsing SQL file {spFile.FullName}");
            }

            var nonCommentTokens =
                parsedSql.ScriptTokenStream
                .Where(x => x.TokenType != TSqlTokenType.MultilineComment)
                .Where(x => x.TokenType != TSqlTokenType.SingleLineComment)
                .Select(x => x.Text);

            var result =
                sqlParser.Parse(new StringReader(string.Join("", nonCommentTokens)), out var parseErrors2);

            if (parseErrors2.Count != 0)
            {
                throw new Exception($"Error parsing SQL with comments removed {spFile.FullName}");
            }

            return(result as TSqlScript);
        }
Пример #2
0
 public TxtHandler(IFileWrapper file, IFileInfoWrapper fileInfo, IConsoleWrapper console, IDirectoryWrapper directory)
     : base(file, fileInfo, console, directory)
 {
     _file      = file;
     _fileInfo  = fileInfo;
     _console   = console;
     _directory = directory;
 }
Пример #3
0
        private async Task SaveChangesAsync(IEnumerable <Class> classes)
        {
            IFileInfoWrapper location = _fileInfoWrapperFactory.Create(_fileLocationProvider.GetClassRepositoryPath());

            using (var writer = new StreamWriter(location.OpenWrite()))
            {
                await writer.WriteAsync(JsonConvert.SerializeObject(classes));
            }
        }
Пример #4
0
        private async Task SaveChangesAsync(IEnumerable <FileEntity.Test> tests)
        {
            IFileInfoWrapper location = _fileInfoWrapperFactory.Create(_testRepositoryLocation);

            using (var writer = new StreamWriter(location.OpenWrite()))
            {
                await writer.WriteAsync(JsonConvert.SerializeObject(tests));
            }
        }
Пример #5
0
        protected AbstractHandler(IFileWrapper file,
                                  IFileInfoWrapper fileInfo,
                                  IConsoleWrapper console,
                                  IDirectoryWrapper directory)

        {
            _file      = file;
            _fileInfo  = fileInfo;
            _console   = console;
            _directory = directory;
        }
        private async Task CreateClassFromFile(IFileInfoWrapper[] files)
        {
            byte             chosenIndex = SharedConsoleFlows.AskForByte("What file should be used?");
            IFileInfoWrapper chosenFile  = await GetFile(files, chosenIndex);

            var request = new CreateMagisterClassRequest
            {
                MagisterFileLocation = chosenFile.FullName
            };
            CreateMagisterClassResult createMagisterClassResponse = await _classController.CreateMagisterClassAsync(request);

            if (createMagisterClassResponse.ValidationMessages.Any())
            {
                SharedConsoleFlows.PrintValidationMessages(createMagisterClassResponse.ValidationMessages);
                await StartAsync();
            }
        }
Пример #7
0
        private async Task <List <FileEntity.Test> > RetrieveOrCreateTestsAsync()
        {
            IFileInfoWrapper       location = _fileInfoWrapperFactory.Create(_testRepositoryLocation);
            List <FileEntity.Test> tests    = null;

            if (!location.Exists)
            {
                tests = new List <FileEntity.Test>();
            }
            else
            {
                using (var reader = new StreamReader(location.OpenRead()))
                {
                    tests = JsonConvert.DeserializeObject <List <FileEntity.Test> >(await reader.ReadToEndAsync());
                }
            }
            return(tests);
        }
Пример #8
0
        /// <inheritdoc/>
        public MagisterClass ReadClass(Application.Models.ValueTypes.Path fileLocation)
        {
            IFileInfoWrapper fileInfo = _fileInfoWrapperFactory.Create(fileLocation);

            using (var reader = new StreamReader(fileInfo.OpenRead()))
                using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
                {
                    var magisterRecords = csv
                                          .GetRecords <MagisterRecord>()
                                          .ToList();
                    var students = magisterRecords.MapToMagisterStudents();

                    return(new MagisterClass
                    {
                        Name = magisterRecords.First().Klas,
                        Students = students,
                    });
                }
        }
Пример #9
0
        public void Init()
        {
            _mockFileInfo = Substitute.For <IFileInfoWrapper>();
            _mockFileInfo.Name.Returns("fileInfoName");
            _mockFileInfo.FullName.Returns("fullFileName");
            _mockFileInfo.CreationTime.Returns(new DateTime(2020, 12, 31));
            _mockFileInfo.Extension.Returns(".txt");

            _mockConsole = Substitute.For <IConsoleWrapper>();

            _mockFile = Substitute.For <IFileWrapper>();
            _mockFile.ReadAllText(_mockFileInfo.Name).Returns("5545");

            _mockDirectory = Substitute.For <IDirectoryWrapper>();
            _mockDirectory.CreateDirectory(_mockFileInfo.Name);
            _mockDirectory.GetCreationTime(_mockFileInfo.CreationTime.ToString(CultureInfo.InvariantCulture));

            _target = new TxtHandler(_mockFile, _mockFileInfo, _mockConsole, _mockDirectory);
        }
Пример #10
0
        private async Task <List <Class> > RetrieveOrCreateClassesAsync()
        {
            var repositoryPath        = _fileLocationProvider.GetClassRepositoryPath();
            IFileInfoWrapper location = _fileInfoWrapperFactory.Create(repositoryPath);
            List <Class>     classes  = null;

            if (location.Exists)
            {
                using (StreamReader reader = new StreamReader(location.OpenRead()))
                {
                    classes = JsonConvert.DeserializeObject <List <Class> >(await reader.ReadToEndAsync());
                }
            }
            else
            {
                classes = new List <Class>();
            }
            return(classes);
        }
Пример #11
0
 public FileSystem(IDirectoryInfoWrapper currentDirectory, IFileInfoWrapper fileInfoWrapper)
 {
     _currentDirectory = currentDirectory;
     _fileInfoWrapper  = fileInfoWrapper;
     WorkingDirectory  = _currentDirectory.WorkingDirectory;
 }
Пример #12
0
 private ActionType ProcessFile(IFileInfoWrapper file)
 {
     return(fileSystemProcessingStrategy
            .ProcessItemFinded(file, filter, OnFileFinded, OnFileFiltered, OnEvent));
 }
        public HousekeepingBookWriter(IFileLocationProvider fileLocationProvider)
        {
            IFileInfoWrapper workbookLocation = fileLocationProvider.GetWorkbookLocation();

            _excelPackage = new ExcelPackage(workbookLocation.ToFileInfo());
        }
Пример #14
0
 public FileSystem(IDirectoryInfoWrapper currentDirectory, IFileInfoWrapper fileInfoWrapper)
 {
     _currentDirectory = currentDirectory;
     _fileInfoWrapper = fileInfoWrapper;
     WorkingDirectory = _currentDirectory.WorkingDirectory;
 }
Пример #15
0
 public TextReader Create(IFileInfoWrapper path)
 {
     return(new StreamReader(path.OpenRead()));
 }