public void GetSchemaFiles()
        {
            #region væntigögn ...
            string TEST_DATA_FILE = Path.Combine(TEST_DATA_BASE_FOLDER, this.GetType().Namespace, this.GetType().Name, MethodBase.GetCurrentMethod().Name, EXPECTED_FILE_NAME);
            List <Pair <string, Triple <string, string, string> > > test_data = TestUtilities.ReadObjectFromFile <List <Pair <string, Triple <string, string, string> > > >(TEST_DATA_FILE);
            #endregion

            foreach (Pair <string, Triple <string, string, string> > wsdl_and_expected_schemafiles in test_data)
            {
                #region inntak tíundað ...
                TestUtilities.ReportObject <string>(String.Format("Inntak {0}", MethodBase.GetCurrentMethod().Name), wsdl_and_expected_schemafiles.First);
                #endregion

                Tuple <string, string, string> schema_files = WebServiceParser.GetSchemaFiles(wsdl_and_expected_schemafiles.First);

                #region úttak lítillega meðhöndlað ...
                Triple <string, string, string> actual = new Triple <string, string, string>(schema_files.Item1, schema_files.Item2, schema_files.Item3);
                #endregion

                #region úttak tíundað ...
                TestUtilities.ReportObject <Triple <string, string, string> >(String.Format("Úttak {0}", MethodBase.GetCurrentMethod().Name), actual);
                #endregion

                #region samanburður vænti- og raungagna ...
                Assert.IsTrue(wsdl_and_expected_schemafiles.Second.Equals(actual));
                #endregion
            }
        }
예제 #2
0
        private void tb_wsdl_changed(object sender, EventArgs e)
        {
            Tuple <string, string, string> schema_files = null;

            try
            {
                schema_files = WebServiceParser.GetSchemaFiles(tb_wsdl.Text);
            }
            catch
            { }

            if (schema_files != null)
            {
                if (!String.IsNullOrWhiteSpace(schema_files.Item1))
                {
                    tb_message_schema.Text = schema_files.Item1;
                }

                if (!String.IsNullOrWhiteSpace(schema_files.Item2))
                {
                    tb_type_schema.Text = schema_files.Item2;
                }

                if (!String.IsNullOrWhiteSpace(schema_files.Item3))
                {
                    tb_common_type_schema.Text = schema_files.Item3;
                }
            }

            List <Tuple <string, string, string> > operations = new List <Tuple <string, string, string> >();

            try
            {
                operations = WebServiceParser.GetOperationsWithMessages(tb_wsdl.Text);
            }
            catch
            { }

            cb_operation.Items.Clear();

            if (operations.Count == 0)
            {
                cb_operation.Items.Add("Engar þjónustuaðgerðir finnast ...");

                cb_operation.SelectedIndex = 0;

                b_generate_wikicode.Enabled = false;

                return;
            }

            operations.Sort();

            foreach (Tuple <string, string, string> operation in operations)
            {
                cb_operation.Items.Add(operation.Item1);
            }

            cb_operation.SelectedIndex = 0;

            b_generate_wikicode.Enabled = true;
        }
