static string GetOutputFilename(IValidationSerializer serializer) { // Determine the filename for our output string filename = "output." + serializer.DefaultExtension; if (_Arguments.Contains(_OutputFile)) { filename = _Arguments[_OutputFile].Value; if (object.Equals(filename, Path.GetFileNameWithoutExtension(filename))) filename = filename + "." + serializer.DefaultExtension; } return filename; }
static void SetupStream(IValidationSerializer serializer, out Stream stream, out Encoding encoding) { bool useConsole = true; bool unknown = false; if (_Arguments.Contains(_OutputArgument)) { if (_Arguments[_OutputArgument].Value.Equals("file", StringComparison.InvariantCultureIgnoreCase)) { useConsole = false; } else if (_Arguments[_OutputArgument].Value.Equals("console", StringComparison.InvariantCultureIgnoreCase) || _Arguments[_OutputArgument].Value.Equals("screen", StringComparison.InvariantCultureIgnoreCase) || _Arguments[_OutputArgument].Value.Equals("stdout", StringComparison.InvariantCultureIgnoreCase)) { useConsole = true; } else { unknown = true; } } // FIXME: what to do with an unknown output? if (useConsole) { stream = Console.OpenStandardOutput(); encoding = Console.OutputEncoding; } else { // Determine the filename for our output string filename = "output." + serializer.DefaultExtension; if (_Arguments.Contains(_OutputFile)) { filename = _Arguments[_OutputFile].Value; if (object.Equals(filename, Path.GetFileNameWithoutExtension(filename))) { filename = filename + "." + serializer.DefaultExtension; } } // FIXME: what if the file exists? stream = new FileStream(filename, FileMode.Create, FileAccess.Write); encoding = serializer.DefaultEncoding; } }
static void SelfTest(IXmlDocumentProvider docProvider, IValidationRuleset selectedRuleset) { IValidationSerializer serializer = GetSerializer(docProvider); if (serializer != null) { Stream stream; Encoding encoding; SetupStream(serializer, out stream, out encoding); if (selectedRuleset != null) { serializer.Ruleset = selectedRuleset; RulesetValidator validator = new RulesetValidator(selectedRuleset); Console.Write(string.Format( ResourceManager.GetString("performingSelfTest"), ResourceManager.GetString(selectedRuleset.NameString)) ); serializer.TestResults = validator.Test(); Console.WriteLine(ResourceManager.GetString("done")); } try { serializer.Serialize(stream, encoding); } finally { stream.Close(); } } }
static void ValidateFile(IXmlDocumentProvider docProvider, IValidationRuleset selectedRuleset) { IValidationSerializer serializer = GetSerializer(docProvider); bool needsMoreArguments = false; if (serializer != null) { string iCalText = null; if (selectedRuleset != null) { serializer.Ruleset = selectedRuleset; if (_Arguments.Contains(_FileArgument)) { // Load the calendar from a local file Console.Write(ResourceManager.GetString("loadingCalendar")); FileStream fs = new FileStream(_Arguments[_FileArgument].Value, FileMode.Open, FileAccess.Read); if (fs != null) { StreamReader sr = new StreamReader(fs); iCalText = sr.ReadToEnd(); sr.Close(); } Console.WriteLine(ResourceManager.GetString("Done")); } else if (_Arguments.Contains(_UriArgument)) { // Load the calendar from a Uri Console.Write(ResourceManager.GetString("loadingCalendar")); Uri uri = new Uri(_Arguments[_UriArgument].Value); string username = null, password = null; if (_Arguments.Contains(_UsernameArgument)) { username = _Arguments[_UsernameArgument].Value; if (_Arguments.Contains(_PasswordArgument)) { password = _Arguments[_PasswordArgument].Value; } } WebClient client = new WebClient(); if (username != null && password != null) { client.Credentials = new System.Net.NetworkCredential(username, password); } iCalText = client.DownloadString(uri); Console.WriteLine(ResourceManager.GetString("Done")); } else { needsMoreArguments = true; } if (needsMoreArguments) { WriteDescription(); } else { if (iCalText == null) { throw new Exception(ResourceManager.GetString("calendarNotFound")); } else { RulesetValidator rulesetValidator = new RulesetValidator(selectedRuleset, iCalText); if (rulesetValidator != null) { Console.Write(string.Format( ResourceManager.GetString("validatingCalendar"), ResourceManager.GetString(selectedRuleset.NameString) )); serializer.ValidationResults = rulesetValidator.Validate(); Console.WriteLine(ResourceManager.GetString("done")); } } } } Stream stream; Encoding encoding; SetupStream(serializer, out stream, out encoding); try { serializer.Serialize(stream, encoding); } finally { stream.Close(); } } }
static void SetupStream(IValidationSerializer serializer, out Stream stream, out Encoding encoding) { bool useConsole = true; bool unknown = false; if (_Arguments.Contains(_OutputArgument)) { if (_Arguments[_OutputArgument].Value.Equals("file", StringComparison.InvariantCultureIgnoreCase)) useConsole = false; else if (_Arguments[_OutputArgument].Value.Equals("console", StringComparison.InvariantCultureIgnoreCase) || _Arguments[_OutputArgument].Value.Equals("screen", StringComparison.InvariantCultureIgnoreCase) || _Arguments[_OutputArgument].Value.Equals("stdout", StringComparison.InvariantCultureIgnoreCase)) useConsole = true; else unknown = true; } // FIXME: what to do with an unknown output? if (useConsole) { stream = Console.OpenStandardOutput(); encoding = Console.OutputEncoding; } else { string filename = GetOutputFilename(serializer); // FIXME: what if the file exists? stream = new FileStream(filename, FileMode.Create, FileAccess.Write); encoding = serializer.DefaultEncoding; } }
static void OpenOutputFile(IValidationSerializer serializer) { if (_Arguments.Contains(_OutputArgument) && _Arguments[_OutputArgument].Value.Equals("file", StringComparison.InvariantCultureIgnoreCase)) { if (_Arguments.Contains(_OpenOutputFile)) { // Start a new process for the filename in question. string filename = GetOutputFilename(serializer); Process p = new Process(); p.StartInfo = new ProcessStartInfo(filename); p.Start(); } } }
static void SetupStream(IValidationSerializer serializer, out Stream stream, out Encoding encoding) { bool useConsole = true; bool unknown = false; if (_Arguments.Contains(_OutputArgument)) { if (_Arguments[_OutputArgument].Value.Equals("file", StringComparison.InvariantCultureIgnoreCase)) useConsole = false; else if (_Arguments[_OutputArgument].Value.Equals("console", StringComparison.InvariantCultureIgnoreCase) || _Arguments[_OutputArgument].Value.Equals("screen", StringComparison.InvariantCultureIgnoreCase) || _Arguments[_OutputArgument].Value.Equals("stdout", StringComparison.InvariantCultureIgnoreCase)) useConsole = true; else unknown = true; } // FIXME: what to do with an unknown output? if (useConsole) { stream = Console.OpenStandardOutput(); encoding = Console.OutputEncoding; } else { // Determine the filename for our output string filename = "output." + serializer.DefaultExtension; if (_Arguments.Contains(_OutputFile)) { filename = _Arguments[_OutputFile].Value; if (object.Equals(filename, Path.GetFileNameWithoutExtension(filename))) filename = filename + "." + serializer.DefaultExtension; } // FIXME: what if the file exists? stream = new FileStream(filename, FileMode.Create, FileAccess.Write); encoding = serializer.DefaultEncoding; } }
static void SetupStream(IValidationSerializer serializer, out Stream stream, out Encoding encoding) { stream = new MemoryStream(); encoding = Encoding.Unicode; }