Meeskond "Kujuneb": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Rvali (talk | contribs)
Epeinar (talk | contribs)
 
(48 intermediate revisions by 3 users not shown)
Line 1: Line 1:
===XML===
== Teema ==
Muusikapoe tootekataloogi osaline realisatsioon klient-server põhimõttel.
 
 
== Liikmed ==
* Rauno Väli
* Andreas Lea
* Erik Peinar
 
 
== Lähtekood ==
* Versioonihalduseks kasutatud GitHub-i võimalusi:
https://github.com/R3ality/tootekataloog
 
 
== XML ==
=== Andmefail (XML) ===
<source lang="xml">
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<albumid>
<!-- <?xml-stylesheet type="text/xsl" href="style.xslt"?> -->
   <album id="1">
<tootekataloog>
     <artist>Queen</artist>
 
     <plaat>Greatest Hits</plaat>
  <!-- zanride loetelu-->
     <aasta>2005</aasta>
   <zanrid>
     <genre>Pop</genre>
    <zanr id="1">
    <songs>15</songs>
      <nimi>Pop</nimi>
    <pilt>http://rpmedia.ask.com/ts?u=/wikipedia/en/thumb/3/3f/RedGreatestHitsQuennalbumcover.png/180px-RedGreatestHitsQuennalbumcover.png</pilt>
    </zanr>
    </album>
    <zanr id="2">
  <album id="2">
      <nimi>Rap</nimi>
    <artist>Madonna</artist>
    </zanr>
    <plaat>American Life</plaat>
  </zanrid>
    <aasta>2002</aasta>
 
    <genre>Rap</genre>
  <!-- artistide loetelu-->
    <songs>19</songs>
  <artistid>
    <pilt>http://www.clubbingmagazine.com/images/reviews/madonna%20single.jpg</pilt>
     <artist id="1">
  </album>
      <nimi>Queen</nimi>
</albumid>
    </artist>
     <artist id="2">
      <nimi>Madonna</nimi>
     </artist>
  </artistid>
 
  <!-- albumite loetelu-->
  <albumid>
     <album id="1">
      <zanr>1</zanr>
      <artist>1</artist>
      <nimi>Greatest Hits</nimi>
      <aasta>2005</aasta>
      <lugusi>15</lugusi>
      <pilt>http://bit.ly/jreygb</pilt>
      <hind>12</hind>
    </album>
    <album id="2">
      <zanr>2</zanr>
      <artist>2</artist>
      <nimi>American Life</nimi>
      <aasta>2002</aasta>
      <lugusi>19</lugusi>
      <pilt>http://bit.ly/jwEHdl</pilt>
      <hind>8.3</hind>
    </album>
  </albumid>
</tootekataloog>
</source>
</source>


===XSD===
 
=== Skeemifail (XSD) ===
<source lang="xml">
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="albumid">
   <xs:element name="tootekataloog">
     <xs:complexType>
     <xs:complexType>
       <xs:sequence>
       <xs:sequence>
         <xs:element maxOccurs="unbounded" name="album">
         <xs:element name="zanrid">
           <xs:complexType>
           <xs:complexType>
             <xs:sequence>
             <xs:sequence>
               <xs:element name="artist" type="xs:string" />
               <xs:element maxOccurs="unbounded" name="zanr">
               <xs:element name="plaat" type="xs:string" />
                <xs:complexType>
               <xs:element name="aasta" type="xs:unsignedShort" />
                  <xs:sequence>
              <xs:element name="genre" type="xs:string" />
                    <xs:element name="nimi" type="xs:string" />
              <xs:element name="songs" type="xs:unsignedByte" />
                  </xs:sequence>
              <xs:element name="pilt" type="xs:string" />
                  <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
               </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="artistid">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="artist">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="nimi" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="albumid">
          <xs:complexType>
            <xs:sequence>
               <xs:element maxOccurs="unbounded" name="album">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="zanr" type="xs:unsignedByte" />
                    <xs:element name="artist" type="xs:unsignedByte" />
                    <xs:element name="nimi" type="xs:string" />
                    <xs:element name="aasta" type="xs:unsignedShort" />
                    <xs:element name="lugusi" type="xs:unsignedByte" />
                    <xs:element name="pilt" type="xs:string" />
                    <xs:element name="hind" type="xs:decimal" />
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
             </xs:sequence>
             </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedByte" use="required" />
           </xs:complexType>
           </xs:complexType>
         </xs:element>
         </xs:element>