예제 #3
0
        static void Main(string[] args)
        {
            Console.Clear();

            Console.Out.WriteLine(String.Format("--- RB Wiki-kóðasmiður ({0}) ---------------------------------------------",
                                                Assembly.GetExecutingAssembly().GetName().Version.ToString()));
            Console.Out.WriteLine();

            if (args == null || args.Length == 0)
            {
                args = new string[] { "-?" }
            }
            ;

            Arguments arguments = new Arguments(args);

            #region hjálp ...
            if (!(arguments["?"] == null && arguments["help"] == null))
            {
                Console.Out.WriteLine(@"Notkun: wikicodegenerator.exe");
                Console.Out.WriteLine("           -operation \"[nafn aðgerðar]\"");
                Console.Out.WriteLine("           -description \"[lýsing aðgerðar]\"");
                Console.Out.WriteLine("           -wsdl \"[slóð WSDL-skjals Torg-þjónustu]\"");
                Console.Out.WriteLine("          (-messages \"[slóð skemaskráar sem skilgreinir aðgerðir");
                Console.Out.WriteLine("              Torg-þjónustu]\")");
                Console.Out.WriteLine("          (-schema \"[slóð skemaskráar sem skilgreinir týpur Torg-þjónustu])\"");
                Console.Out.WriteLine("          (-common_schema \"[slóð skemaskráar sem skilgreinir samnýttar týpur");
                Console.Out.WriteLine("              Torg-þjónustu]\")");
                Console.Out.WriteLine("          (-example)");
                Console.Out.WriteLine("          (-version \"[útgáfunúmer]\"");
                Console.Out.WriteLine("           -version_date \"[útgáfudagsetning]\"");
                Console.Out.WriteLine("           -version_description \"[útgáfulýsing]\")");
                Console.Out.WriteLine("          (-dictionary)");
                Console.Out.WriteLine("          [-output \"[nafn úttaksskráar]\"");
                Console.Out.WriteLine("          |-wiki");
                Console.Out.WriteLine("          (-overwrite)");
                Console.Out.WriteLine("          (-user \"[Wiki-notandanafn]\"");
                Console.Out.WriteLine("           -password \"[Wiki-lykilorð]\")]");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"Tilgangur viðfanga:");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -operation: Tilgreinir nafn aðgerðar (sem skal smíða Wiki-kóða fyrir).");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -description: Tilgreinir lýsingu aðgerðar.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -wsdl: Tilgreinir slóð WSDL-skjals Torg-þjónustu.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -messages: Tilgreinir slóð skemaskráar sem skilgreinir aðgerðir");
                Console.Out.WriteLine(@"     Torg-þjónustu. Fyrir eldri Torg-þjónustur eru aðgerðir skilgreindar í");
                Console.Out.WriteLine(@"     WSDL-skjali þeirra og fyrir slíkar þjónustur þarf því ekki að tiltaka");
                Console.Out.WriteLine(@"     þetta viðfang.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -schema: Tilgreinir slóð skemaskráar sem skilgreinir týpur Torg-þjónustu.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -common_schema: Tilgreinir slóð skemaskráar sem skilgreinir samnýttar týpur");
                Console.Out.WriteLine(@"     Torg-þjónustu.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -example: Tilgreinir hvort smíða skuli XML-dæmi SOAP-skilaboða. Ef og");
                Console.Out.WriteLine(@"     aðeins ef viðfangið er tiltekið er XML-dæmi smíðuð.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -version: Tilgreinir útgáfunúmer Torg-þjónustu. Ef og aðeins ef");
                Console.Out.WriteLine(@"     viðfangið er tiltekið eru útgáfuupplýsingar settar í Wiki-kóða.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -version_date: Tilgreinir útgáfudagsetning Torg-þjónustu. Ef og aðeins ef");
                Console.Out.WriteLine(@"     viðfangið er tiltekið eru útgáfuupplýsingar settar í Wiki-kóða.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -version_description: Tilgreinir útgáflýsingu Torg-þjónustu. Ef og aðeins");
                Console.Out.WriteLine(@"     er viðfangið er tiltekið eru útgáfuupplýsingar settar í Wiki-kóða.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -dictionary: Tilgreinir hvort veita skuli upplýsingar um stöðu hugataka");
                Console.Out.WriteLine(@"     viðkomandi Torg-þjónsutu í Orðabók RB. Ef og aðeins ef viðfangið er");
                Console.Out.WriteLine(@"     tiltekið er staða viðkomandi hugtaka auglýst.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -output: Tilgreinir slóð úttaksskráar.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -wiki: Tilgreinir hvort uppfæra skuli viðeigandi Wiki-skjal með");
                Console.Out.WriteLine(@"     smíðuðum Wiki-kóða. Ef og aðeins ef viðfangið er tiltekið er reynt.");
                Console.Out.WriteLine(@"     uppfæra Wiki.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -overwrite: Tilgreinir hvort yfirskrifa skuli núverandi Wiki-skjal.");
                Console.Out.WriteLine(@"     Að öðrum kosti er reynt að flétta Wiki-kóða saman við Wiki-skjalið.");
                Console.Out.WriteLine(@"     Ef og aðeins ef viðfangið er tiltekið er Wiki-skjal yfirskrifað.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -user: Tilgreinir Wiki-notandanafn.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -password: Tilgreinir Wiki-lykilorð.");
                Console.Out.WriteLine();
                Console.Out.WriteLine(@"  -?|-help: Birtir þessar upplýsingar.");
                Console.Out.WriteLine();

                Console.In.Read();

                return;
            }
            #endregion

            if (ValidateInput(arguments))
            {
                try
                {
                    Tuple <string, string, string> schema_files = WebServiceParser.GetSchemaFiles(arguments["wsdl"]);

                    string messages_schema = (arguments["messages"] == null && String.IsNullOrWhiteSpace(schema_files.Item1)) ?
                                             arguments["wsdl"] :
                                             (arguments["messages"] == null ?
                                              schema_files.Item1 :
                                              arguments["messages"]);

                    string wikicode = Generator.GenerateWikiCode(arguments["description"],
                                                                 arguments["operation"],
                                                                 arguments["wsdl"],
                                                                 messages_schema,
                                                                 (arguments["schema"] == null ? schema_files.Item2 : arguments["schema"]),
                                                                 (arguments["common_schema"] == null ? schema_files.Item3 : arguments["common_schema"]),
                                                                 (arguments["version"] == null) ? String.Empty : arguments["version"],
                                                                 (arguments["version_date"] == null) ? String.Empty : arguments["version_date"],
                                                                 (arguments["version_description"] == null) ? String.Empty : arguments["version_description"],
                                                                 (arguments["example"] != null) ? true : false,
                                                                 (arguments["version"] == null || arguments["version_date"] == null || arguments["version_description"] == null) ? false : true,
                                                                 (arguments["dictionary"] != null) ? true : false,
                                                                 WikiCodeLanguage.Icelandic);

                    if (arguments["output"] != null)
                    {
                        File.WriteAllText(arguments["output"], string.IsNullOrWhiteSpace(wikicode) ? String.Empty : wikicode);

                        Console.Out.WriteLine();
                        Console.Out.WriteLine();
                        Console.Out.WriteLine(String.Format("Wiki-kóði fyrir {0} hefur verið skrifaður í eftirfarandi skrá:", arguments["operation"]));
                        Console.Out.WriteLine(String.Format("   {0}", arguments["output"]));
                    }

                    if (arguments["wiki"] != null)
                    {
                        string url = Generator.SubmitToWiki(WebServiceParser.GetServiceName(arguments["wsdl"]),
                                                            arguments["operation"],
                                                            wikicode,
                                                            arguments["user"],
                                                            arguments["password"],
                                                            (arguments["overwrite"] != null) ? true : false);

                        Console.Out.WriteLine();
                        Console.Out.WriteLine("Eftirfarandi Wiki-skjal hefur verið uppfært:");
                        Console.Out.WriteLine(String.Format("   {0}", url));
                    }
                }
                catch (Exception x)
                {
                    Console.Out.WriteLine();
                    Console.Out.WriteLine(String.Format("Eftirfarandi villa kom upp: {0}", x.Message));
                    Console.Out.WriteLine();
                    Console.Out.WriteLine(String.Format("Köllunarstakkur villu: {0}{1}", Environment.NewLine, x.StackTrace));
                }
            }

            Console.Out.WriteLine();
            Console.Out.WriteLine();
            Console.Out.WriteLine("Keyrslu WikiCodeGenerator er lokið.");
            Console.Out.WriteLine();
            Console.Out.WriteLine("--------------------------------------------------------------------------------");
        }