XML Reis

Esimesel me peame ava "SQL Server Management Studio". Seal on aken koos "Server name", "Windows Authentication

Sql Connection Window

Teisel esitame uue taotluse kas nupul klõpsates või "CTRL + N

New Query

Kolmandal me teeme andmebaas koos nimega naiteks "Reis"

Database creatingõ

Uus tabel loomine

                CREATE TABLE Reis (
                    ReisID INT PRIMARY KEY,
                    Sihtkoht NVARCHAR(100),
                    Transport_Lennureis NVARCHAR(100),
                    Transport_Rong NVARCHAR(100),
                    Lennujaam NVARCHAR(100),
                    Majutus_Hotell NVARCHAR(100),
                    Majutus_Tahed INT,
                    Ekskursioon NVARCHAR(100),
                    Hind_Transport MONEY,
                    Hind_Majutus MONEY,
                    Hind_Ekskursioon MONEY,
                    ErilineSoovitus NVARCHAR(255),
                    Hinnang FLOAT
                );

            
Tabeli loomine

Kirjeldus

  • ReisID (INT, PRIMARY KEY)
  • Miks vajalik: on unikaalne identifikaator iga reisi jaoks. Iga reis, mille andmed sisestatakse, saab oma unikaalse ID, mille abil saab seda kiiresti üles leida ja eristada teistest reisidest.

  • Sihtkoht (NVARCHAR(100))
  • Miks vajalik: See väli sisaldab reisi sihtkoha nime (nt "Pariis", "New York"). NVARCHAR on tekstiline tüüp, mis toetab Unicode märke (nt erinevad tähed erinevates keeltes). Maksimaalne pikkus on 100 tähemärki.

  • Transport_Lennureis (NVARCHAR(100))
  • Miks vajalik: Siia salvestatakse lennufirma või lennu teenuse nimi, mis on osa reisi transportidest. Näiteks "Lufthansa" või "Air France". NVARCHAR lubab kasutada ka eri keelte tähti.

  • Transport_Rong (NVARCHAR(100))
  • Miks vajalik: Siia salvestatakse rongifirma nimi või rongiteenuse nimi, kui reis sisaldab rongisõitu. Näiteks "Eurostar" või "Thalys". Kui reisi sees on rong, siis täidetakse see väli.

  • Lennujaam (NVARCHAR(100))
  • Miks vajalik: Siin salvestatakse lennujaama nimi, kust reis algab või kuhu reis lõppeb. Näiteks "Charles de Gaulle" või "Heathrow". See väli on oluline, et määrata, millist lennujaama reis mõjutab.

  • Majutus_Hotell (NVARCHAR(100))
  • Miks vajalik: Siia salvestatakse hotelli nimi, kus reisijad ööbivad. Näiteks "Hotel Le Meurice" või "Hilton Garden Inn". See on vajalik, et kirjeldada reisi majutuse osa.

  • Majutus_Tahed (INT)
  • Miks vajalik: Siin salvestatakse hotelli tähe hindamine (nt 1–5 tärni). See annab infot, kui kvaliteetne on majutus ja aitab reisil osalejatel valida vastavalt oma eelistusele.

  • Ekskursioon (NVARCHAR(100))
  • Miks vajalik: Siia salvestatakse ekskursioonide või tuuride nimed, mis on osa reisist. Näiteks "Louvre giidiga tuur" või "Eiffeli torn". See väli aitab kirjeldada, milliseid lisateenuseid (nt ekskursioone) on reisil kaasatud.

  • Hind_Transport (MONEY)
  • Miks vajalik: Siin salvestatakse reisija transpordi kulud (lennu ja rongi hind). MONEY tüüp on spetsialiseeritud andmevorming raha väärtuste jaoks, mis on täpsed ja sobivad rahaga töötamiseks.

  • Hind_Majutus (MONEY)
  • Miks vajalik: Siia salvestatakse majutuse hind (nt hotellimaksumus). See väli näitab, kui palju maksab reisi majutusosa, ja on samuti esitatud raha väärtuses (MONEY tüüp).

  • Hind_Ekskursioon (MONEY)
  • Miks vajalik: Siia salvestatakse ekskursioonide või muude lisateenuste hind. See aitab näidata, kui palju lisakulutusi on reisi ajal plaanitud.

  • ErilineSoovitus (NVARCHAR(255))
  • Miks vajalik: Siin salvestatakse eriline soovitus, mis võib olla seotud reisi sihtkoha või tegevustega (nt "Võta kaasa vihmavari" või "Kohustuslik külastus Louvre'i muuseumis"). Väli on maksimaalselt 255 tähemärki pikk.

  • Hinnang (FLOAT)
  • Miks vajalik: Siin salvestatakse reisi keskmine hinne (nt 4.5 või 3.9). FLOAT tüüp sobib hästi numbriliste väärtuste jaoks, mis võivad sisaldada komakohti ja esindavad reaalset hinne arvu. See annab ülevaate reisi kvaliteedist.

