Tomislav Capan - Muzika Hr Dodatak Primjeri (IT Showoff)
-
Upload
it-showoff -
Category
News & Politics
-
view
468 -
download
3
description
Transcript of Tomislav Capan - Muzika Hr Dodatak Primjeri (IT Showoff)
© Copyright Muzika.hr 2010.
IT ShowOff – Dodatak- Primjeri -
12. veljače 2010.
© Copyright Muzika.hr 2010.
2
NHIBERNATE
© Copyright Muzika.hr 2010.
3
NHibernate- Primjer mapiranja objekta -
namespace MuzikaHr.Core.Model{ public class City { /// <summary>Protected constructor. Used internally by NHibernate.</summary> protected City() { }
public City(int id) { Id = id; }
protected virtual int Id { get; set; } public virtual string Name { get; set; } public virtual Region AssociatedRegion { get; set; } public virtual IList<EventLocation> EventLocations { get; protected set; }
// -- domain logic methods here... }}
© Copyright Muzika.hr 2010.
4
NHibernate- Primjer mapiranja objekta -
<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name=“MuzikaHr.Core.Model.City, MuzikaHr.Core" table="grad" lazy="true"> <id name="Id" column="sifGrad"> <generator class="native" /> </id> <property name="Name" column="imeGrad" /> <many-to-one name="AssociatedRegion" column="sifRegija" class="MuzikaHr.Core.Model.Region, MuzikaHr.Core” /> <bag name="EventLocations" table="eventLocation" inverse="true" cascade="none"> <key column="cityId" /> <one-to-many class="MuzikaHr.Core.Model.EventLocation, MuzikaHr.Core" /> </bag> </class></hibernate-mapping>
© Copyright Muzika.hr 2010.
5
NHibernate- Primjer dohvata podataka -
namespace MuzikaHr.Data.NHibernate{ public class CityDao : AbstractNHibernateDao<City, int>, ICityDao { // -- constructor here
public List<City> GetCitiesByRegion(int regionId) { ICriteria criteria = NHibernateSession.CreateCriteria(typeof(City)) .Add(Expression.Eq("AssociatedRegion.Id", regionId)) .AddOrder(Order.Asc("Name"));
try { return criteria.List<City>() as List<City>; } catch (HibernateException exc) {...} } }}
© Copyright Muzika.hr 2010.
6
SPARK VIEW ENGINE
© Copyright Muzika.hr 2010.
7
Spark View EngineViewData Dictionary, lokalne varijable
Template:<s:viewdata Articles="IList[[MuzikaHr.Models.Article]]"/><s:var styles="new[] {‘left',’right'}"/><p s:each="var article in Articles" class="${styles[articleIndex%2]}“>${article.Title}</p>
Rezultat:<p class="left">Vangelis</p><p class="right">Simple Minds</p><p class="left">The Stranglers</p><p class="right">Michael Jackson (1958.–2009.)</p><p class="left">A Perfect Circle</p><p class="right">Suede (1989.–2003.)</p>
© Copyright Muzika.hr 2010.
8
Spark View EngineIterator (for-each), if-clause
• automatske iterator-varijable: Index, Count, IsFirst, IsLast
Template:<s:for each="var lineItem in CurrentInvoice.LineItems"> <tr><td>Item ${lineItemIndex + 1} of ${lineItemCount}</td> <td>${lineItem.Etc}</td></tr> <tr s:if="lineItemIsLast"><td>Grand total</td><td>${grandTotal}</td></tr></s:for>
Rezultat:<tr><td>Item 1 of 14</td><td>5</td></tr><tr><td>Item 2 of 14</td><td>2</td></tr><tr><td>Item 3 of 14</td><td>9</td></tr>...<tr><td>Item 14 of 14</td><td>14</td></tr><tr><td>Grand total</td><td>97</td></tr>
© Copyright Muzika.hr 2010.
9
Spark View EngineConditional attribute output
Template:<s:viewdata featuredHeading=“MuzikaHr.Models.Heading"/><s:viewdata Headings=“IList[[MuzikaHr.Models.Heading]]"/><ul><li s:each="var heading in Headings"> <a ... class="selected?{heading.Id==featuredHeading.Id}">${heading.Name}</a><li></ul>
Rezultat:<ul> <li><a href="...">Sve</a></li> <li><a href="...">Interview</a></li> <li><a href="..." class="selected">Biografije</a></li> <li><a href="...">B Scena</a></li> <li><a href="...">Zanimljivosti</a></li></ul>
© Copyright Muzika.hr 2010.
10
Spark View Engine: MacroMacro helper function:
• Metoda koja prima argumente i kao rezultat vraća string
Macro definicija:<s:macro name="ShowError" caption="string" message="string"><div class="message error"> <h3>${caption}</h3> <div>${message}</div> <% logger.Warn(caption); %></div></s:macro>
Macro poziv iz templatea:<s:viewdata errorMessage="string" /><h2>Place Order</h2><s:test if="!string.IsNullOrEmpty(errorMessage)"> ${ShowError("Failed to place order", errorMessage)}</s:test>...