<%@ Page Language="VB" %>

<%@ Import Namespace="Chapter9" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    Public Class Grouping
        Public Property Genre() As Integer
        Public Property MovieCount() As Integer
    End Class

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim movies = GetMovies()

        Dim groups As New Dictionary(Of String, Grouping)

        For Each m As Movie In movies
            If (Not groups.ContainsKey(m.Genre)) Then
                groups(m.Genre) =
                    New Grouping With {.Genre = m.Genre, .MovieCount = 0}
            End If

            groups(m.Genre).MovieCount = groups(m.Genre).MovieCount + 1
        Next

        Dim results As New List(Of Grouping)(groups.Values)
        results.Sort(AddressOf MovieSort)

        Me.GridView1.DataSource = results
        Me.GridView1.DataBind()
    End Sub

    Private Function MovieSort(ByVal x As Grouping, ByVal y As Grouping) As Integer
        Return IIf(x.MovieCount > y.MovieCount, -1, IIf(x.MovieCount < y.MovieCount, 1, 0))
    End Function


    Public Function GetMovies() As List(Of Chapter9.Movie)
        Dim movies As New List(Of Chapter9.Movie) From { 
            New Chapter9.Movie With {.Title = "Shrek", .Director = "Andrew Adamson", 
                  .Genre = 0, .ReleaseDate = DateTime.Parse("5/16/2001"), .Runtime = 89}, 
            New Chapter9.Movie With {.Title = "Fletch", .Director = "Michael Ritchie", 
                 .Genre = 0, .ReleaseDate = DateTime.Parse("5/31/1985"), .Runtime = 96}, 
            New Chapter9.Movie With {.Title = "Casablanca", .Director = "Michael Curtiz", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("1/1/1942"), .Runtime = 102}, 
            New Chapter9.Movie With {.Title = "Batman", .Director = "Tim Burton", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("6/23/1989"), .Runtime = 126}, 
            New Chapter9.Movie With {.Title = "Dances with Wolves", .Director = "Kevin Costner", 
                 .Genre = 1, .ReleaseDate = DateTime.Parse("11/21/1990"), .Runtime = 180}, 
            New Chapter9.Movie With {.Title = "Dirty Dancing", .Director = "Emile Ardolino", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("8/21/1987"), .Runtime = 100}, 
            New Chapter9.Movie With {.Title = "The Parent Trap", .Director = "Nancy Meyers", 
                  .Genre = 0, .ReleaseDate = DateTime.Parse("7/29/1998"), .Runtime = 127}, 
            New Chapter9.Movie With {.Title = "Ransom", .Director = "Ron Howard", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("11/8/1996"), .Runtime = 121}, 
            New Chapter9.Movie With {.Title = "Ocean’s Eleven", .Director = "Steven Soderbergh", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("12/7/2001"), .Runtime = 116}, 
            New Chapter9.Movie With {.Title = "Steel Magnolias", .Director = "Herbert Ross", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("11/15/1989"), .Runtime = 117}, 
            New Chapter9.Movie With {.Title = "Mystic Pizza", .Director = "Donald Petrie", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("10/21/1988"), .Runtime = 104}, 
            New Chapter9.Movie With {.Title = "Pretty Woman", .Director = "Garry Marshall", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("3/23/1990"), .Runtime = 119}, 
            New Chapter9.Movie With {.Title = "Interview with the Vampire", .Director = "Neil Jordan", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("11/11/1994"), .Runtime = 123}, 
            New Chapter9.Movie With {.Title = "Top Gun", .Director = "Tony Scott", 
                  .Genre = 2, .ReleaseDate = DateTime.Parse("5/16/1986"), .Runtime = 110}, 
            New Chapter9.Movie With {.Title = "Mission Impossible", .Director = "Brian De Palma", 
                  .Genre = 2, .ReleaseDate = DateTime.Parse("5/22/1996"), .Runtime = 110}, 
            New Chapter9.Movie With {.Title = "The Godfather", .Director = "Francis Ford Coppola", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("3/24/1972"), .Runtime = 175}, 
            New Chapter9.Movie With {.Title = "Carlito’s Way", .Director = "Brian De Palma", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("11/10/1993"), .Runtime = 144}, 
            New Chapter9.Movie With {.Title = "Robin Hood: Prince of Thieves", 
                  .Director = "Kevin Reynolds", .Genre = 1, 
                  .ReleaseDate = DateTime.Parse("6/14/1991"), .Runtime = 143}, 
            New Chapter9.Movie With {.Title = "The Haunted", .Director = "Robert Mandel", 
                 .Genre = 1, .ReleaseDate = DateTime.Parse("5/6/1991"), .Runtime = 100}, 
            New Chapter9.Movie With {.Title = "Old School", .Director = "Todd Phillips", 
                  .Genre = 0, .ReleaseDate = DateTime.Parse("2/21/2003"), .Runtime = 91}, 
            New Chapter9.Movie With {.Title = "Anchorman: The Legend of Ron Burgundy", 
                 .Director = "Adam McKay", .Genre = 0, 
                 .ReleaseDate = DateTime.Parse("7/9/2004"), .Runtime = 94}, 
            New Chapter9.Movie With {.Title = "Bruce Almighty", .Director = "Tom Shadyac", 
                  .Genre = 0, .ReleaseDate = DateTime.Parse("5/23/2003"), .Runtime = 101}, 
            New Chapter9.Movie With {.Title = "Ace Ventura: Pet Detective", 
                  .Director = "Tom Shadyac", .Genre = 0, 
                  .ReleaseDate = DateTime.Parse("2/4/1994"), .Runtime = 86}, 
            New Chapter9.Movie With {.Title = "Goonies", .Director = "Richard Donner", 
                  .Genre = 0, .ReleaseDate = DateTime.Parse("6/7/1985"), .Runtime = 114}, 
            New Chapter9.Movie With {.Title = "Sixteen Candles", .Director = "John Hughes", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("5/4/1984"), .Runtime = 93}, 
            New Chapter9.Movie With {.Title = "The Breakfast Club", .Director = "John Hughes", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("2/15/1985"), .Runtime = 97}, 
            New Chapter9.Movie With {.Title = "Pretty in Pink", .Director = "Howard Deutch", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("2/28/1986"), .Runtime = 96}, 
            New Chapter9.Movie With {.Title = "Weird Science", .Director = "John Hughes", 
                  .Genre = 0, .ReleaseDate = DateTime.Parse("8/2/1985"), .Runtime = 94}, 
            New Chapter9.Movie With {.Title = "Breakfast at Tiffany’s", .Director = "Blake Edwards", 
                  .Genre = 1, .ReleaseDate = DateTime.Parse("10/5/1961"), .Runtime = 115}, 
            New Chapter9.Movie With {.Title = "The Graduate", .Director = "Mike Nichols", 
                 .Genre = 1, .ReleaseDate = DateTime.Parse("4/2/1968"), .Runtime = 105}, 
            New Chapter9.Movie With {.Title = "Dazed and Confused", .Director = "Richard Linklater", 
                  .Genre = 0, .ReleaseDate = DateTime.Parse("9/24/1993"), .Runtime = 103}, 
            New Chapter9.Movie With {.Title = "Arthur", .Director = "Steve Gordon", 
                 .Genre = 1, .ReleaseDate = DateTime.Parse("9/25/1981"), .Runtime = 97}, 
            New Chapter9.Movie With {.Title = "Monty Python and the Holy Grail", 
                 .Director = "Terry Gilliam", .Genre = 0, 
                 .ReleaseDate = DateTime.Parse("5/10/1975"), .Runtime = 91}, 
              New Chapter9.Movie With {.Title = "Dirty Harry", .Director = "Don Siegel", 
                 .Genre = 2, .ReleaseDate = DateTime.Parse("12/23/1971"), .Runtime = 102} 
              }

        Return movies
    End Function
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Moje ulubione filmy</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>  
    </div>
    </form>
</body>
</html>
