Exemplo n.º 1
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();
                }
            }
        }
Exemplo n.º 2
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();
                }
            }
        }