Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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();
                }
            }
        }
Esempio n. 4
0
        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();
                }
            }
        }
Esempio n. 5
0
        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;
            }
        }
Esempio n. 6
0
 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();
         }
     }
 }
Esempio n. 7
0
        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;
            }
        }
Esempio n. 8
0
 static void SetupStream(IValidationSerializer serializer, out Stream stream, out Encoding encoding)
 {
     stream = new MemoryStream();
     encoding = Encoding.Unicode;
 }