'''''######################################################################################################################################''''''' '''''################################## Advert showing function ############################################################################''''''' '''''######################################################################################################################################''''''' Dim district As Integer = Request.QueryString("d") Dim county As Integer = Request.QueryString("c") ''''''########################################################### Advert Position Showing System #####################################################################''''' ' first filled by district If district <> "0" Then Dim count As Integer = dc.Ams_Positions.Count(Function(c) c.idDistrict = district) If count < 10 Then ' if the advert count by district is less than 10 For Each d As Object In dc.Ams_Positions.Where(Function(c) c.idDistrict = district Or c.id_ams_header = 1).ToList() _ .Select(Function(c, k) New With {k, c.code_ams, .ad = CType(ams.FindControl("position" & k), Literal)}).Take(10).Where(Function(c) c.ad IsNot Nothing).ToList() d.ad.Text = d.code_ams & "<br/><br/>" Next Else ' if the advert count by district is equal or more than 10 For Each d As Object In dc.Ams_Positions.Where(Function(c) c.idDistrict = district And c.code_ams IsNot Nothing).ToList() _ .Select(Function(c, k) New With {k, c.code_ams, .ad = CType(ams.FindControl("position" & k), Literal)}).Where(Function(c) c.ad IsNot Nothing).ToList() d.ad.Text = d.code_ams & "<br/><br/>" Next End If ' second is filled by county ElseIf county <> "0" Then Dim count As Integer = dc.Ams_Positions.Count(Function(c) c.idCountyCity = county) If count < 10 Then 'if the advert count by county is less than 10 For Each d As Object In dc.Ams_Positions.Where(Function(c) c.idCountyCity = county Or c.id_ams_header = 1).ToList() _ .Select(Function(c, k) New With {k, c.code_ams, .ad = CType(ams.FindControl("position" & k), Literal)}).Take(10).Where(Function(c) c.ad IsNot Nothing).ToList() d.ad.Text = d.code_ams & "<br/><br/>" Next Else 'if the advert count by county is equal or more than 10 For Each d As Object In dc.Ams_Positions.Where(Function(c) c.idCountyCity = county And c.code_ams IsNot Nothing).ToList() _ .Select(Function(c, k) New With {k, c.code_ams, .ad = CType(ams.FindControl("position" & k), Literal)}).Where(Function(c) c.ad IsNot Nothing).ToList() d.ad.Text = d.code_ams & "<br/><br/>" Next End If ' Third is filled by all record Else For Each d As Object In dc.Ams_Positions.Where(Function(c) c.id_ams_header = 1).ToList() _ .Select(Function(c, k) New With {k, c.code_ams, .ad = CType(ams.FindControl("position" & k), Literal)}).Take(10).Where(Function(c) c.ad IsNot Nothing).ToList() d.ad.Text = d.code_ams & "<br/><br/>" Next End If ''''''################################################################################################################################################ SetPosition() ' operation the banner showing function End Sub ''''''################################################## Banner Advert Showing system ###################################################################### 'Sub to fill a slot with a code Sub SetPosition() Dim nb_count As Integer = GetPositionAmsNumber() 'get a random from the count Dim rand As Integer = RandomNumber(nb_count - 1) Dim list_id As List(Of Integer) list_id = CreateArrayIdAms() Dim elem As Integer = list_id.Item(rand) 'Open connection Dim objConn As SqlConnection = openDBConnection() Dim StrCmd As String = "SELECT code_ams_banner FROM Ams_Banner WHERE id_ams_banner = " & elem & ";" Dim objCmd As SqlCommand = New SqlCommand(StrCmd, objConn) Dim value As String = "" 'Force the connection to be closed objConn.Close() objConn.Open() Dim reader As SqlDataReader = objCmd.ExecuteReader While reader.Read() value = reader(0) End While objConn.Close() objConn.Dispose() Try Dim IdLiteral As String = "banner" Dim literalBanner As Literal = CType(banner.FindControl(IdLiteral), Literal) literalBanner.Text = value Catch ex As Exception End Try End Sub Function RandomNumber(ByVal max As Integer) As Integer Dim a As New Integer Randomize() a = Rnd() * max Return a End Function Function GetPositionAmsNumber() As Integer Dim x As Integer = 0 'Open connection Dim objConn As SqlConnection = openDBConnection() Dim StrCmd As String = "SELECT COUNT (id_ams_banner) FROM Ams_Banner ;" Dim objCmd As SqlCommand = New SqlCommand(StrCmd, objConn) 'Force the connection to be closed objConn.Close() objConn.Open() Dim reader As SqlDataReader = objCmd.ExecuteReader While reader.Read() x = CInt(reader(0)) End While objConn.Close() objConn.Dispose() Return x End Function Function CreateArrayIdAms() As List(Of Integer) Dim tab As New List(Of Integer) 'Open connection Dim objConn As SqlConnection = openDBConnection() Dim StrCmd As String = "SELECT id_ams_banner FROM Ams_Banner ;" Dim objCmd As SqlCommand = New SqlCommand(StrCmd, objConn) 'Force the connection to be closed objConn.Close() objConn.Open() Dim reader As SqlDataReader = objCmd.ExecuteReader While reader.Read() tab.Add(reader(0)) End While objConn.Close() objConn.Dispose() Return tab End Function ''''''######################################################################################################################################################### ''''''######################################################################################################################################################### ''''''#########################################################################################################################################################