Line 48: Line 127:
</source>
</source>


===XSLT===
 
<source lang="xslt">
=== Stiilifail (XSLT) ===
<?xml version="1.0"?>
<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
   <xsl:template match="/">
     <html>
     <html>
       <head>
       <head>
         <title>Muusikakogu</title>
         <title>Tootekataloog</title>
         <style type="text/css">
         <style type="text/css">
           body{
           body {
           font-family: Arial, Verdana;
           font-family: Arial, Verdana;
           }
           }


          h1{
           table {
          color: #19212b;
          }
 
           table{
           font-size: 12px;
           font-size: 12px;
           border-collapse: collapse;
           border-collapse: collapse;
           }
           }


           .mainTable{
           table.main {
           border: 1px solid #98bf21;
           border: 1px solid #98bf21;
           }
           }


           .mainTable th{
           table.main th {
           padding:3px 10px 3px 10px;
           padding: 3px 10px 3px 10px;
           border: 1px solid #98bf21;
           border: 1px solid #98bf21;
           background: #A7C942;
           background-color: #A7C942;
           color: #FFFFFF;
           color: #FFFFFF;
           }
           }
           .mainTable tr {
 
           background: #FFFFFF;
           table.main tr {
          color: #000000;
           background-color: #FFFFFF;
           }
           }


           .mainTable td{
           table.main td {
 
           text-align: center;
           text-align: center;
           padding: 3px;
           padding: 3px;
           border:1px solid #98bf21;
           border: 1px solid #98bf21;
           }
           }
          .mainTable td:hover {
 
          background-color: #000000;
           a, a:hover, a:active, a:visited {
          }
           a, a:hover,a:active,a:visited {
           color: #000000;
           color: #000000;
           }
           }
           a img {
           a img {
            border: none;
          border: none;
            }
          }
 
         </style>
         </style>
       </head>
       </head>
       <body>
       <body>
         <h1>Albumid</h1>
       
         <table class="mainTable">
         <h3>Albumid</h3>
           <tr>          
       
         <table class="main">
           <tr>
             <th>Artist</th>
             <th>Artist</th>
             <th>Plaat</th>
             <th>Album</th>
            <th>Žanr</th>
             <th>Aasta</th>
             <th>Aasta</th>
             <th>Genre</th>
             <th>Lugusi</th>
            <th>Laule</th>
             <th>Pilt</th>
             <th>Pilt</th>
             <th>YouTube</th>
             <th>YouTube</th>
            <th>Hind</th>
           </tr>
           </tr>
           <xsl:for-each select="albumid/album">
           <xsl:for-each select="tootekataloog/albumid/album">
            <xsl:variable name="artistID" select="artist"/>
            <xsl:variable name="zanrID" select="zanr"/>
             <tr>
             <tr>
               <xsl:if test="position() mod 2 =0">
               <xsl:if test="position() mod 2 =0">
                 <xsl:attribute name="style">
                 <xsl:attribute name="style">
                   background-color:#EAF2D3;
                   background-color: #EAF2D3;
                 </xsl:attribute>              
                 </xsl:attribute>
               </xsl:if>
               </xsl:if>
               <td>
               <td>
                 <xsl:value-of select="artist"/>
                 <xsl:value-of select="/tootekataloog/artistid/artist[@id=$artistID]/nimi"/>
               </td>
               </td>
               <td>
               <td>
                 <xsl:value-of select="plaat"/>
                 <xsl:value-of select="nimi"/>
               </td>
               </td>
               <td>
               <td>
                 <xsl:value-of select="aasta"/>
                 <xsl:value-of select="/tootekataloog/zanrid/zanr[@id=$zanrID]/nimi"/>
               </td>
               </td>
               <td>
               <td>
                 <xsl:value-of select="genre"/>
                 <xsl:value-of select="aasta"/>
               </td>
               </td>
               <td>
               <td>
                 <xsl:value-of select="songs"/>
                 <xsl:value-of select="lugusi"/>
               </td>
               </td>
               <td>
               <td>
                 <img width="100" height="100">
                 <img width="100" height="100">