Lisa uus andmed tabelisse

                    INSERT INTO Reis (ReisID, Sihtkoht, Transport_Lennureis, Transport_Rong, Lennujaam, Majutus_Hotell, Majutus_Tahed, Ekskursioon, Hind_Transport, Hind_Majutus, Hind_Ekskursioon, ErilineSoovitus, Hinnang)
                    VALUES
                    (1, 'Barcelona', 'AirBaltic', 'Renfe', 'Barcelona El Prat', 'Hotel Arts', 5, 'Sagrada Familia Tour', 250.00, 600.00, 80.00, 'Try seafood paella near the beach', 4.7),
                    (2, 'Paris', 'Air France', 'TGV', 'Charles de Gaulle', 'Ibis Paris', 3, 'Louvre Museum', 300.00, 400.00, 50.00, 'Evening walk along the Seine', 4.5),
                    (3, 'Berlin', 'Lufthansa', 'ICE', 'Berlin Brandenburg', 'Hilton Berlin', 4, 'Berlin Wall Tour', 200.00, 500.00, 40.00, 'Visit Berlin nightlife clubs', 4.3),
                    (4, 'Rome', 'Alitalia', 'Trenitalia', 'Fiumicino', 'Hotel Eden', 5, 'Colosseum Tour', 280.00, 550.00, 70.00, 'Taste authentic Italian pizza', 4.8),
                    (5, 'London', 'British Airways', 'Eurostar', 'Heathrow', 'The Ritz', 5, 'London Eye Ride', 350.00, 700.00, 60.00, 'Enjoy afternoon tea at Ritz', 4.9),
                    (6, 'Amsterdam', 'KLM', 'NS International', 'Schiphol', 'NH Collection', 4, 'Canal Cruise', 220.00, 450.00, 45.00, 'Try Dutch cheese market', 4.4),
                    (7, 'Prague', 'Czech Airlines', 'ČD Railjet', 'Vaclav Havel Airport', 'Grandior Hotel', 4, 'Charles Bridge Tour', 210.00, 400.00, 35.00, 'Taste Czech beer in Old Town', 4.2),
                    (8, 'Vienna', 'Austrian Airlines', 'ÖBB Railjet', 'Vienna International', 'Hotel Imperial', 5, 'Schonbrunn Palace', 240.00, 520.00, 55.00, 'Attend a classical concert', 4.6),
                    (9, 'Madrid', 'Iberia', 'Renfe AVE', 'Barajas', 'Hotel Palace', 5, 'Royal Palace Tour', 260.00, 580.00, 65.00, 'Taste churros with hot chocolate', 4.5),
                    (10, 'Lisbon', 'TAP Air Portugal', 'CP Comboios', 'Lisbon Portela', 'Altis Grand Hotel', 4, 'Belem Tower Visit', 230.00, 420.00, 30.00, 'Try pastel de nata', 4.3),
                    (11, 'Athens', 'Aegean Airlines', 'TrainOSE', 'Athens International', 'Electra Palace', 4, 'Acropolis Tour', 250.00, 460.00, 50.00, 'Enjoy Greek tavernas', 4.6),
                    (12, 'Budapest', 'WizzAir', 'MÁV Railways', 'Budapest Ferenc Liszt', 'Corinthia Hotel', 5, 'Danube Cruise', 200.00, 470.00, 40.00, 'Relax in thermal baths', 4.4),
                    (13, 'Copenhagen', 'SAS', 'DSB Railways', 'Copenhagen Airport', 'Hotel D’Angleterre', 5, 'Tivoli Gardens', 270.00, 650.00, 55.00, 'Taste Danish pastries', 4.7),
                    (14, 'Stockholm', 'Norwegian Air', 'SJ Trains', 'Arlanda', 'Grand Hotel', 5, 'Vasa Museum', 280.00, 670.00, 45.00, 'Visit Stockholm Archipelago', 4.8),
                    (15, 'Oslo', 'Norwegian Air Shuttle', 'Vy Trains', 'Oslo Gardermoen', 'Hotel Continental', 5, 'Vigeland Park', 260.00, 610.00, 40.00, 'Try fresh salmon dishes', 4.5),
                    (16, 'Helsinki', 'Finnair', 'VR Trains', 'Helsinki Vantaa', 'Hotel Kämp', 5, 'Suomenlinna Fortress', 250.00, 600.00, 35.00, 'Relax in a Finnish sauna', 4.6),
                    (17, 'Tallinn', 'AirBaltic', 'Elron', 'Tallinn Airport', 'Swissotel', 4, 'Old Town Tour', 180.00, 350.00, 25.00, 'Try Estonian black bread', 4.2),
                    (18, 'Riga', 'AirBaltic', 'LDz Railways', 'Riga International', 'Radisson Blu', 4, 'Art Nouveau Tour', 190.00, 360.00, 30.00, 'Visit Riga Central Market', 4.3),
                    (19, 'Vilnius', 'Ryanair', 'LTG Link', 'Vilnius Airport', 'Kempinski Hotel', 5, 'Gediminas Tower', 200.00, 370.00, 20.00, 'Taste Lithuanian cepelinai', 4.4),
                    (20, 'Warsaw', 'LOT Polish Airlines', 'PKP Intercity', 'Warsaw Chopin', 'Hotel Bristol', 5, 'Old Town Tour', 210.00, 400.00, 35.00, 'Taste pierogi dumplings', 4.5),
                    (21, 'Krakow', 'LOT Polish Airlines', 'PKP Intercity', 'Krakow Balice', 'Radisson Blu', 4, 'Wawel Castle Tour', 220.00, 420.00, 40.00, 'Explore salt mines nearby', 4.4),
                    (22, 'Brussels', 'Brussels Airlines', 'Thalys', 'Brussels Zaventem', 'Hotel Amigo', 5, 'Atomium Visit', 230.00, 500.00, 30.00, 'Try Belgian waffles', 4.5),
                    (23, 'Zurich', 'Swiss International', 'SBB CFF FFS', 'Zurich Airport', 'Baur au Lac', 5, 'Lake Zurich Cruise', 300.00, 720.00, 60.00, 'Taste Swiss chocolate', 4.8),
                    (24, 'Geneva', 'Swiss Air', 'SBB Railways', 'Geneva Airport', 'Hotel d’Angleterre', 5, 'UN Palace Tour', 310.00, 740.00, 55.00, 'Walk around Lake Geneva', 4.7),
                    (25, 'Milan', 'ITA Airways', 'Trenitalia', 'Malpensa', 'Excelsior Gallia', 5, 'Duomo Cathedral', 280.00, 580.00, 45.00, 'Shopping in Galleria Vittorio Emanuele II', 4.6),
                    (26, 'Florence', 'ITA Airways', 'Trenitalia', 'Peretola', 'Hotel Savoy', 5, 'Uffizi Gallery', 270.00, 560.00, 50.00, 'Taste Florentine steak', 4.7),
                    (27, 'Venice', 'ITA Airways', 'Trenitalia', 'Marco Polo Airport', 'Hotel Danieli', 5, 'Gondola Ride', 290.00, 600.00, 60.00, 'Walk in San Marco Square', 4.8),
                    (28, 'Munich', 'Lufthansa', 'DB ICE', 'Munich Airport', 'Hotel Bayerischer Hof', 5, 'Neuschwanstein Castle', 250.00, 580.00, 55.00, 'Taste Bavarian beer', 4.6),
                    (29, 'Hamburg', 'Eurowings', 'DB ICE', 'Hamburg Airport', 'Atlantic Kempinski', 5, 'Harbor Tour', 240.00, 570.00, 40.00, 'Enjoy seafood by the Elbe', 4.4),
                    (30, 'Frankfurt', 'Lufthansa', 'DB ICE', 'Frankfurt Airport', 'Steigenberger Frankfurter Hof', 5, 'Römer Square Tour', 260.00, 600.00, 45.00, 'Visit Goethe House', 4.5);
                
