public static FileChangeModel Parse(string fileName, FileChangeType fileChangeType = FileChangeType.Add) { var fileChangeModel = new FileChangeModel { FileName = fileName, FileChangeType = fileChangeType }; if (!fileName.Contains("__")) { return(fileChangeModel); } var fileParts = fileName.Split("__"); if (fileParts.Length < 3 || !fileParts[2].Contains(Convert.ToChar("."))) { return(fileChangeModel); } var priority = fileParts[2].Split(Convert.ToChar("."))[0] .Replace("F", "", StringComparison.InvariantCultureIgnoreCase); if (int.TryParse(priority, out var priorityInt)) { fileChangeModel.Priority = priorityInt; } return(fileChangeModel); }
private static int CopyFile(int nextVersionNumber, FileChangeModel fileChangeModel, IEvfConsoleArgs evfConsoleArgs) { var sourceFile = Path.Combine(evfConsoleArgs.SourceFilesPath, fileChangeModel.FileName); var destFileName = $"V{nextVersionNumber:0000}__{fileChangeModel.FileName}"; var destFilePath = Path.Combine(evfConsoleArgs.EvolveFolderPath, destFileName); if (File.Exists(sourceFile)) { Program.Logger.Verbose("Will copy {0} to {1}", sourceFile, destFilePath); File.Copy(sourceFile, destFilePath, false); } else { Program.Logger.Error("Unable to copy as the source file does not exist > {0} to {1}", sourceFile, destFilePath); return(nextVersionNumber); } return(nextVersionNumber + 1); }
private static FileChangesModel CheckForFileUpdates(IReadOnlyDictionary <string, string> existingHashes, IReadOnlyDictionary <string, string> sourceHashes) { var fileChangesModel = new FileChangesModel(); foreach (var(key, value) in sourceHashes) { if (!existingHashes.ContainsKey(key)) { fileChangesModel.FileChanges.Add(FileChangeModel.Parse(key)); continue; } var currentHash = existingHashes[key]; if (!value.ToUpperInvariant().Equals(currentHash.ToUpperInvariant())) { fileChangesModel.FileChanges.Add(FileChangeModel.Parse(key, FileChangeType.Update)); } } return(fileChangesModel); }