Line 148: Line 225:
                 <a>
                 <a>
                   <xsl:attribute name="href">
                   <xsl:attribute name="href">
                     <xsl:text>http://www.youtube.com/results?search_query=</xsl:text><xsl:value-of select="artist"/>+<xsl:value-of select="plaat"/>
                     <xsl:text>http://www.youtube.com/results?search_query=</xsl:text><xsl:value-of select="/tootekataloog/artistid/artist[@id=$artistID]/nimi"/>+<xsl:value-of select="nimi"/>
                   </xsl:attribute>
                   </xsl:attribute>
                   <img>
                   <img src="http://www.upload.ee/image/1288041/youtube-badge-64x64.png">
                    <xsl:attribute name="src">
                      <xsl:text>http://www.upenn.edu/pennnews/current/images/icons/youtube-64.png</xsl:text>
                    </xsl:attribute>
                   </img>
                   </img>
                 </a>
                 </a>
               </td>
               </td>
              <td>
                <xsl:value-of select="hind"/> €
              </td>
            </tr>
          </xsl:for-each>
        </table>
        <br/><br/>
       
        <h3>Toored andmed</h3>
        <table>
          <tr>
            <td style="padding-right: 50px; vertical-align: top;">
              <h4>Žanrid</h4>
              <table class="main">
                <tr>
                  <th>id</th>
                  <th>nimi</th>
                </tr>
                <xsl:for-each select="tootekataloog/zanrid/zanr">
                  <tr>
                    <xsl:if test="position() mod 2 =0">
                      <xsl:attribute name="style">
                        background-color: #EAF2D3;
                      </xsl:attribute>
                    </xsl:if>
                    <td>
                      <xsl:value-of select="@id"/>
                    </td>
                    <td>
                      <xsl:value-of select="nimi"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </table> 
                 
            </td>
            <td style="padding-right: 50px; vertical-align: top;">
             
              <h4>Artistid</h4>
              <table class="main">
                <tr>
                  <th>id</th>
                  <th>nimi</th>
                </tr>
                <xsl:for-each select="tootekataloog/artistid/artist">
                  <tr>
                    <xsl:if test="position() mod 2 =0">
                      <xsl:attribute name="style">
                        background-color: #EAF2D3;
                      </xsl:attribute>
                    </xsl:if>
                    <td>
                      <xsl:value-of select="@id"/>
                    </td>
                    <td>
                      <xsl:value-of select="nimi"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </table>
             
            </td>
            <td style="vertical-align: top;">
              <h4>Albumid</h4>
              <table class="main">
                <tr>
                  <th>id</th>
                  <th>zanr</th>
                  <th>artist</th>
                  <th>nimi</th>
                  <th>aasta</th>
                  <th>lugusi</th>
                  <th>pilt</th>
                  <th>hind</th>
                </tr>
                <xsl:for-each select="tootekataloog/albumid/album">
                  <tr>
                    <xsl:if test="position() mod 2 =0">
                      <xsl:attribute name="style">
                        background-color: #EAF2D3;
                      </xsl:attribute>
                    </xsl:if>
                    <td>
                      <xsl:value-of select="@id"/>
                    </td>
                    <td>
                      <xsl:value-of select="zanr"/>
                    </td>
                    <td>
                      <xsl:value-of select="artist"/>
                    </td>
                    <td>
                      <xsl:value-of select="nimi"/>
                    </td>
                    <td>
                      <xsl:value-of select="aasta"/>
                    </td>
                    <td>
                      <xsl:value-of select="lugusi"/>
                    </td>
                    <td>
                      <xsl:value-of select="pilt"/>
                    </td>
                    <td>
                      <xsl:value-of select="hind"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </table>


             </tr>      
             </td>
           
           </tr>
           </xsl:for-each>
         </table>
         </table>
       
       </body>
       </body>
     </html>
     </html>
   </xsl:template>
   </xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