Lisa andmed
Reisid html veebileht
Reisid php veebileht

C# projekt loomine

index.cshtml.cs

                using Microsoft.AspNetCore.Mvc;
                using Microsoft.AspNetCore.Mvc.RazorPages;
                using System.IO;
                using System.Text;
                using System.Xml.Xsl;

                namespace XML_Reisid.Pages
                {
                    public class IndexModel : PageModel
                    {
                        public string TransformedXml { get; private set; }

                        private readonly IWebHostEnvironment _hostingEnvironment;

                        public IndexModel(IWebHostEnvironment hostingEnvironment)
                        {
                            _hostingEnvironment = hostingEnvironment;
                        }

                        public void OnGet()
                        {
                            try
                            {
                                var xmlPath = Path.Combine(_hostingEnvironment.ContentRootPath, "wwwroot", "database.xml");
                                var xsltPath = Path.Combine(_hostingEnvironment.ContentRootPath, "wwwroot", "reis.xslt");

                                if (!System.IO.File.Exists(xmlPath) || !System.IO.File.Exists(xsltPath))
                                {
                                    TransformedXml = "

Error: XML or XSLT file not found.

"; return; } var xslt = new XslCompiledTransform(); xslt.Load(xsltPath); using (var sw = new StringWriter()) { xslt.Transform(xmlPath, null, sw); TransformedXml = sw.ToString(); } } catch (Exception ex) { TransformedXml = $"

An error occurred during XML transformation: {ex.Message}

"; } } } }

index.cshtml

                @page
                @model IndexModel
                @{
                    ViewData["Title"] = "Home page";
                }

                
@Html.Raw(Model.TransformedXml)

C# zone'is

Esimene, me peame ssh võti genereerida

                ssh-keygen -C bsergachev@gmail.com
            
SSH key gen

Sellest võti me peame panna zone.ee

Add key in zone.ee

Järgmine kopeeri Sisselogimine info zone.ee's

sisselogimine-info

ja kirjuta sellest käsk terminalist:

Logi

.NET installerida

Kirjutame käskid:

  • curl -L https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
  • chmod +x dotnet-install.sh
  • ./dotnet-install.sh
.NET installing

Samuti me saame kontrollida, kas see on installitud või mitte

lisame teed dotnet kaustale, kopeeri järgmised käsud ja pane käima. export DOTNET_ROOT=$HOME/.dotnet export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

Pärast kirjutame exit ja siseneme jälle

Github repos clone zone.ee serveris

Teeme push C# code GitHub'is

Pärast kloneerida sellest repository zone.ee serveris

Ja käivitame programmi

Run program

Lisa port zone.ee

Siin me saame vaata et meil on localhost port:

                    virt131638:dn-68-118.tll01.zoneas.eu:~/XML_Reiss/XML_Reiss git:(master)> dotnet run
                    Building...
                    info: Microsoft.Hosting.Lifetime[14]
                        Now listening on: http://localhost:5257
                

Kui me tahame lisa see port 5257 zone.ee... Me saame minna -> zone.ee -> Veebimajutus -> Veebiserver -> Alamdomeenid

Add port in zone.ee

Vaata kas meil program tööta või mitte!

Viimasel pildil me saame vaata SSL Sertifikaat... xml.bogdansergachev23.thkit.ee

Kui käivitame serveri ja läheme lingi kaudu lehele, näeme, et kõik töötab meie jaoks.

Working web