Asp.net源码专业站
首页->企业网站->中小企业网站系统前台源码(SmallBusinessStarterKit)>>smallbusiness_vb/App-Code/Catalog/XmlCatalogProvider.vb>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:中小企业网站系统前台源码(SmallBusinessStarterKit)
当前文件:文件类型 SmallBusinessStarterKit/smallbusiness_vb/App_Code/Catalog/XmlCatalogProvider.vb[6K,2009-6-12 11:54:22]打开代码结构图
普通视图
		            
1Imports System 2Imports System.Data 3Imports System.Configuration 4Imports System.Web 5Imports System.Xml 6Imports System.Xml.Schema 7Imports System.IO 8Imports System.Collections.Generic 9 10 11' <summary> 12' XML Data Layer for Items and Cateogories 13' </summary> 14Public Class XmlCatalogProvider 15 Inherits CatalogProvider 16 17 Private _xmlFile As String 18 Private _xsdFile As String 19 20 21 22 Public Sub New() 23 Dim sec As SmallBusinessDataProvidersSection = ConfigurationManager.GetSection("SmallBusinessDataProviders") 24 Dim xmlFile As String = sec.CatalogProviders(sec.CatalogProviderName).Parameters("dataFile") 25 Dim xsdFile As String = sec.CatalogProviders(sec.CatalogProviderName).Parameters("schemaFile") 26 27 _xmlFile = HttpContext.Current.Request.MapPath(("~/App_Data/" + xmlFile)) 28 _xsdFile = HttpContext.Current.Request.MapPath(("~/App_Data/schemas/" + xsdFile)) 29 End Sub 'New 30 31 32 33 ' <summary> 34 ' Returns child categories of a given cateogory 35 ' If 'parentCategoryId' = null , top level categories are returned 36 ' </summary> 37 Public Overrides Function GetChildCategories(ByVal parentCategoryId As String) As List(Of Category) 38 39 If [String].IsNullOrEmpty(parentCategoryId) Then 40 parentCategoryId = "NULL" 41 End If 42 Dim dataSet As DataSet = Util.ReadAndValidateXml(_xmlFile, _xsdFile) 43 44 ' tables, in order in the dataset: category | childItemId| item 45 Dim categoryTbl As DataTable = dataSet.Tables(0) 46 Dim list As New List(Of Category) 47 Dim r As DataRow 48 For Each r In categoryTbl.Rows 49 If CStr(r("parentCategoryId")) = parentCategoryId Then ' match found 50 If TypeOf r("id") Is DBNull Or TypeOf r("visible") Is DBNull Or TypeOf r("title") Is DBNull Then 51 Throw New InvalidOperationException(Messages.CategoryRequiredAttributesMissing) 52 End If 53 Dim curr As New Category(CStr(r("id")), [Boolean].Parse(CStr(r("visible"))), CStr(r("title"))) 54 curr.Description = Util.ReturnEmptyStringIfDbNull(r("description")) 55 curr.ImageUrl = Util.ReturnEmptyStringIfDbNull(r("imageUrl")) 56 curr.ImageAltText = Util.ReturnEmptyStringIfDbNull(r("imageAltText")) 57 list.Add(curr) 58 End If 59 Next r 60 Return list 61 End Function 'New 62 63 64 65 ' <summary> 66 ' Returns child items of a given cateogory 67 ' Returns empty list if 'parentCategoryId' = null , 68 ' </summary> 69 Public Overrides Function GetChildItems(ByVal parentCategoryId As String) As List(Of Item) 70 71 Dim itemList As New List(Of Item) 72 73 If [String].IsNullOrEmpty(parentCategoryId) Then 74 Return itemList 75 End If 76 Dim dataSet As DataSet = Util.ReadAndValidateXml(_xmlFile, _xsdFile) 77 78 ' find index correspondig to parentCategorId 79 Dim categoryTbl As DataTable = dataSet.Tables(0) 80 Dim index As Integer = -1 81 Dim counter As Integer = 0 82 Dim r As DataRow 83 For Each r In categoryTbl.Rows 84 If CStr(r("id")) = parentCategoryId Then 85 index = counter 86 Exit For 87 End If 88 counter += 1 89 Next r 90 91 ' populate the list of child items ids and then construct Item objects 92 Dim categorizationTbl As DataTable = dataSet.Tables(1) 93 Dim childItemIds As New List(Of String) 94 95 96 For Each r In categorizationTbl.Rows 97 If CInt(r("category_Id")) = index Then 98 childItemIds.Add(CStr(r("childItemId_Text"))) 99 End If 100 Next r 101 102 Dim itemsTbl As DataTable = dataSet.Tables(2) 103 Dim curr As Item 104 105 For Each r In itemsTbl.Rows 106 If childItemIds.Contains(CStr(r("id"))) Then 107 If TypeOf r("id") Is DBNull Or TypeOf r("visible") Is DBNull Or TypeOf r("title") Is DBNull Then 108 Throw New InvalidOperationException(Messages.ItemRequiredAttributesMissing) 109 End If 110 curr = New Item(CStr(r("id")), [Boolean].Parse(CStr(r("visible"))), CStr(r("title"))) 111 curr.Description = Util.ReturnEmptyStringIfDbNull(r("description")) 112 curr.Price = Util.ReturnEmptyStringIfDbNull(r("price")) 113 If (TypeOf r("inStock") Is DBNull) Then 114 curr.InStock = True 115 Else 116 curr.InStock = r("inStock") 117 End If 118 curr.ImageUrl = Util.ReturnEmptyStringIfDbNull(r("imageUrl")) 119 curr.ImageAltText = Util.ReturnEmptyStringIfDbNull(r("imageAltText")) 120 itemList.Add(curr) 121 End If 122 Next r 123 Return itemList 124 End Function 'New 125 126 '/<summary> 127 '/ Returns item having the id 'itemId' 128 '/</summary> 129 Public Overrides Function GetItem(ByVal itemId As String) As Item 130 If [String].IsNullOrEmpty(itemId) Then 131 Return Nothing 132 End If 133 Dim dataSet As DataSet = Util.ReadAndValidateXml(_xmlFile, _xsdFile) 134 135 Dim itemsTbl As DataTable = dataSet.Tables(2) 136 Dim curr As Item = Nothing 137 Dim r As DataRow 138 For Each r In itemsTbl.Rows 139 If TypeOf r("id") Is DBNull Then 140 Throw New InvalidOperationException(Messages.ItemRequiredAttributesMissing) 141 End If 142 If itemId = CStr(r("id")) Then 143 ' assert: r[id] is not DBNull 144 If TypeOf r("visible") Is DBNull Or TypeOf r("title") Is DBNull Then 145 Throw New InvalidOperationException(Messages.ItemRequiredAttributesMissing) 146 End If 147 curr = New Item(CStr(r("id")), [Boolean].Parse(CStr(r("visible"))), CStr(r("title"))) 148 curr.Description = Util.ReturnEmptyStringIfDbNull(r("description")) 149 curr.Price = Util.ReturnEmptyStringIfDbNull(r("price")) 150 If (TypeOf r("inStock") Is DBNull) Then 151 curr.InStock = True 152 Else 153 curr.InStock = r("inStock") 154 End If 155 curr.ImageUrl = Util.ReturnEmptyStringIfDbNull(r("imageUrl")) 156 curr.ImageAltText = Util.ReturnEmptyStringIfDbNull(r("imageAltText")) 157 End If 158 Next r 159 Return curr 160 End Function 'GetItem 161 162 163 164 165End Class 'XmlCatalogProvider
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:中小企业网站系统前台源码(SmallBusinessStarterKit)
51Aspx.com 版权所有 CopyRight © 2006-2010. 京ICP备06046876号 本站法律顾问:ITlaw-庄毅雄律师
返回顶部
客户服务:点击这里进行客户咨询 业务合作:点击这里洽谈业务合作 合作热线:010-68880146