</source>
</source>
=== Andmefaili vaade stiilifailiga ===
[[File:Muusikakogu_naidis.png]]
== Teenus ==
* Online jooksev teenus:
http://kujuneb.somee.com/Teenus.asmx
=== Teenuse signatuur ===
Hetkeseisuga on teenusel järgnevad avalikud veebimeetodid (tärniga tähistatud meetodid nõuavad autentimist):
<br>AnnaAlbum(int Id)
<br>AnnaAlbumLaos()
<br>AnnaAlbumiLood()
<br>AnnaAlbumid()
<br>AnnaAlbumidByZanr()
<br>AnnaAlbumidByArtist()
<br>AnnaArtist()
<br>AnnaArtistid()
<br>AnnaKasutajaNimi()
<br>AnnaLadu()
<br>AnnaLaod()
<br>AnnaLogi()*
<br>AnnaLood()
<br>AnnaLooAlbum()
<br>AnnaLugu()
<br>AnnaRiigid()
<br>AnnaRiik()
<br>AnnaZanr()
<br>AnnaZanrid()
<br>KasOnAutenditud()
<br>KustutaAlbum()*
<br>KustutaArtist()*
<br>KustutaLugu()*
<br>LisaAlbum()*
<br>LisaArtist()*
<br>LisaLugu()*
<br>LoendaMeetodiParingud()*
<br>LogiValja()
<br>MuudaAlbum()*
<br>Otsi()
<br>MuudaArtist()*
<br>MuudaLugu()*
=== Andmetabelid ===
[[File:Andmebaas.png]]
=== Statistika ===
[[File:Statistika.png]]
== Klientrakendus ==
Klientrakendus on teostatud C# Windows Forms rakendusena
=== Demoprogramm ===
* '''TootekatKlient-local.exe'''
http://www.upload.ee/files/1372294/TootekatKlient-local.exe.html (versioon 1)
http://www.upload.ee/files/1389696/TootekatKlient-v2-local.exe.html (versioon 2)
Eeldab et teenus jookseb lokaalses masinas (näiteks Visual Studiost debugima panduna)
* '''TootekatKlient-remote.exe'''
http://www.upload.ee/files/1372297/TootekatKlient-remote.exe.html (versioon 1)
http://www.upload.ee/files/1389698/TootekatKlient-v2-remote.exe.html (versioon 2)
Online teenuse pihta käiv klient. Administreerimisfunktsioonid sihipäraselt eemaldatud. Autentimine ei toimi.
=== Ekraanipildid ===
[[File:TootekatKlientv2-1.png]]
[[File:KujunebKlient1.jpg]]
[[File:KujunebKlient2.jpg]]
[[File:KujunebKlient3.jpg]]
[[File:KujunebKlient4.jpg]]

Latest revision as of 17:22, 3 June 2011

Teema

Muusikapoe tootekataloogi osaline realisatsioon klient-server põhimõttel.


Liikmed

  • Rauno Väli
  • Andreas Lea
  • Erik Peinar


Lähtekood

  • Versioonihalduseks kasutatud GitHub-i võimalusi:
https://github.com/R3ality/tootekataloog


XML

Andmefail (XML)

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- <?xml-stylesheet type="text/xsl" href="style.xslt"?> -->
<tootekataloog>

  <!-- zanride loetelu-->
  <zanrid>
    <zanr id="1">
      <nimi>Pop</nimi>
    </zanr>
    <zanr id="2">
      <nimi>Rap</nimi>
    </zanr>
  </zanrid>

  <!-- artistide loetelu-->
  <artistid>
    <artist id="1">
      <nimi>Queen</nimi>
    </artist>
    <artist id="2">
      <nimi>Madonna</nimi>
    </artist>
  </artistid>

  <!-- albumite loetelu-->
  <albumid>
    <album id="1">
      <zanr>1</zanr>
      <artist>1</artist>
      <nimi>Greatest Hits</nimi>
      <aasta>2005</aasta>
      <lugusi>15</lugusi>
      <pilt>http://bit.ly/jreygb</pilt>
      <hind>12</hind>
    </album>
    <album id="2">
      <zanr>2</zanr>
      <artist>2</artist>
      <nimi>American Life</nimi>
      <aasta>2002</aasta>
      <lugusi>19</lugusi>
      <pilt>http://bit.ly/jwEHdl</pilt>
      <hind>8.3</hind>
    </album>
  </albumid>
