public override bool Execute()
        {
            var builder      = new StringBuilder();
            var orderedFiles = FilesToProcess.OrderBy(f => f.GetMetadata("FullPath")).ToArray();

            for (var i = 0; i < orderedFiles.Length; i++)
            {
                var current = orderedFiles[i];
                builder.AppendLine($"/* {current.GetMetadata("BasePath").Replace("\\","/")}{current.GetMetadata("RelativePath").Replace("\\","/")} */");
                foreach (var line in File.ReadLines(FilesToProcess[i].GetMetadata("FullPath")))
                {
                    builder.AppendLine(line);
                }
            }

            var content = builder.ToString();

            if (!File.Exists(OutputFile) || !SameContent(content, OutputFile))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(OutputFile));
                File.WriteAllText(OutputFile, content);
            }


            return(!Log.HasLoggedErrors);
        }
        private bool ExecuteCore()
        {
            Log.LogMessage($"Check files to process.");
            if (FilesToProcess == null || !FilesToProcess.Any())
            {
                Log.LogMessage($"No files exist to process.");
                return(true);
            }

            Log.LogMessage($"In ExecuteCore. Files exist. Number of files is {FilesToProcess.Length}");
            foreach (var file in FilesToProcess)
            {
                string filePath = file.GetMetadata("FullPath");
                var    contents = File.ReadAllText(filePath);

                if (!contents.StartsWith("#if NET462"))
                {
                    using (var fileStream = File.Create(filePath))
                        using (var writer = new StreamWriter(fileStream))
                        {
                            writer.WriteLine("#if NET462");
                            writer.WriteLine(contents);
                            writer.WriteLine("#endif");
                        }
                }

                var taskItem = new TaskItem(filePath);

                _processedFiles.Add(taskItem);
            }

            return(true);
        }
Beispiel #3
0
        public void AddFileToProcess(String source, Byte[] bytes, FileType fileType)
        {
            using (FinanceDBEntities context = new FinanceDBEntities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    FilesToProcess newItem = FilesToProcess.CreateFilesToProcess(0, source, bytes, DateTime.Now, (Byte)fileType);

                    context.FilesToProcess.AddObject(newItem);

                    context.SaveChanges();

                    transaction.Complete();
                }
            }
        }
Beispiel #4
0
        public void RemoveProcessedFile(FilesToProcess file)
        {
            using (FinanceDBEntities context = new FinanceDBEntities())
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    FilesToProcess toRemove = FirstElementOrNull <FilesToProcess>((from fs in context.FilesToProcess where fs.RecId == file.RecId select fs).Take <FilesToProcess>(1).ToArray <FilesToProcess>());

                    if (null != toRemove)
                    {
                        context.FilesToProcess.DeleteObject(toRemove);

                        context.SaveChanges();

                        transaction.Complete();
                    }
                }
            }
        }