</tootekataloog>


Skeemifail (XSD)

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="tootekataloog">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="zanrid">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="zanr">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="nimi" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="artistid">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="artist">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="nimi" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="albumid">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="album">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="zanr" type="xs:unsignedByte" />
                    <xs:element name="artist" type="xs:unsignedByte" />
                    <xs:element name="nimi" type="xs:string" />
                    <xs:element name="aasta" type="xs:unsignedShort" />
                    <xs:element name="lugusi" type="xs:unsignedByte" />
                    <xs:element name="pilt" type="xs:string" />
                    <xs:element name="hind" type="xs:decimal" />
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


Stiilifail (XSLT)

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <html>
      <head>
        <title>Tootekataloog</title>
        <style type="text/css">
          body {
          font-family: Arial, Verdana;
          }

          table {
          font-size: 12px;
          border-collapse: collapse;
          }

          table.main {
          border: 1px solid #98bf21;
          }

          table.main th {
          padding: 3px 10px 3px 10px;
          border: 1px solid #98bf21;
          background-color: #A7C942;
          color: #FFFFFF;
          }

          table.main tr {
          background-color: #FFFFFF;
          }

          table.main td {
          text-align: center;
          padding: 3px;
          border: 1px solid #98bf21;
          }

          a, a:hover, a:active, a:visited {
          color: #000000;
          }

          a img {
          border: none;
          }
        </style>
      </head>
      <body>
        
        <h3>Albumid</h3>
        
        <table class="main">
          <tr>
            <th>Artist</th>
            <th>Album</th>
            <th>Žanr</th>
            <th>Aasta</th>
            <th>Lugusi</th>
            <th>Pilt</th>
            <th>YouTube</th>
            <th>Hind</th>
          </tr>
          <xsl:for-each select="tootekataloog/albumid/album">
            <xsl:variable name="artistID" select="artist"/>
            <xsl:variable name="zanrID" select="zanr"/>
            <tr>
              <xsl:if test="position() mod 2 =0">
                <xsl:attribute name="style">
                  background-color: #EAF2D3;
                </xsl:attribute>
              </xsl:if>
              <td>
                <xsl:value-of select="/tootekataloog/artistid/artist[@id=$artistID]/nimi"/>
              </td>
              <td>
                <xsl:value-of select="nimi"/>
              </td>
              <td>
                <xsl:value-of select="/tootekataloog/zanrid/zanr[@id=$zanrID]/nimi"/>
              </td>
              <td>
                <xsl:value-of select="aasta"/>
              </td>
              <td>
                <xsl:value-of select="lugusi"/>
              </td>
              <td>
                <img width="100" height="100">
                  <xsl:attribute name="src">
                    <xsl:value-of select="pilt"/>
                  </xsl:attribute>
                </img>
              </td>
              <td>
                <a>
                  <xsl:attribute name="href">
                    <xsl:text>http://www.youtube.com/results?search_query=</xsl:text><xsl:value-of select="/tootekataloog/artistid/artist[@id=$artistID]/nimi"/>+<xsl:value-of select="nimi"/>
                  </xsl:attribute>
                  <img src="http://www.upload.ee/image/1288041/youtube-badge-64x64.png">
                  </img>
                </a>
              </td>
              <td>
                <xsl:value-of select="hind"/>               </td>
            </tr>
          </xsl:for-each>
        </table>

        <br/><br/>
        
        <h3>Toored andmed</h3>
        <table>
          <tr>
            <td style="padding-right: 50px; vertical-align: top;">

              <h4>Žanrid</h4>
              <table class="main">
                <tr>
                  <th>id</th>
                  <th>nimi</th>
                </tr>
                <xsl:for-each select="tootekataloog/zanrid/zanr">
                  <tr>
                    <xsl:if test="position() mod 2 =0">
                      <xsl:attribute name="style">
                        background-color: #EAF2D3;
                      </xsl:attribute>
                    </xsl:if>
                    <td>
                      <xsl:value-of select="@id"/>
                    </td>
                    <td>
                      <xsl:value-of select="nimi"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </table>  
                  
            </td>
            <td style="padding-right: 50px; vertical-align: top;">
              
              <h4>Artistid</h4>
              <table class="main">
                <tr>
                  <th>id</th>
                  <th>nimi</th>
                </tr>
                <xsl:for-each select="tootekataloog/artistid/artist">
                  <tr>
                    <xsl:if test="position() mod 2 =0">
                      <xsl:attribute name="style">
                        background-color: #EAF2D3;
                      </xsl:attribute>
                    </xsl:if>
                    <td>
                      <xsl:value-of select="@id"/>
                    </td>
                    <td>
                      <xsl:value-of select="nimi"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </table>
              
            </td>
            <td style="vertical-align: top;">

              <h4>Albumid</h4>
              <table class="main">
                <tr>
                  <th>id</th>
                  <th>zanr</th>
                  <th>artist</th>
                  <th>nimi</th>
                  <th>aasta</th>
                  <th>lugusi</th>
                  <th>pilt</th>
                  <th>hind</th>
                </tr>
                <xsl:for-each select="tootekataloog/albumid/album">
                  <tr>
                    <xsl:if test="position() mod 2 =0">
                      <xsl:attribute name="style">
                        background-color: #EAF2D3;
                      </xsl:attribute>
                    </xsl:if>
                    <td>
                      <xsl:value-of select="@id"/>
                    </td>
                    <td>
                      <xsl:value-of select="zanr"/>
                    </td>
                    <td>
                      <xsl:value-of select="artist"/>
                    </td>
                    <td>
                      <xsl:value-of select="nimi"/>
                    </td>
                    <td>
                      <xsl:value-of select="aasta"/>
                    </td>
                    <td>
                      <xsl:value-of select="lugusi"/>
                    </td>
                    <td>
                      <xsl:value-of select="pilt"/>
                    </td>
                    <td>
                      <xsl:value-of select="hind"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </table>

            </td>
          </tr>
        </table>
        
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>


Andmefaili vaade stiilifailiga


Teenus

  • Online jooksev teenus:
http://kujuneb.somee.com/Teenus.asmx


Teenuse signatuur

Hetkeseisuga on teenusel järgnevad avalikud veebimeetodid (tärniga tähistatud meetodid nõuavad autentimist):


AnnaAlbum(int Id)
AnnaAlbumLaos()
AnnaAlbumiLood()
AnnaAlbumid()
AnnaAlbumidByZanr()
AnnaAlbumidByArtist()
AnnaArtist()
AnnaArtistid()
AnnaKasutajaNimi()
AnnaLadu()
AnnaLaod()
AnnaLogi()*
AnnaLood()
AnnaLooAlbum()
AnnaLugu()
AnnaRiigid()
AnnaRiik()
AnnaZanr()
AnnaZanrid()
KasOnAutenditud()
KustutaAlbum()*
KustutaArtist()*
KustutaLugu()*
LisaAlbum()*
LisaArtist()*
LisaLugu()*
LoendaMeetodiParingud()*
LogiValja()
MuudaAlbum()*
Otsi()
MuudaArtist()*
MuudaLugu()*

Andmetabelid


Statistika


Klientrakendus

Klientrakendus on teostatud C# Windows Forms rakendusena

Demoprogramm

  • TootekatKlient-local.exe
http://www.upload.ee/files/1372294/TootekatKlient-local.exe.html (versioon 1)
http://www.upload.ee/files/1389696/TootekatKlient-v2-local.exe.html (versioon 2)
Eeldab et teenus jookseb lokaalses masinas (näiteks Visual Studiost debugima panduna)
  • TootekatKlient-remote.exe
http://www.upload.ee/files/1372297/TootekatKlient-remote.exe.html (versioon 1)
http://www.upload.ee/files/1389698/TootekatKlient-v2-remote.exe.html (versioon 2)
Online teenuse pihta käiv klient. Administreerimisfunktsioonid sihipäraselt eemaldatud. Autentimine ei toimi.

Ekraanipildid