Permalink
Browse files

Added Source code for Dynamic Data Preview 3 samples and futures.

git-svn-id: https://aspnet.svn.codeplex.com/svn@23011 e17a0e51-4ae3-4d35-97c3-1a29b211df97
  • Loading branch information...
1 parent 7daafc6 commit 32048f6e03fd13b202b595b10688acc881371d37 SND\AspNetExtensions_cp committed Apr 13, 2009
Showing with 13,223 additions and 7,909 deletions.
  1. +0 −23 DynamicData/Changes.txt
  2. +0 −53 DynamicData/DynamicDataFutures.sln
  3. +0 −31 DynamicData/Futures/Attributes/ColumnOrderAttribute.cs
  4. +0 −76 DynamicData/Futures/Attributes/EnumDataTypeAttribute.cs
  5. +0 −40 DynamicData/Futures/Attributes/FilterAttribute.cs
  6. +0 −23 DynamicData/Futures/Attributes/LocalizedDescriptionAttribute.cs
  7. +0 −19 DynamicData/Futures/Attributes/LocalizedDisplayNameAttribute.cs
  8. +0 −33 DynamicData/Futures/Controls/AdvancedFilterRepeater.cs
  9. +0 −121 DynamicData/Futures/Controls/DelegatingFilter.cs
  10. +0 −222 DynamicData/Futures/Controls/DynamicHyperLink.cs
  11. +0 −15 DynamicData/Futures/Controls/DynamicLabel.cs
  12. +0 −21 DynamicData/Futures/Controls/DynamicReadonlyField.cs
  13. +0 −47 DynamicData/Futures/Controls/ImprovedDynamicValidator.cs
  14. +0 −73 DynamicData/Futures/DataSources/DataServiceLinqDataSource.cs
  15. +0 −123 DynamicData/Futures/DataSources/DataSourceUtilities.cs
  16. +0 −109 DynamicData/Futures/DataSources/DynamicObjectDataSource.cs
  17. +0 −118 DynamicData/Futures/DataSources/SimpleDynamicDataSource.cs
  18. +0 −51 DynamicData/Futures/DataSources/SimpleDynamicDataSourceView.cs
  19. +0 −375 DynamicData/Futures/DynamicDataFutures.cs
  20. +0 −120 DynamicData/Futures/DynamicDataFutures.csproj
  21. +29 −0 DynamicData/Futures/DynamicDataFutures.sln
  22. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/AjaxToolkitFixes.css
  23. BIN DynamicData/Futures/DynamicDataFuturesSample/App_Data/NORTHWND.MDF
  24. +24 −0 DynamicData/Futures/DynamicDataFuturesSample/CustomMetaClasses/CustomMetaChildrenColumn.cs
  25. +59 −0 DynamicData/Futures/DynamicDataFuturesSample/CustomMetaClasses/CustomMetaColumn.cs
  26. +23 −0 DynamicData/Futures/DynamicDataFuturesSample/CustomMetaClasses/CustomMetaForeignKeyColumn.cs
  27. +14 −0 DynamicData/Futures/DynamicDataFuturesSample/CustomMetaClasses/CustomMetaModel.cs
  28. +56 −0 DynamicData/Futures/DynamicDataFuturesSample/CustomMetaClasses/CustomMetaTable.cs
  29. +94 −0 DynamicData/Futures/DynamicDataFuturesSample/Default.aspx
  30. +22 −0 DynamicData/Futures/DynamicDataFuturesSample/Default.aspx.cs
  31. +16 −0 DynamicData/Futures/DynamicDataFuturesSample/Default.aspx.designer.cs
  32. +5 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/Content/FilterUserControl.ascx
  33. +44 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/Content/FilterUserControl.ascx.cs
  34. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/Content/FilterUserControl.ascx.designer.cs
  35. +27 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/Content/GridViewPager.ascx
  36. +72 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/Content/GridViewPager.ascx.cs
  37. +97 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/Content/GridViewPager.ascx.designer.cs
  38. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/Content/Images/Back.gif
  39. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/Content/Images/PgFirst.gif
  40. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/Content/Images/PgLast.gif
  41. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/Content/Images/PgNext.gif
  42. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/Content/Images/PgPrev.gif
  43. BIN DynamicData/Futures/DynamicDataFuturesSample/DynamicData/Content/Images/blank.gif
  44. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/Content/Images/header_back.gif
  45. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/Content/Images/plus.gif
  46. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/CustomPages/readme.txt
  47. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Boolean.ascx
  48. +34 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Boolean.ascx.cs
  49. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Boolean.ascx.designer.cs
  50. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Boolean_Edit.ascx
  51. +38 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Boolean_Edit.ascx.cs
  52. +25 −0 ...micData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Boolean_Edit.ascx.designer.cs
  53. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Children.ascx
  54. +64 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Children.ascx.cs
  55. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Children.ascx.designer.cs
  56. +2 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Children_Insert.ascx
  57. +22 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Children_Insert.ascx.cs
  58. +16 −0 ...Data/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Children_Insert.ascx.designer.cs
  59. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DateTime.ascx
  60. +26 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DateTime.ascx.cs
  61. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DateTime.ascx.designer.cs
  62. +8 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DateTime_Edit.ascx
  63. +40 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DateTime_Edit.ascx.cs
  64. +61 −0 ...icData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DateTime_Edit.ascx.designer.cs
  65. +2 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DbImage.ascx
  66. +64 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DbImage.ascx.cs
  67. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DbImage.ascx.designer.cs
  68. +7 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DbImage_Edit.ascx
  69. +116 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DbImage_Edit.ascx.cs
  70. +52 −0 ...micData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/DbImage_Edit.ascx.designer.cs
  71. +11 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Decimal_Edit.ascx
  72. +40 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Decimal_Edit.ascx.cs
  73. +70 −0 ...micData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Decimal_Edit.ascx.designer.cs
  74. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/EmailAddress.ascx
  75. 0 ...Data/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/FieldTemplates/EmailAddress.ascx.cs
  76. +25 −0 ...micData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/EmailAddress.ascx.designer.cs
  77. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Enumeration.ascx
  78. +42 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Enumeration.ascx.cs
  79. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Enumeration.ascx.designer.cs
  80. +6 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Enumeration_Edit.ascx
  81. +72 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Enumeration_Edit.ascx.cs
  82. +43 −0 ...ata/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Enumeration_Edit.ascx.designer.cs
  83. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/FileImage.ascx
  84. 0 ...micData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/FieldTemplates/FileImage.ascx.cs
  85. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/FileImage.ascx.designer.cs
  86. +5 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/ForeignKey.ascx
  87. +64 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/ForeignKey.ascx.cs
  88. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/ForeignKey.ascx.designer.cs
  89. +7 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/ForeignKey_Edit.ascx
  90. +60 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/ForeignKey_Edit.ascx.cs
  91. +43 −0 ...Data/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/ForeignKey_Edit.ascx.designer.cs
  92. 0 ...a/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/FieldTemplates/IntegerSlider_Edit.ascx
  93. +30 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/IntegerSlider_Edit.ascx.cs
  94. 0 ... Futures}/DynamicDataFuturesSample/DynamicData/FieldTemplates/IntegerSlider_Edit.ascx.designer.cs
  95. +11 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Integer_Edit.ascx
  96. +40 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Integer_Edit.ascx.cs
  97. +70 −0 ...micData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Integer_Edit.ascx.designer.cs
  98. +7 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/MultilineText_Edit.ascx
  99. +39 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/MultilineText_Edit.ascx.cs
  100. +52 −0 ...a/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/MultilineText_Edit.ascx.designer.cs
  101. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Text.ascx
  102. +26 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Text.ascx.cs
  103. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Text.ascx.designer.cs
  104. +7 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Text_Edit.ascx
  105. +41 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Text_Edit.ascx.cs
  106. +52 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Text_Edit.ascx.designer.cs
  107. +3 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Url.ascx
  108. +38 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Url.ascx.cs
  109. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/FieldTemplates/Url.ascx.designer.cs
  110. +44 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Details.aspx
  111. +37 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Details.aspx.cs
  112. +79 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Details.aspx.designer.cs
  113. +30 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Edit.aspx
  114. +45 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Edit.aspx.cs
  115. +70 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Edit.aspx.designer.cs
  116. +26 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Insert.aspx
  117. +46 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Insert.aspx.cs
  118. +70 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/Insert.aspx.designer.cs
  119. +74 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/List.aspx
  120. +43 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/List.aspx.cs
  121. +88 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/List.aspx.designer.cs
  122. +72 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/ListDetails.aspx
  123. +104 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/ListDetails.aspx.cs
  124. +115 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicData/PageTemplates/ListDetails.aspx.designer.cs
  125. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/DynamicData/web.config
  126. +457 −0 DynamicData/Futures/DynamicDataFuturesSample/DynamicDataFuturesSample.csproj
  127. 0 ... → Futures}/DynamicDataFuturesSample/DynamicObjectDataSourceTest/DynamicObjectDataSourceTest.aspx
  128. 0 ...Futures}/DynamicDataFuturesSample/DynamicObjectDataSourceTest/DynamicObjectDataSourceTest.aspx.cs
  129. 0 ...DynamicDataFuturesSample/DynamicObjectDataSourceTest/DynamicObjectDataSourceTest.aspx.designer.cs
  130. +66 −0 .../Futures/DynamicDataFuturesSample/DynamicObjectDataSourceTest/DynamicObjectDataSourceTestModel.cs
  131. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/Global.asax
  132. +80 −0 DynamicData/Futures/DynamicDataFuturesSample/Global.asax.cs
  133. +192 −0 DynamicData/Futures/DynamicDataFuturesSample/Northwind.dbml
  134. +201 −0 DynamicData/Futures/DynamicDataFuturesSample/Northwind.dbml.layout
  135. +4,200 −0 DynamicData/Futures/DynamicDataFuturesSample/Northwind.designer.cs
  136. +73 −0 DynamicData/Futures/DynamicDataFuturesSample/NorthwindPartials.cs
  137. +33 −0 DynamicData/Futures/DynamicDataFuturesSample/Properties/AssemblyInfo.cs
  138. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/ReorderLevelEnum.cs
  139. +45 −0 DynamicData/Futures/DynamicDataFuturesSample/SimpleDynamicDataSourceTest/MyTestClass.cs
  140. 0 ... → Futures}/DynamicDataFuturesSample/SimpleDynamicDataSourceTest/SimpleDynamicDataSourceTest.aspx
  141. 0 ...Futures}/DynamicDataFuturesSample/SimpleDynamicDataSourceTest/SimpleDynamicDataSourceTest.aspx.cs
  142. 0 ...DynamicDataFuturesSample/SimpleDynamicDataSourceTest/SimpleDynamicDataSourceTest.aspx.designer.cs
  143. +23 −0 ...tures/DynamicDataFuturesSample/SimpleDynamicDataSourceTest/SimpleDynamicDataSourceTestNonCLR.aspx
  144. +49 −0 ...es/DynamicDataFuturesSample/SimpleDynamicDataSourceTest/SimpleDynamicDataSourceTestNonCLR.aspx.cs
  145. +52 −0 ...cDataFuturesSample/SimpleDynamicDataSourceTest/SimpleDynamicDataSourceTestNonCLR.aspx.designer.cs
  146. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/Site.css
  147. +31 −0 DynamicData/Futures/DynamicDataFuturesSample/Site.master
  148. +20 −0 DynamicData/Futures/DynamicDataFuturesSample/Site.master.cs
  149. +52 −0 DynamicData/Futures/DynamicDataFuturesSample/Site.master.designer.cs
  150. 0 DynamicData/{Samples → Futures}/DynamicDataFuturesSample/StartingPage.css
  151. +25 −0 DynamicData/Futures/DynamicDataFuturesSample/TableList.aspx
  152. +26 −0 DynamicData/Futures/DynamicDataFuturesSample/TableList.aspx.cs
  153. +34 −0 DynamicData/Futures/DynamicDataFuturesSample/TableList.aspx.designer.cs
  154. +164 −0 DynamicData/Futures/DynamicDataFuturesSample/web.config
  155. +66 −0 DynamicData/Futures/Experimental/Astoria/AstoriaDynamicPropertiesSupport.cs
  156. +106 −0 DynamicData/Futures/Experimental/Astoria/DataServiceUtilities.cs
  157. +236 −0 DynamicData/Futures/Experimental/Astoria/DataSource/DataServiceLinqDataSource.cs
  158. +25 −0 DynamicData/Futures/Experimental/Astoria/DynamicDataProvider/DataServiceAssociationProvider.cs
  159. +193 −0 DynamicData/Futures/Experimental/Astoria/DynamicDataProvider/DataServiceColumnProvider.cs
  160. +92 −0 DynamicData/Futures/Experimental/Astoria/DynamicDataProvider/DataServiceTableProvider.cs
  161. +38 −0 DynamicData/Futures/Experimental/Astoria/DynamicDataProvider/DataServicesDataModelProvider.cs
  162. +18 −0 DynamicData/Futures/Experimental/Astoria/IDataServiceContext.cs
  163. 0 DynamicData/Futures/{ → Experimental}/Attributes/ImageFormatAttribute.cs
  164. 0 DynamicData/Futures/{ → Experimental}/Attributes/ImageUrlAttribute.cs
  165. +127 −0 DynamicData/Futures/Experimental/DataSources/CustomObject.cs
  166. +115 −0 DynamicData/Futures/Experimental/DataSources/DataSourceUtilities.cs
  167. +97 −0 DynamicData/Futures/Experimental/DataSources/DynamicObjectDataSource.cs
  168. +112 −0 DynamicData/Futures/Experimental/DataSources/SimpleDynamicDataSource.cs
  169. 0 DynamicData/Futures/{ → Experimental}/DataSources/SimpleDynamicDataSourceCompleteEventArgs.cs
  170. +47 −0 DynamicData/Futures/Experimental/DataSources/SimpleDynamicDataSourceView.cs
  171. +222 −0 DynamicData/Futures/Experimental/DynamicDataFutures.cs
  172. +84 −0 DynamicData/Futures/Experimental/FieldGenerator/AdvancedFieldGenerator.cs
  173. +277 −0 DynamicData/Futures/Experimental/HttpHandlers/ImageHandler.cs
  174. 0 DynamicData/Futures/{ → Experimental}/LinqExpressionHelper.cs
  175. 0 DynamicData/Futures/{ → Experimental}/MetadataProvider/InMemoryMetadataManager.cs
  176. +28 −0 DynamicData/Futures/Experimental/MetadataProvider/InMemoryMetadataTypeDescriptionProvider.cs
  177. 0 DynamicData/Futures/{ → Experimental}/MetadataProvider/InMemoryMetadataTypeDescriptor.cs
  178. +21 −0 DynamicData/Futures/Experimental/MetadataProvider/TrivialTypeDescriptionProvider.cs
  179. +128 −0 DynamicData/Futures/Experimental/Microsoft.Web.Misc.csproj
  180. +24 −0 DynamicData/Futures/Experimental/ModelProviders/SimpleColumnProvider.cs
  181. +33 −0 DynamicData/Futures/Experimental/ModelProviders/SimpleModelProvider.cs
  182. +39 −0 DynamicData/Futures/Experimental/ModelProviders/SimpleTableProvider.cs
  183. +39 −0 DynamicData/Futures/Experimental/Properties/AssemblyInfo.cs
  184. 0 DynamicData/Futures/{ → Experimental}/Routing/PrettyDynamicDataRoute.cs
  185. BIN DynamicData/Futures/ExternalBinaries/AjaxControlToolkit.dll
  186. BIN DynamicData/Futures/ExternalBinaries/Microsoft.Web.Extensions.dll
  187. BIN DynamicData/Futures/ExternalBinaries/System.ComponentModel.DataAnnotations.dll
  188. BIN DynamicData/Futures/ExternalBinaries/System.Web.DynamicData.dll
  189. +0 −79 DynamicData/Futures/FieldGenerator/AdvancedFieldGenerator.cs
  190. +0 −24 DynamicData/Futures/FieldTemplateFactory/AdvancedFieldTemplateFactory.cs
  191. +0 −270 DynamicData/Futures/HttpHandlers/ImageHandler.cs
  192. +0 −26 DynamicData/Futures/MetadataProvider/InMemoryMetadataTypeDescriptionProvider.cs
  193. +0 −24 DynamicData/Futures/Misc/ResourceProxy.cs
  194. +0 −17 DynamicData/Futures/ModelProviders/DataServiceAssociationProvider.cs
  195. +0 −68 DynamicData/Futures/ModelProviders/DataServiceColumnProvider.cs
  196. +0 −55 DynamicData/Futures/ModelProviders/DataServiceModelProvider.cs
  197. +0 −58 DynamicData/Futures/ModelProviders/DataServiceTableProvider.cs
  198. +0 −22 DynamicData/Futures/ModelProviders/SimpleColumnProvider.cs
  199. +0 −33 DynamicData/Futures/ModelProviders/SimpleModelProvider.cs
  200. +0 −38 DynamicData/Futures/ModelProviders/SimpleTableProvider.cs
  201. +0 −36 DynamicData/Futures/Properties/AssemblyInfo.cs
  202. +0 −126 DynamicData/Samples/ADO.NET Data Service/DataServiceSite/DataServiceSite.csproj
  203. +0 −2,983 DynamicData/Samples/ADO.NET Data Service/DataServiceSite/Northwind.Designer.cs
  204. +0 −982 DynamicData/Samples/ADO.NET Data Service/DataServiceSite/Northwind.edmx
  205. +0 −28 DynamicData/Samples/ADO.NET Data Service/DataServiceSite/Northwind.svc.cs
  206. +0 −44 ...micData/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/Details.aspx
  207. +0 −35 ...Data/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/Details.aspx.cs
  208. +0 −79 ...les/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/Details.aspx.designer.cs
  209. +0 −27 DynamicData/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/Edit.aspx
  210. +0 −70 ...amples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/Edit.aspx.designer.cs
  211. +0 −24 DynamicData/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/Insert.aspx
  212. +0 −70 ...ples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/Insert.aspx.designer.cs
  213. +0 −64 DynamicData/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/List.aspx
  214. +0 −41 ...micData/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/List.aspx.cs
  215. +0 −88 ...amples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/List.aspx.designer.cs
  216. +0 −67 ...ata/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/ListDetails.aspx
  217. +0 −103 .../Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/ListDetails.aspx.cs
  218. +0 −115 ...ADO.NET Data Service/DynamicDataClientSite/DynamicData/PageTemplates/ListDetails.aspx.designer.cs
  219. +0 −299 DynamicData/Samples/ADO.NET Data Service/DynamicDataClientSite/DynamicDataClientSite.csproj
  220. +0 −54 DynamicData/Samples/ADO.NET Data Service/DynamicDataClientSite/Global.asax.cs
  221. +0 −20 DynamicData/Samples/ADO.NET Data Service/DynamicDataClientSite/NorthwindClientEntities_Partials.cs
  222. +0 −147 DynamicData/Samples/ADO.NET Data Service/DynamicDataClientSite/web.config
  223. BIN DynamicData/Samples/DefaultDomainServiceProject/CommonFiles/AjaxControlToolkit.dll
  224. BIN DynamicData/Samples/DefaultDomainServiceProject/CommonFiles/Microsoft.Web.Extensions.dll
  225. BIN ...micData/Samples/DefaultDomainServiceProject/CommonFiles/System.ComponentModel.DataAnnotations.dll
  226. BIN DynamicData/Samples/DefaultDomainServiceProject/CommonFiles/System.Web.DomainServices.Providers.dll
  227. BIN ...micData/Samples/DefaultDomainServiceProject/CommonFiles/System.Web.DomainServices.WebControls.dll
  228. BIN DynamicData/Samples/DefaultDomainServiceProject/CommonFiles/System.Web.DomainServices.dll
  229. BIN DynamicData/Samples/DefaultDomainServiceProject/CommonFiles/System.Web.DynamicData.dll
  230. BIN DynamicData/Samples/DefaultDomainServiceProject/CommonFiles/System.Web.Ria.dll
  231. +23 −0 DynamicData/Samples/DefaultDomainServiceProject/Default.aspx
  232. +17 −0 DynamicData/Samples/DefaultDomainServiceProject/Default.aspx.cs
  233. +34 −0 DynamicData/Samples/DefaultDomainServiceProject/Default.aspx.designer.cs
  234. +410 −0 DynamicData/Samples/DefaultDomainServiceProject/DefaultDomainServiceProject.csproj
  235. +20 −0 DynamicData/Samples/DefaultDomainServiceProject/DefaultDomainServiceProject.sln
  236. +28 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/Content/GridViewPager.ascx
  237. +63 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/Content/GridViewPager.ascx.cs
  238. +34 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/Content/GridViewPager.ascx.designer.cs
  239. 0 ... Service/DynamicDataClientSite → DefaultDomainServiceProject}/DynamicData/Content/Images/Back.gif
  240. 0 ...rvice/DynamicDataClientSite → DefaultDomainServiceProject}/DynamicData/Content/Images/PgFirst.gif
  241. 0 ...ervice/DynamicDataClientSite → DefaultDomainServiceProject}/DynamicData/Content/Images/PgLast.gif
  242. 0 ...ervice/DynamicDataClientSite → DefaultDomainServiceProject}/DynamicData/Content/Images/PgNext.gif
  243. 0 ...ervice/DynamicDataClientSite → DefaultDomainServiceProject}/DynamicData/Content/Images/PgPrev.gif
  244. 0 ...e/DynamicDataClientSite → DefaultDomainServiceProject}/DynamicData/Content/Images/header_back.gif
  245. 0 ... Service/DynamicDataClientSite → DefaultDomainServiceProject}/DynamicData/Content/Images/plus.gif
  246. +15 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default.ascx
  247. +35 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default.ascx.cs
  248. +18 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default.ascx.designer.cs
  249. +15 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default_Edit.ascx
  250. +42 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default_Edit.ascx.cs
  251. +20 −0 ...ata/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default_Edit.ascx.designer.cs
  252. +15 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default_Insert.ascx
  253. +42 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default_Insert.ascx.cs
  254. +20 −0 ...a/Samples/DefaultDomainServiceProject/DynamicData/EntityTemplates/Default_Insert.ascx.designer.cs
  255. +4 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Boolean.ascx
  256. +26 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Boolean.ascx.cs
  257. +18 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Boolean.ascx.designer.cs
  258. +4 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Boolean_Edit.ascx
  259. +30 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Boolean_Edit.ascx.cs
  260. +18 −0 ...Data/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Boolean_Edit.ascx.designer.cs
  261. +4 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Children.ascx
  262. +56 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Children.ascx.cs
  263. +18 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Children.ascx.designer.cs
  264. +3 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Children_Insert.ascx
  265. +13 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Children_Insert.ascx.cs
  266. +16 −0 ...a/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Children_Insert.ascx.designer.cs
  267. +4 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/DateTime.ascx
  268. +18 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/DateTime.ascx.cs
  269. +18 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/DateTime.ascx.designer.cs
  270. +9 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/DateTime_Edit.ascx
  271. +55 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/DateTime_Edit.ascx.cs
  272. +61 −0 ...ata/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/DateTime_Edit.ascx.designer.cs
  273. +12 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Decimal_Edit.ascx
  274. +33 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Decimal_Edit.ascx.cs
  275. +70 −0 ...Data/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Decimal_Edit.ascx.designer.cs
  276. +4 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/EmailAddress.ascx
  277. +26 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/EmailAddress.ascx.cs
  278. +18 −0 ...Data/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/EmailAddress.ascx.designer.cs
  279. +4 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Enumeration.ascx
  280. +34 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Enumeration.ascx.cs
  281. +18 −0 ...cData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Enumeration.ascx.designer.cs
  282. +7 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Enumeration_Edit.ascx
  283. +63 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Enumeration_Edit.ascx.cs
  284. +22 −0 .../Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Enumeration_Edit.ascx.designer.cs
  285. +6 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/ForeignKey.ascx
  286. +56 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/ForeignKey.ascx.cs
  287. +18 −0 ...icData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/ForeignKey.ascx.designer.cs
  288. +8 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/ForeignKey_Edit.ascx
  289. +52 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/ForeignKey_Edit.ascx.cs
  290. +22 −0 ...a/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/ForeignKey_Edit.ascx.designer.cs
  291. +12 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Integer_Edit.ascx
  292. +33 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Integer_Edit.ascx.cs
  293. +70 −0 ...Data/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Integer_Edit.ascx.designer.cs
  294. +7 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/MultilineText_Edit.ascx
  295. +32 −0 ...micData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/MultilineText_Edit.ascx.cs
  296. +52 −0 ...amples/DefaultDomainServiceProject/DynamicData/FieldTemplates/MultilineText_Edit.ascx.designer.cs
  297. +4 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Text.ascx
  298. +18 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Text.ascx.cs
  299. +18 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Text.ascx.designer.cs
  300. +8 −0 DynamicData/Samples/DefaultDomainServiceProject/DynamicData/FieldTemplates/Text_Edit.ascx
Sorry, we could not display the entire diff because too many files (1,181) changed.
View
23 DynamicData/Changes.txt
@@ -1,23 +0,0 @@
-- Added ImprovedDynamicValidator control that fixes issues with DynamicValidator
-correctly catching exceptions thrown off a validated data model object. A tag mapping
-in web.config is used to automatically replace all instance of DynamicValidator with
-ImprovedDynamicValidator. This validator is also now added to the ForeignKey_Edit
-template.
-
-- Fixed a number of issues with the default Style.css stylesheet being to generic.
-Also added the AjaxToolkitFixes.css stylesheet to work around certain issues with using
-Ajax Control Toolkit controls embedded inside of field templates.
-
-- Added EnumDataTypeAttribute that can be used to mark integral columns as actually
-representing enumerated CLR types.
-
-- Modified the Enumeration field template and filter template to take
-EnumDataTypeAttribute into account.
-
-- Modified the Enumeration filter template to detect if an enum is in flags mode
-and display a CheckBoxList instead of a DropDownList.
-
-- Added validation to the DbImage_Edit template. It now verifies that the provided file
-is a valid image and also that a file is provided at all if the column is required.
-
-- Added constraints to routes to illustrate how to block invalid requests.
View
53 DynamicData/DynamicDataFutures.sln
@@ -1,53 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{310B7E7E-43F1-43BD-A38A-9A290B1EA0BD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ADO.NET Data Service", "ADO.NET Data Service", "{D6633434-D1EA-4620-9EE9-83DC8566C3CE}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataServiceSite", "Samples\ADO.NET Data Service\DataServiceSite\DataServiceSite.csproj", "{8A1F4C94-F368-48E8-BF37-4506B62421F9}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamicDataClientSite", "Samples\ADO.NET Data Service\DynamicDataClientSite\DynamicDataClientSite.csproj", "{7422D9AF-231F-4CBA-8520-2664A132607C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamicDataFuturesSample", "Samples\DynamicDataFuturesSample\DynamicDataFuturesSample.csproj", "{F35A9962-A791-4702-8DF6-EEA00F51EE12}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamicDataFutures", "Futures\DynamicDataFutures.csproj", "{A2FBE563-25CD-4375-A339-03F03CE8A5A1}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{92311FCD-FB2B-4B94-AE38-9A7124150F09}"
- ProjectSection(SolutionItems) = preProject
- Changes.txt = Changes.txt
- EndProjectSection
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8A1F4C94-F368-48E8-BF37-4506B62421F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8A1F4C94-F368-48E8-BF37-4506B62421F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8A1F4C94-F368-48E8-BF37-4506B62421F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8A1F4C94-F368-48E8-BF37-4506B62421F9}.Release|Any CPU.Build.0 = Release|Any CPU
- {7422D9AF-231F-4CBA-8520-2664A132607C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7422D9AF-231F-4CBA-8520-2664A132607C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7422D9AF-231F-4CBA-8520-2664A132607C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7422D9AF-231F-4CBA-8520-2664A132607C}.Release|Any CPU.Build.0 = Release|Any CPU
- {F35A9962-A791-4702-8DF6-EEA00F51EE12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F35A9962-A791-4702-8DF6-EEA00F51EE12}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F35A9962-A791-4702-8DF6-EEA00F51EE12}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F35A9962-A791-4702-8DF6-EEA00F51EE12}.Release|Any CPU.Build.0 = Release|Any CPU
- {A2FBE563-25CD-4375-A339-03F03CE8A5A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A2FBE563-25CD-4375-A339-03F03CE8A5A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A2FBE563-25CD-4375-A339-03F03CE8A5A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A2FBE563-25CD-4375-A339-03F03CE8A5A1}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {D6633434-D1EA-4620-9EE9-83DC8566C3CE} = {310B7E7E-43F1-43BD-A38A-9A290B1EA0BD}
- {F35A9962-A791-4702-8DF6-EEA00F51EE12} = {310B7E7E-43F1-43BD-A38A-9A290B1EA0BD}
- {8A1F4C94-F368-48E8-BF37-4506B62421F9} = {D6633434-D1EA-4620-9EE9-83DC8566C3CE}
- {7422D9AF-231F-4CBA-8520-2664A132607C} = {D6633434-D1EA-4620-9EE9-83DC8566C3CE}
- EndGlobalSection
-EndGlobal
View
31 DynamicData/Futures/Attributes/ColumnOrderAttribute.cs
@@ -1,31 +0,0 @@
-using System;
-
-namespace Microsoft.Web.DynamicData {
- /// <summary>
- /// Allows to specify the ordering of columns. Columns are will be sorted in increasing order based
- /// on the Order value. Columns without this attribute have a default Order of 0. Negative values are
- /// allowed and can be used to place a column before all other columns.
- /// </summary>
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, Inherited = true, AllowMultiple = false)]
- public class ColumnOrderAttribute : Attribute, IComparable {
-
- public static ColumnOrderAttribute Default = new ColumnOrderAttribute(0);
-
- public ColumnOrderAttribute(int order) {
- Order = order;
- }
-
- /// <summary>
- /// The ordering of a column. Can be negative.
- /// </summary>
- public int Order { get; private set; }
-
- #region IComparable Members
-
- public int CompareTo(object obj) {
- return Order - ((ColumnOrderAttribute)obj).Order;
- }
-
- #endregion
- }
-}
View
76 DynamicData/Futures/Attributes/EnumDataTypeAttribute.cs
@@ -1,76 +0,0 @@
-using System;
-using System.ComponentModel.DataAnnotations;
-using System.Diagnostics;
-
-namespace Microsoft.Web.DynamicData {
- public class EnumDataTypeAttribute : DataTypeAttribute {
- public Type EnumType { get; private set; }
-
- public EnumDataTypeAttribute(Type enumType)
- : base("Enumeration") {
- if (enumType == null) {
- throw new ArgumentNullException("enumType");
- }
- if (!enumType.IsEnum) {
- throw new ArgumentException("The type needs to be an enum.", "enumType");
- }
- EnumType = enumType;
- }
-
- public override bool IsValid(object value) {
- if (value == null) {
- return true;
- }
-
- Type valueType = value.GetType();
- if (valueType.IsEnum && EnumType != valueType) {
- // don't match a different enum that might map to the same underlying integer
- // REVIEW: is this the right thing to do
- return false;
- }
-
- if (!valueType.IsValueType && valueType != typeof(string)) {
- // non-value types cannot be converted
- return false;
- }
-
- if (valueType == typeof(bool) ||
- valueType == typeof(float) ||
- valueType == typeof(double) ||
- valueType == typeof(decimal) ||
- valueType == typeof(char)) {
- // non-integral types cannot be converted
- return false;
- }
-
- object convertedValue;
- if (valueType.IsEnum) {
- Debug.Assert(valueType == value.GetType());
- convertedValue = value;
- } else {
- try {
- if (value is string) {
- convertedValue = Enum.Parse(EnumType, (string)value);
- } else {
- convertedValue = Enum.ToObject(EnumType, value);
- }
- } catch (ArgumentException) {
- // REVIEW: is there a better way to detect this
- return false;
- }
- }
-
- if (DynamicDataFutures.IsEnumTypeInFlagsMode(EnumType)) {
- // REVIEW: this seems to be the easiest way to ensure that the value is a valid flag combination
- // If it is, the string representation of the enum value will be something like "A, B", while
- // the string representation of the underlying value will be "3". If the enum value does not
- // match a valid flag combination, then it would also be something like "3".
- string underlying = DynamicDataFutures.GetUnderlyingTypeValueString(EnumType, convertedValue);
- string converted = convertedValue.ToString();
- return !underlying.Equals(converted);
- } else {
- return Enum.IsDefined(EnumType, convertedValue);
- }
- }
- }
-}
View
40 DynamicData/Futures/Attributes/FilterAttribute.cs
@@ -1,40 +0,0 @@
-using System;
-
-namespace Microsoft.Web.DynamicData {
- /// <summary>
- /// An attribute used to specify the filtering behavior for a column.
- /// </summary>
- [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple=false)]
- public sealed class FilterAttribute : Attribute, IComparable<FilterAttribute> {
-
- internal static FilterAttribute Default = new FilterAttribute();
-
- public FilterAttribute() {
- Enabled = true;
- Order = 0;
- }
-
- /// <summary>
- /// Value indicating which filter control to use.
- /// </summary>
- public string FilterControl { get; set; }
-
- /// <summary>
- /// The ordering of a filter. Negative values are allowed.
- /// </summary>
- public int Order { get; set; }
-
- /// <summary>
- /// Enable or disable filtering on this column.
- /// </summary>
- public bool Enabled { get; set; }
-
- #region IComparable<FilterAttribute> Members
-
- public int CompareTo(FilterAttribute other) {
- return Order - ((FilterAttribute)other).Order;
- }
-
- #endregion
- }
-}
View
23 DynamicData/Futures/Attributes/LocalizedDescriptionAttribute.cs
@@ -1,23 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.ComponentModel;
-
-namespace Microsoft.Web.DynamicData {
- public class LocalizedDescriptionAttribute : DescriptionAttribute {
- private ResourceProxy ResourceProxy { get; set; }
-
- public LocalizedDescriptionAttribute(Type resourceManager, String resource)
- : base("Need to localize") {
-
- ResourceProxy = new ResourceProxy(resourceManager, resource);
- }
-
- public override string Description {
- get {
- return ResourceProxy.GetResource();
- }
- }
- }
-}
View
19 DynamicData/Futures/Attributes/LocalizedDisplayNameAttribute.cs
@@ -1,19 +0,0 @@
-using System.ComponentModel;
-using System;
-
-namespace Microsoft.Web.DynamicData {
- public class LocalizedDisplayNameAttribute : DisplayNameAttribute {
- private ResourceProxy ResourceProxy { get; set; }
-
- public LocalizedDisplayNameAttribute(Type resourceManager, String resource)
- : base("Need to localize") {
- ResourceProxy = new ResourceProxy(resourceManager, resource);
- }
-
- public override string DisplayName {
- get {
- return ResourceProxy.GetResource();
- }
- }
- }
-}
View
33 DynamicData/Futures/Controls/AdvancedFilterRepeater.cs
@@ -1,33 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using System.Web.DynamicData;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- public class AdvancedFilterRepeater : FilterRepeater {
-
- protected override IEnumerable<MetaColumn> GetFilteredColumns() {
- // sort the filters by their filter order as specified in FilterAttribute.
- return Table.Columns.Where(c => IsFilterableColumn(c)).OrderBy(column => FilterOrdering(column));
- }
-
- protected bool IsFilterableColumn(MetaColumn column) {
- // don't filter custom properties by default
- if (column.IsCustomProperty) return false;
-
- // honor FilterAttribute.Enabled value, if present
- var filterAttribute = column.Attributes.OfType<FilterAttribute>().FirstOrDefault();
- if (filterAttribute != null) return filterAttribute.Enabled;
-
- // always filter FK columns and bools
- if (column is MetaForeignKeyColumn) return true;
- if (column.ColumnType == typeof(bool)) return true;
-
- return false;
- }
-
- private FilterAttribute FilterOrdering(MetaColumn column) {
- return column.Attributes.OfType<FilterAttribute>().DefaultIfEmpty(FilterAttribute.Default).First();
- }
- }
-}
View
121 DynamicData/Futures/Controls/DelegatingFilter.cs
@@ -1,121 +0,0 @@
-using System;
-using System.Web.DynamicData;
-using System.Web.UI.WebControls;
-using System.Web;
-using System.Web.Compilation;
-using System.Linq;
-
-namespace Microsoft.Web.DynamicData {
- public interface ISelectionChangedAware {
- event EventHandler SelectionChanged;
- }
-
- public class DelegatingFilter : FilterUserControlBase, ISelectionChangedAware, IControlParameterTarget {
-
- public event EventHandler SelectionChanged;
-
- private FilterUserControlBase child;
-
- public override string SelectedValue {
- get {
- return child.SelectedValue;
- }
- }
-
- public override DataKey SelectedDataKey {
- get {
- return child.SelectedDataKey;
- }
- }
-
- public object SelectedEnum {
- get {
- string value = SelectedValue;
- return String.IsNullOrEmpty(value) ? null : Enum.Parse(Column.ColumnType, value, false);
- }
- }
-
- protected void Page_Init(object sender, EventArgs e) {
- child = FilterFactory.Instance.GetFilterControl(this.Column);
- child.TableName = this.TableName;
- child.DataField = this.DataField;
- child.ContextTypeName = this.ContextTypeName;
-
- Controls.Add(child);
- }
-
- protected void Page_Load(object sender, EventArgs e) {
- var c = child as ISelectionChangedAware;
- if (c != null) {
- c.SelectionChanged += new EventHandler(DelegatingFilter_SelectionChanged);
- }
- }
-
- void DelegatingFilter_SelectionChanged(object sender, EventArgs e) {
- if (SelectionChanged != null) {
- SelectionChanged(sender, e);
- }
- }
-
- public class FilterFactory {
- static FilterFactory() {
- Instance = new FilterFactory();
- }
-
- public static FilterFactory Instance {
- get;
- private set;
- }
-
- public string FilterFolderVirtualPath {
- get {
- return "~/DynamicData/Filters/";
- }
- }
-
- public virtual FilterUserControlBase GetFilterControl(MetaColumn column) {
- if (column == null) {
- throw new ArgumentNullException("column");
- }
-
- string filterTemplatePath = null;
-
- string filterControlName = "Default";
-
- FilterAttribute filterAttribute = column.Attributes.OfType<FilterAttribute>().FirstOrDefault();
- if (filterAttribute != null) {
- if (!filterAttribute.Enabled) {
- throw new InvalidOperationException(String.Format("The column '{0}' has a disabled filter", column.Name));
- }
-
- if (!String.IsNullOrEmpty(filterAttribute.FilterControl)) {
- filterControlName = filterAttribute.FilterControl;
- }
- }
-
- filterTemplatePath = VirtualPathUtility.Combine(FilterFolderVirtualPath, filterControlName + ".ascx");
-
- var filter = (FilterUserControlBase)BuildManager.CreateInstanceFromVirtualPath(
- filterTemplatePath, typeof(FilterUserControlBase));
-
- return filter;
- }
- }
-
- #region IControlParameterTarget Members
-
- MetaColumn IControlParameterTarget.FilteredColumn {
- get { return ((IControlParameterTarget)child).FilteredColumn; }
- }
-
- string IControlParameterTarget.GetPropertyNameExpression(string columnName) {
- return Column.ColumnType.IsEnum ? "SelectedEnum" : ((IControlParameterTarget)child).GetPropertyNameExpression(columnName);
- }
-
- MetaTable IControlParameterTarget.Table {
- get { return ((IControlParameterTarget)child).Table; }
- }
-
- #endregion
- }
-}
View
222 DynamicData/Futures/Controls/DynamicHyperLink.cs
@@ -1,222 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Linq;
-using System.Web;
-using System.Web.Compilation;
-using System.Web.DynamicData;
-using System.Web.Routing;
-using System.Web.UI;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- /// <summary>
- /// A control that displays links to table actions based on routing rules. In addition, it can data bind
- /// to table items and generate links for actions specific to a given item.
- /// </summary>
- [DefaultProperty("Action")]
- public class DynamicHyperLink : HyperLink, IAttributeAccessor {
- private bool _dataBound;
- private Dictionary<string, string> _extraRouteParams = new Dictionary<string, string>();
-
- // REVIEW: do we need to store anything in ViewState?
-
- /// <summary>
- /// The name of the context type
- /// </summary>
- [DefaultValue("")]
- [Category("Navigation")]
- public string ContextTypeName { get; set; }
-
- /// <summary>
- /// The name of the table
- /// </summary>
- [DefaultValue("")]
- [Category("Navigation")]
- public string TableName { get; set; }
-
- /// <summary>
- /// The name of the action
- /// </summary>
- [TypeConverter(typeof(ActionConverter))]
- [DefaultValue("")]
- [Category("Navigation")]
- public string Action { get; set; }
-
- /// <summary>
- /// The name of the column whose value will be used to populate the Text
- /// property if it is not already set in data binding scenarios.
- /// </summary>
- [DefaultValue("")]
- [Category("Navigation")]
- public string DataField { get; set; }
-
- protected override void OnDataBinding(EventArgs e) {
- base.OnDataBinding(e);
-
- if (DesignMode) {
- if (!String.IsNullOrEmpty(NavigateUrl)) {
- NavigateUrl = "DesignTimeUrl";
- }
- return;
- }
-
- if (!String.IsNullOrEmpty(NavigateUrl)) {
- // stop processing if there already is a URL
- return;
- }
-
- if (!String.IsNullOrEmpty(TableName)) {
- // code path where the current item is not a member of a MetaTable collection, but
- // instead sets the table name, etc
-
- MetaTable table = GetTableFromTableName();
- string action = GetActionOrDefaultTo(PageAction.List);
- NavigateUrl = table.GetActionPath(action, GetRouteValues());
- if (String.IsNullOrEmpty(Text) && !String.IsNullOrEmpty(DataField)) {
- Text = DataBinder.GetPropertyValue(Page.GetDataItem(), DataField).ToString();
- }
- } else {
- // code path where the current item is a MetaTable collection member
-
- IDynamicDataSource datasource = this.FindDataSourceControl();
- MetaTable table = datasource.GetTable();
- if (table == null)
- return;
-
- object dataItem = Page.GetDataItem();
- string action = GetActionOrDefaultTo(PageAction.Details);
- NavigateUrl = table.GetActionPath(action, GetRouteValues(table, dataItem));
-
- if (String.IsNullOrEmpty(Text)) {
- if (!String.IsNullOrEmpty(DataField)) {
- Text = DataBinder.GetPropertyValue(dataItem, DataField).ToString();
- } else {
- Text = table.GetDisplayString(dataItem);
- }
- }
- }
-
- _dataBound = true;
- }
-
- protected override void OnPreRender(EventArgs e) {
- base.OnPreRender(e);
-
- if (DesignMode) {
- if (!String.IsNullOrEmpty(NavigateUrl)) {
- NavigateUrl = "DesignTimeUrl";
- }
- return;
- }
-
- // check both _dataBound and NavigateUrl cause NavigateUrl might be empty if routing/scaffolding
- // does not allow a particular action
- if (!_dataBound && String.IsNullOrEmpty(NavigateUrl)) {
- MetaTable table;
- string action;
- if (!String.IsNullOrEmpty(TableName)) {
- table = GetTableFromTableName();
- } else {
- table = DynamicDataRouteHandler.GetRequestMetaTable(HttpContext.Current);
- }
-
- if (table == null) {
- // can't find table, quit
- return;
- }
-
- action = GetActionOrDefaultTo(PageAction.List);
- NavigateUrl = table.GetActionPath(action, GetRouteValues());
- }
- }
-
- private RouteValueDictionary GetRouteValues() {
- var routeValues = new RouteValueDictionary();
- foreach (var entry in _extraRouteParams) {
- string key = entry.Key;
- if (key.StartsWith("__")) {
- key = key.Substring(2);
- }
-
- routeValues[key] = entry.Value;
- }
- return routeValues;
- }
-
- private RouteValueDictionary GetRouteValues(MetaTable table, object row) {
- RouteValueDictionary routeValues = GetRouteValues();
- foreach (var pk in table.GetPrimaryKeyDictionary(row)) {
- routeValues[pk.Key] = pk.Value;
- }
- return routeValues;
- }
-
- private bool IsAnyNotEmpty(params string[] values) {
- return values.Any(value => !String.IsNullOrEmpty(value));
- }
-
- private bool AreAllNotEmpty(params string[] values) {
- return values.All(value => !String.IsNullOrEmpty(value));
- }
-
- private string GetActionOrDefaultTo(string defaultAction) {
- return String.IsNullOrEmpty(Action) ? defaultAction : Action;
- }
-
- private MetaTable GetTableFromTableName() {
- Debug.Assert(!String.IsNullOrEmpty(TableName));
-
- if (!String.IsNullOrEmpty(ContextTypeName)) {
- // context type allows to disambiguate table names
- Type contextType = BuildManager.GetType(ContextTypeName, true);
- MetaModel model = MetaModel.GetModel(contextType);
- MetaTable table = model.GetTable(TableName, contextType);
- return table;
- } else {
- // try the default model if there is no context type
- return MetaModel.Default.GetTable(TableName);
- }
- }
-
- #region IAttributeAccessor Members
-
- string IAttributeAccessor.GetAttribute(string key) {
- return (string)_extraRouteParams[key];
- }
-
- void IAttributeAccessor.SetAttribute(string key, string value) {
- _extraRouteParams[key] = value;
- }
-
- #endregion
-
- // REVIEW: should this class be private?
- public class ActionConverter : StringConverter {
- private static string[] _targetValues = {
- PageAction.Details,
- PageAction.Edit,
- PageAction.Insert,
- PageAction.List
- };
-
- private StandardValuesCollection _values;
-
- public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
- if (_values == null) {
- _values = new StandardValuesCollection(_targetValues);
- }
- return _values;
- }
-
- public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {
- return false;
- }
-
- public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {
- return true;
- }
- }
- }
-}
View
15 DynamicData/Futures/Controls/DynamicLabel.cs
@@ -1,15 +0,0 @@
-using System;
-using System.Web.DynamicData;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- public class DynamicLabel : Label {
- protected override void OnPreRender(EventArgs e) {
- base.OnPreRender(e);
-
- var dynCtrl = FindControl(AssociatedControlID) as DynamicControl;
- var ftuc = dynCtrl.FieldTemplate as FieldTemplateUserControl;
- AssociatedControlID = ftuc.ID + "$" + ftuc.DataControl.ID;
- }
- }
-}
View
21 DynamicData/Futures/Controls/DynamicReadonlyField.cs
@@ -1,21 +0,0 @@
-using System.Web.DynamicData;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- public class DynamicReadonlyField : DynamicField {
- public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex) {
- if (cellType == DataControlCellType.DataCell) {
- var control = new DynamicControl() { DataField = DataField };
-
- // Copy various properties into the control
- control.UIHint = UIHint;
- control.HtmlEncode = HtmlEncode;
- control.NullDisplayText = NullDisplayText;
-
- cell.Controls.Add(control);
- } else {
- base.InitializeCell(cell, cellType, rowState, rowIndex);
- }
- }
- }
-}
View
47 DynamicData/Futures/Controls/ImprovedDynamicValidator.cs
@@ -1,47 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Web.DynamicData;
-using System.ComponentModel.DataAnnotations;
-
-namespace Microsoft.Web.DynamicData {
- public class ImprovedDynamicValidator : DynamicValidator {
- protected override void ValidateException(Exception exception) {
- // IDynamicValidatorExceptions are used by LinqDataSource to wrap exceptions caused by problems
- // with setting model properties (columns), such as exceptions thrown from the OnXYZChanging
- // methods
- IDynamicValidatorException e = exception as IDynamicValidatorException;
- if (e != null) {
- if (!String.IsNullOrEmpty(ColumnName)) {
- // Assemble a list of column names to check that are relevant to this column. This includes
- // this column as well as any weekly typed foreign key columns if this column is a foreign
- // key relationship
- List<string> columnNames = new List<string>(4); // 4 should be a reasonable default for most cases
- columnNames.Add(ColumnName); // add it first so that it gets checked first
- if (Column is MetaForeignKeyColumn) {
- columnNames.AddRange((Column as MetaForeignKeyColumn).Provider.Association.ForeignKeyNames);
- }
-
- Exception inner;
- foreach (string name in columnNames) {
- // see if the exception wraps any child exceptions relevant to this column
- if (e.InnerExceptions.TryGetValue(name, out inner)) {
- if (inner is ValidationException) {
- // only include ValidationExceptions
- ValidationException = inner;
- }
- // stop as soon as we find any exception. If it was a ValidationException then the rest
- // of the DynamicValidator logic will ensure that it gets displayed as a validator error
- // Otherwise, we want a non-ValidationException to be rethrown to the page.
- return;
- }
- }
- }
- } else {
- // defer to base for other cases
- base.ValidateException(exception);
- }
- }
- }
-}
View
73 DynamicData/Futures/DataSources/DataServiceLinqDataSource.cs
@@ -1,73 +0,0 @@
-using System;
-using System.Data.Services.Client;
-using System.Linq;
-using System.Reflection;
-using System.Web;
-using System.Web.DynamicData;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- public class DataServiceLinqDataSource : LinqDataSource {
-
- protected override void OnInit(EventArgs args) {
- base.OnInit(args);
-
- MetaTable table = this.GetTable();
-
- ContextCreating += delegate(object sender, LinqDataSourceContextEventArgs e) {
- e.ObjectInstance = table.CreateContext();
- };
-
- Selecting += delegate(object sender, LinqDataSourceSelectEventArgs e) {
- var context = (DataServiceContext)table.CreateContext();
-
- var query = table.GetQuery(context);
- if (!String.IsNullOrEmpty(table.ForeignKeyColumnsNames)) {
- MethodInfo addQueryOptionMethod = query.GetType().GetMethod("AddQueryOption");
- if (addQueryOptionMethod != null) {
- query = (IQueryable)addQueryOptionMethod.Invoke(query, new object[] { "$expand", table.ForeignKeyColumnsNames });
- e.Result = query;
- }
- }
-
- e.Arguments.RetrieveTotalRowCount = false;
- e.Arguments.TotalRowCount = e.Arguments.StartRowIndex + 11;
- };
- }
-
- protected override LinqDataSourceView CreateView() {
- return new DataServiceLinqDataSourceView(this, "DefaultView", Context);
- }
- }
-
- public class DataServiceLinqDataSourceView : LinqDataSourceView {
- public DataServiceLinqDataSourceView(LinqDataSource owner, string name, HttpContext context)
- : base(owner, name, context) { }
-
- protected override void ValidateContextType(Type contextType, bool selecting) { }
- protected override void ValidateTableType(Type tableType, bool selecting) { }
-
- protected override void DeleteDataObject(object dataContext, object table, object oldDataObject) {
- var dataServiceContext = (DataServiceContext)dataContext;
- dataServiceContext.AttachTo(TableName, oldDataObject);
- dataServiceContext.DeleteObject(oldDataObject);
- dataServiceContext.SaveChanges();
- }
-
- protected override void InsertDataObject(object dataContext, object table, object newDataObject) {
- var dataServiceContext = (DataServiceContext)dataContext;
- dataServiceContext.AddObject(TableName, newDataObject);
- dataServiceContext.SaveChanges();
- }
-
- protected override void UpdateDataObject(object dataContext, object table, object oldDataObject, object newDataObject) {
-
- // TODO: TEMPORARY simplistic implementation doesn't deal with optmisitic concurrency
-
- var dataServiceContext = (DataServiceContext)dataContext;
- dataServiceContext.AttachTo(TableName, newDataObject);
- dataServiceContext.UpdateObject(newDataObject);
- DataServiceResponse dataServiceResponse = dataServiceContext.SaveChanges();
- }
- }
-}
View
123 DynamicData/Futures/DataSources/DataSourceUtilities.cs
@@ -1,123 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.ComponentModel;
-using System.Globalization;
-using System.Collections;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- public static class DataSourceUtilities {
- public static object BuildDataObject(object dataObject, IDictionary inputParameters) {
- return BuildDataObject(dataObject, dataObject.GetType(), inputParameters);
- }
-
- public static object BuildDataObject(Type dataObjectType, IDictionary inputParameters) {
- return BuildDataObject(Activator.CreateInstance(dataObjectType), dataObjectType, inputParameters);
- }
-
- private static object BuildDataObject(object dataObject, Type dataObjectType, IDictionary inputParameters) {
-
- Dictionary<string, Exception> convertOrValidateExceptions = null;
- PropertyDescriptorCollection props = TypeDescriptor.GetProperties(dataObject);
- foreach (DictionaryEntry de in inputParameters) {
- string propName = (de.Key == null ? String.Empty : de.Key.ToString());
- PropertyDescriptor property = props.Find(propName, /*ignoreCase*/true);
- // NOTE: No longer throws when a property is not found or is read only. This makes
- // Delete, Insert and Update operations more optimistic, allowing scenarios such as:
- // 1) Deletes and Updates after projecting data in the Selecting event.
- // 2) Deletes and Updates after selecting children of the data object type in the
- // Selecting event.
- if ((property != null) && (!property.IsReadOnly)) {
- try {
- object value = BuildObjectValue(de.Value, property.PropertyType, propName);
- property.SetValue(dataObject, value);
- }
- catch (Exception e) {
- if (convertOrValidateExceptions == null) {
- convertOrValidateExceptions = new Dictionary<string, Exception>(
- StringComparer.OrdinalIgnoreCase);
- }
- convertOrValidateExceptions[property.Name] = e;
- }
- }
- }
-
- // package up conversion or dlinq validation exceptions into single exception.
- if (convertOrValidateExceptions != null) {
- // Include the text of the first exception as part of the full exception,
- // to make it less cryptic in scenarios where it gets shown.
- throw new LinqDataSourceValidationException(String.Format(CultureInfo.InvariantCulture,
- "AtlasWeb.LinqDataSourceView_ValidationFailed", dataObjectType, convertOrValidateExceptions.Values.First().Message),
- convertOrValidateExceptions);
- }
-
- return dataObject;
- }
-
- private static object BuildObjectValue(object value, Type destinationType, string paramName) {
- // NOTE: This method came from LinqDataSource with no changes made.
- // Only consider converting the type if the value is non-null and the types don't match
- if ((value != null) && (!destinationType.IsInstanceOfType(value))) {
- Type innerDestinationType = destinationType;
- bool isNullable = false;
- if (destinationType.IsGenericType &&
- (destinationType.GetGenericTypeDefinition() == typeof(Nullable<>))) {
- innerDestinationType = destinationType.GetGenericArguments()[0];
- isNullable = true;
- }
- else {
- if (destinationType.IsByRef) {
- innerDestinationType = destinationType.GetElementType();
- }
- }
-
- // Try to convert from for example string to DateTime, so that
- // afterwards we can convert DateTime to Nullable<DateTime>
-
- // If the value is a string, we attempt to use a TypeConverter to convert it
- value = ConvertType(value, innerDestinationType, paramName);
-
- // Special-case the value when the destination is Nullable<T>
- if (isNullable) {
- Type paramValueType = value.GetType();
- if (innerDestinationType != paramValueType) {
- // Throw if for example, we are trying to convert from int to Nullable<bool>
- throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture,
- "AtlasWeb.LinqDataSourceView_CannotConvertType", paramName, paramValueType.FullName,
- String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>",
- destinationType.GetGenericArguments()[0].FullName)));
- }
- }
- }
- return value;
- }
-
- private static object ConvertType(object value, Type type, string paramName) {
- // NOTE: This method came from LinqDataSource with no changes made.
- string s = value as string;
- if (s != null) {
- // Get the type converter for the destination type
- TypeConverter converter = TypeDescriptor.GetConverter(type);
- if (converter != null) {
- // Perform the conversion
- try {
- value = converter.ConvertFromString(s);
- }
- catch (NotSupportedException) {
- throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture,
- "AtlasWeb.LinqDataSourceView_CannotConvertType", paramName, typeof(string).FullName,
- type.FullName));
- }
- catch (FormatException) {
- throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture,
- "AtlasWeb.LinqDataSourceView_CannotConvertType", paramName, typeof(string).FullName,
- type.FullName));
- }
- }
- }
- return value;
- }
- }
-}
View
109 DynamicData/Futures/DataSources/DynamicObjectDataSource.cs
@@ -1,109 +0,0 @@
-using System;
-using System.Collections;
-using System.ComponentModel.DataAnnotations;
-using System.Web.Compilation;
-using System.Web.DynamicData;
-using System.Web.UI;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- public class DynamicObjectDataSource : ObjectDataSource, IDynamicDataSource {
- internal Type DataObjectType { get; set; }
-
- public DynamicObjectDataSource() { }
-
- protected override void OnInit(EventArgs e) {
- base.OnInit(e);
-
- DataObjectType = BuildManager.GetType(DataObjectTypeName, true);
-
- // Make a generic type to give us a unique key to pass to the MetaModel API
- Type contextType = typeof(DummyContext<>).MakeGenericType(DataObjectType);
-
- // Set the context type and entity set name on ourselves. Note that in this scenario those
- // concept are somewhat artificial, since we don't have a real context. We can set the entity set name
- // to anything, but using the DataObjectType makes some Dynamic Data error messages clearer.
- ((IDynamicDataSource)this).ContextType = contextType;
- ((IDynamicDataSource)this).EntitySetName = DataObjectType.Name;
-
- MetaModel model = null;
- try {
- model = MetaModel.GetModel(contextType);
- }
- catch {
- model = new MetaModel();
- model.RegisterContext(
- new SimpleModelProvider(contextType, DataObjectType),
- new ContextConfiguration() {
- MetadataProviderFactory = (type => new InMemoryMetadataTypeDescriptionProvider(type, new AssociatedMetadataTypeTypeDescriptionProvider(type)))
- });
- }
-
- Inserted += new ObjectDataSourceStatusEventHandler(DynamicObjectDataSource_Inserted);
- Updated += new ObjectDataSourceStatusEventHandler(DynamicObjectDataSource_Updated);
- }
-
- void DynamicObjectDataSource_Updated(object sender, ObjectDataSourceStatusEventArgs e) {
- if (e.Exception != null) {
- OnException(new DynamicValidatorEventArgs(e.Exception.InnerException, DynamicDataSourceOperation.Update));
- }
- }
-
- void DynamicObjectDataSource_Inserted(object sender, ObjectDataSourceStatusEventArgs e) {
- if (e.Exception != null) {
- OnException(new DynamicValidatorEventArgs(e.Exception.InnerException, DynamicDataSourceOperation.Insert));
- }
- }
-
- internal void OnException(DynamicValidatorEventArgs eventArgs) {
- Exception(this, eventArgs);
- }
-
- #region IDynamicDataSource Members
-
- bool IDynamicDataSource.AutoGenerateWhereClause { get; set; }
-
- Type IDynamicDataSource.ContextType { get; set; }
-
- bool IDynamicDataSource.EnableDelete { get; set; }
-
- bool IDynamicDataSource.EnableInsert { get; set; }
-
- bool IDynamicDataSource.EnableUpdate { get; set; }
-
- string IDynamicDataSource.EntitySetName { get; set; }
-
- public event EventHandler<DynamicValidatorEventArgs> Exception;
-
- string IDynamicDataSource.Where { get; set; }
-
- ParameterCollection IDynamicDataSource.WhereParameters {
- get { throw new NotImplementedException(); }
- }
-
- #endregion
-
- #region IDataSource Members
-
- event EventHandler IDataSource.DataSourceChanged {
- add { throw new NotImplementedException(); }
- remove { throw new NotImplementedException(); }
- }
-
- DataSourceView IDataSource.GetView(string viewName) {
- return GetView(viewName);
- }
-
- ICollection IDataSource.GetViewNames() {
- throw new NotImplementedException();
- }
-
- #endregion
-
- /// <summary>
- /// Dummy context class use to register each object type uniquely with ASP.NET
- /// </summary>
- internal class DummyContext<T> {
- }
- }
-}
View
118 DynamicData/Futures/DataSources/SimpleDynamicDataSource.cs
@@ -1,118 +0,0 @@
-using System;
-using System.Collections;
-using System.ComponentModel.DataAnnotations;
-using System.Web.DynamicData;
-using System.Web.UI;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
-
- public class SimpleDynamicDataSource : DataSourceControl, IDynamicDataSource {
- protected override DataSourceView GetView(string viewName) {
- return new SimpleDynamicDataSourceView(this, viewName);
- }
-
- internal object DataObject { get; set; }
- internal Type DataObjectType { get; set; }
-
- public void SetDataObject(object dataObject) {
- SetDataObject(dataObject, null);
- }
-
- public void SetDataObject(object dataObject, DetailsView detailsView) {
- SetDataObjectType(dataObject.GetType(), detailsView);
- DataObject = dataObject;
- }
-
- private void SetDataObjectType(Type dataObjectType, DetailsView detailsView) {
-
- DataObjectType = dataObjectType;
-
- // Make a generic type to give us a unique key to pass to the MetaModel API
- Type contextType = typeof(DummyContext<>).MakeGenericType(DataObjectType);
-
- // Set the context type and entity set name on ourselves. Note that in this scenario those
- // concept are somewhat artificial, since we don't have a real context. We can set the entity set name
- // to anything, but using the DataObjectType makes some Dynamic Data error messages clearer.
- ((IDynamicDataSource)this).ContextType = contextType;
- ((IDynamicDataSource)this).EntitySetName = DataObjectType.Name;
-
- MetaModel model = null;
- try {
- model = MetaModel.GetModel(contextType);
- }
- catch {
- model = new MetaModel();
- model.RegisterContext(
- new SimpleModelProvider(contextType, DataObjectType),
- new ContextConfiguration() {
- MetadataProviderFactory = (type => new InMemoryMetadataTypeDescriptionProvider(type, new AssociatedMetadataTypeTypeDescriptionProvider(type)))
- });
- }
-
- MetaTable table = model.GetTable(DataObjectType);
-
- if (detailsView != null) {
- detailsView.RowsGenerator = new AdvancedFieldGenerator(table, false);
- }
- }
-
- public event EventHandler<SimpleDynamicDataSourceCompleteEventArgs> Complete;
-
- internal void OnComplete(SimpleDynamicDataSourceCompleteEventArgs eventArgs) {
- Complete(this, eventArgs);
- }
-
- internal void OnException(DynamicValidatorEventArgs eventArgs) {
- Exception(this, eventArgs);
- }
-
- #region IDynamicDataSource Members
-
- bool IDynamicDataSource.AutoGenerateWhereClause { get; set; }
-
- Type IDynamicDataSource.ContextType { get; set; }
-
- bool IDynamicDataSource.EnableDelete { get; set; }
-
- bool IDynamicDataSource.EnableInsert { get; set; }
-
- bool IDynamicDataSource.EnableUpdate { get; set; }
-
- string IDynamicDataSource.EntitySetName { get; set; }
-
- public event EventHandler<DynamicValidatorEventArgs> Exception;
-
- string IDynamicDataSource.Where { get; set; }
-
- ParameterCollection IDynamicDataSource.WhereParameters {
- get { throw new NotImplementedException(); }
- }
-
- #endregion
-
- #region IDataSource Members
-
- event EventHandler IDataSource.DataSourceChanged {
- add { throw new NotImplementedException(); }
- remove { throw new NotImplementedException(); }
- }
-
- DataSourceView IDataSource.GetView(string viewName) {
- return GetView(viewName);
- }
-
- ICollection IDataSource.GetViewNames() {
- throw new NotImplementedException();
- }
-
- #endregion
-
- /// <summary>
- /// Dummy context class use to register each object type uniquely with ASP.NET
- /// </summary>
- internal class DummyContext<T> {
- }
- }
-}
-
View
51 DynamicData/Futures/DataSources/SimpleDynamicDataSourceView.cs
@@ -1,51 +0,0 @@
-using System;
-using System.Web.UI.WebControls;
-using System.Web.DynamicData;
-using System.Linq;
-using System.Web.UI;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Globalization;
-
-namespace Microsoft.Web.DynamicData {
- internal class SimpleDynamicDataSourceView : DataSourceView {
-
- private SimpleDynamicDataSource _owner;
-
- public SimpleDynamicDataSourceView(SimpleDynamicDataSource owner, string viewName)
- : base(owner, viewName) {
- _owner = owner;
- }
-
- protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments) {
- return new object[] { _owner.DataObject };
- }
-
- protected override int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) {
-
- object newObject;
-
- try {
- newObject = BuildDataObject(_owner.DataObjectType, values);
- }
- catch (LinqDataSourceValidationException e) {
- // allow user to handle conversion or dlinq property validation exceptions.
- _owner.OnException(new DynamicValidatorEventArgs(e, DynamicDataSourceOperation.Update));
- throw;
- }
-
- var eventArgs = new SimpleDynamicDataSourceCompleteEventArgs() { NewObject = newObject };
-
- _owner.OnComplete(eventArgs);
-
- return 1;
- }
-
- private object BuildDataObject(Type dataObjectType, IDictionary inputParameters) {
- return DataSourceUtilities.BuildDataObject(_owner.DataObject, inputParameters);
- }
- }
-
-}
-
View
375 DynamicData/Futures/DynamicDataFutures.cs
@@ -1,375 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.ComponentModel;
-using System.ComponentModel.DataAnnotations;
-using System.Globalization;
-using System.Linq;
-using System.Text;
-using System.Web;
-using System.Web.DynamicData;
-using System.Web.Routing;
-using System.Web.UI;
-using System.Web.UI.WebControls;
-
-namespace Microsoft.Web.DynamicData {
- /// <summary>
- /// Contains helper methods for working around bugs and small issues. This includes:
- ///
- /// - attribute localization. Because Dynamic Data is too aggressive about caching the
- /// error message, only one version of the error message is stored and reused regardles
- /// of a request's locale.
- ///
- /// - automatic scaffolding of enumerated types. By default enumerated types are not
- /// scaffolded
- ///
- /// - disabling partial rendering for pages displaying image columns
- ///
- /// - building complex where clauses
- /// </summary>
- public static class DynamicDataFutures {
-
- #region Metadata and model helpers
-
- /// <summary>
- /// Gets a value indicating if the column should be scaffolded. This honors the
- /// ScaffoldColumnAttribute as well as returns true if the column is an enumerated type.
- /// </summary>
- /// <param name="column"></param>
- /// <returns></returns>
- public static bool GetScaffold(this MetaColumn column) {
- // make sure we honor the ScaffoldColumnAttribute. The framework already does this
- // but we want to do this again as the first thing.
- var scaffoldAttribute = column.GetAttribute<ScaffoldColumnAttribute>();
- if (scaffoldAttribute != null) {
- return scaffoldAttribute.Scaffold;
- }
-
- // always return true for enumerated types
- return column.ColumnType.IsEnum || column.Scaffold;
- }
-
- /// <summary>
- /// Gets a dictionary with the values of the primary key of the given table for the
- /// given row.
- /// </summary>
- /// <param name="table"></param>
- /// <param name="row"></param>
- /// <returns></returns>
- public static IDictionary<string, object> GetPrimaryKeyDictionary(this MetaTable table, object row) {
- if(row == null) {
- throw new ArgumentNullException("row");
- }
-
- Dictionary<string, object> result = new Dictionary<string, object>();
- var pks = table.GetPrimaryKeyValues(row);
- int i = 0;
- foreach (var pkColumn in table.PrimaryKeyColumns) {
- result[pkColumn.Name] = pks[i++];
- }
-
- return result;
- }
-
- #endregion
-
- #region Where clause builder helpers
-
- /// <summary>
- /// Returns the where clause of the given LinqDataSourceView with Dynamic Data parameters (that have a non-null, non-empyt value) appended
- /// to the end using the AND logical operator.
- /// </summary>
- /// <param name="dataSourceView"></param>
- /// <param name="e"></param>
- /// <returns></returns>
- public static string GetWhereClauseWithDynamicDataParameters(LinqDataSourceView dataSourceView, LinqDataSourceSelectEventArgs e) {
- string whereClause = dataSourceView.Where;
- // get rid of parameters that are already used in the where clause
- var parametersToUse = e.WhereParameters.Where(param => !whereClause.Contains(String.Format("@{0}", param.Key)));
-
- StringBuilder newWhere = new StringBuilder();
- // surround the original where clause with parentheses to make sure the the ANDs don't take precedence
- newWhere.Append("(");
- newWhere.Append(whereClause);
- newWhere.Append(")");
- foreach (var parameter in parametersToUse) {
- // eclude all that have a null or empty value
- if (!(parameter.Value == null || String.IsNullOrEmpty(parameter.Value.ToString()))) {
- newWhere.Append(" AND ");
- newWhere.Append(parameter.Key);
- newWhere.Append(" == @");
- newWhere.Append(parameter.Key);
- }
- }
-
- return newWhere.ToString();
- }
-
- #endregion
-
- #region Localization helpers
-
- /// <summary>
- /// Gets the value of the Description property of a DescriptionAttribute associated with the given column.
- /// </summary>
- /// <param name="column">the column</param>
- /// <returns>The Description property of the DescriptionAttribute, or the default value.</returns>
- public static string GetDescription(this MetaColumn column) {
- var description = column.GetAttribute<DescriptionAttribute>();
- return description == null ? column.Description : description.Description;
- }
-
- /// <summary>
- /// Gets the value of the DisplayName property of a DisplayNameAttribute associated with the given column.
- /// </summary>
- /// <param name="column">the column</param>
- /// <returns>The DisplayName property of the DisplayNameAttribute, or the default value.</returns>
- public static string GetDisplayName(this MetaColumn column) {
- var displayName = column.GetAttribute<DisplayNameAttribute>();
- return displayName == null ? column.DisplayName : displayName.DisplayName;
- }
-
- /// <summary>
- /// Gets the value of the DisplayName property of a DisplayNameAttribute associated with the given table.
- /// </summary>
- /// <param name="table">the table</param>
- /// <returns>The DisplayName property of the DisplayNameAttribute, or the default value.</returns>
- public static string GetDisplayName(this MetaTable table) {
- var displayName = table.Attributes.OfType<DisplayNameAttribute>().FirstOrDefault();
- return displayName == null ? table.DisplayName : displayName.DisplayName;
- }
-
- /// <summary>
- /// Updates the error messages of the given validators to include the localized display name.
- /// This method handles only RangeValidator, RegularExpressionValidator, and RequiredFieldValidator. It
- /// ignores all others.
- /// </summary>
- /// <param name="column">the column the validators are meant to validate</param>
- /// <param name="validators">the validators</param>
- public static void SetUpValidator(MetaColumn column, params BaseValidator[] validators) {
- string displayName = column.GetDisplayName();
- foreach (var validator in validators) {
- if (validator is RangeValidator) {
- var attribute = column.GetAttribute<RangeAttribute>();
- if (attribute != null) {
- validator.ErrorMessage = HttpUtility.HtmlEncode(attribute.FormatErrorMessage(displayName));
- }
- } else if (validator is RegularExpressionValidator) {
- var attribute = column.GetAttribute<RegularExpressionAttribute>();
- if (attribute != null) {
- validator.ErrorMessage = HttpUtility.HtmlEncode(attribute.FormatErrorMessage(displayName));
- }
- } else if (validator is RequiredFieldValidator) {
- var attribute = column.GetAttribute<RequiredAttribute>() ?? new RequiredAttribute();
- validator.ErrorMessage = HttpUtility.HtmlEncode(attribute.FormatErrorMessage(displayName));
- }
- }
- }
-
- #endregion
-
- #region Page helpers
-
- /// <summary>
- /// If the given table contains a column that has a UI Hint with the value "DbImage", finds the ScriptManager
- /// for the current page and disables partial rendering
- /// </summary>
- /// <param name="page"></param>
- /// <param name="table"></param>
- public static void DisablePartialRenderingForUpload(Page page, MetaTable table) {
- foreach (var column in table.Columns) {
- // TODO this depends on the name of the field template, need to fix
- if (String.Equals(column.UIHint, "DbImage", StringComparison.OrdinalIgnoreCase)) {
- var sm = ScriptManager.GetCurrent(page);
- if (sm != null) {
- sm.EnablePartialRendering = false;
- }
- break;
- }
- }
- }
-
- #endregion
-
- #region Default values helpers
-
- public static void RegisterListDefaults(LinqDataSource dataSource, HyperLink hyperLink) {
- hyperLink.PreRender += delegate(object sender, EventArgs e) {
- hyperLink.NavigateUrl = BuildInsertWithDefaultsUrl(dataSource);
- };
- }
-
- public static void RegisterListDetailsDefaults(LinqDataSource dataSource, DetailsView detailsView) {
- MetaTable table = dataSource.GetTable();
- detailsView.DataBound += delegate(object sender, EventArgs e) {
- //In the combined version we stay on the same page and must pull values from the datasource
- if (detailsView.CurrentMode == DetailsViewMode.Insert) {
- SetDefaultInsertControlValues(table, detailsView, BuildRoutesFromDatasource(dataSource));
- }
- };
- }
-
- public static void RegisterInsertDefaults(IDynamicDataSource dataSource, DetailsView detailsView, bool hideDefaults) {
- RequestContext requestContext = DynamicDataRouteHandler.GetRequestContext(HttpContext.Current);
- MetaTable table = dataSource.GetTable();
- if (hideDefaults) {
- var fieldGenerator = detailsView.RowsGenerator as AdvancedFieldGenerator;
- if (fieldGenerator != null) {
- fieldGenerator.SkipList.AddRange(BuildSkipList(table, requestContext.RouteData.Values));
- } else {
- throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, "Expected a field generator of type {0}", typeof(AdvancedFieldGenerator).FullName));
- }
-
- detailsView.ItemInserting += delegate(object sender, DetailsViewInsertEventArgs e) {
- SetDefaultInsertValues(table, requestContext.RouteData.Values, e.Values);
- };
- } else {
- detailsView.DataBound += delegate(object sender, EventArgs e) {
- //In the seperate page version we pull the values from the querystring via routing
- SetDefaultInsertControlValues(table, detailsView, requestContext.RouteData.Values);
- };
- }
- }
-
- private static IEnumerable<MetaColumn> BuildSkipList(MetaTable table, IDictionary<string, object> parameterValues) {
- foreach (MetaColumn column in table.Columns) {
- var fkColumn = column as MetaForeignKeyColumn;
- if (fkColumn != null
- && fkColumn.ForeignKeyNames.All(fkName => parameterValues.Keys.Contains(fkName))) {
- yield return fkColumn;
- } else if (column.ColumnType == typeof(bool)
- && parameterValues.Keys.Contains(column.Name)) {
- // TODO limiting to bool types restricts the advanced filter repeater scenario, make more generic
- yield return column;
- }
- }
- }
-
- private static void SetDefaultInsertControlValues(MetaTable table, DetailsView detailsView, IDictionary<string, object> parameterValues) {
- foreach (MetaColumn column in table.Columns) {
- string controlValue = null;
-
- var fkColumn = column as MetaForeignKeyColumn;
- if (fkColumn != null) {
- IList<object> list = new List<object>();
- foreach (string fkName in fkColumn.ForeignKeyNames) {
- object val;
- if (parameterValues.TryGetValue(fkName, out val)) {
- list.Add(val);
- }
- }
- if (list.Count != fkColumn.ForeignKeyNames.Count)
- continue;
-
- controlValue = fkColumn.ParentTable.GetPrimaryKeyString(list);
- } else if (column.ColumnType == typeof(bool)) {
- object val;
- if (parameterValues.TryGetValue(column.Name, out val)) {
- controlValue = Convert.ToString(val);
- }
- }
-
- if (controlValue == null)
- continue;
-
- var ftuc = detailsView.FindFieldTemplate(column.Name) as FieldTemplateUserControl;
- if (ftuc == null)
- continue;
- if (ftuc.DataControl is ListControl) {
- var ddl = ftuc.DataControl as ListControl;
- ListItem item = ddl.Items.FindByValue(controlValue);
- if (item != null) {
- item.Selected = true;
- }
- } else if (ftuc.DataControl is CheckBox) {
- var cb = ftuc.DataControl as CheckBox;
- cb.Checked = string.Compare(controlValue, "true", true) == 0;
- }
- }
- }
-
- private static void SetDefaultInsertValues(MetaTable table, IDictionary<string, object> parameterValues, IOrderedDictionary insertValues) {
- foreach (MetaColumn column in table.Columns) {
- var fkColumn = column as MetaForeignKeyColumn;
- if (fkColumn != null) {
- IList<object> list = new List<object>();
- foreach (string fkName in fkColumn.ForeignKeyNames) {
- object val;
- if (parameterValues.TryGetValue(fkName, out val)) {
- insertValues[fkName] = val;
- }
- }
- } else if (column.ColumnType == typeof(bool)) {
- object val;
- if (parameterValues.TryGetValue(column.Name, out val)) {
- insertValues[column.Name] = val;
- }
- }
- }
- }
-
- private static RouteValueDictionary BuildRoutesFromDatasource(LinqDataSource dataSource) {
- RouteValueDictionary routeValues = new RouteValueDictionary();
- var paramValues = dataSource.WhereParameters.GetValues(HttpContext.Current, dataSource);
- foreach (DictionaryEntry entry in paramValues) {
- routeValues[(string)entry.Key] = entry.Value;
- }
- return routeValues;
- }
-
- private static string BuildInsertWithDefaultsUrl(LinqDataSource datasource) {
- RouteValueDictionary routeValues = BuildRoutesFromDatasource(datasource);
- MetaTable table = datasource.GetTable();
- return table.GetActionPath(PageAction.Insert, routeValues);
- }
-
- private static void RedirectToInsertWithDefaults(LinqDataSource datasource) {
- HttpContext.Current.Response.Redirect(BuildInsertWithDefaultsUrl(datasource));
- }
-
- #endregion
-
- #region Enumeration type helpers
-
- public static Type GetEnumType(this MetaColumn column) {
- var a = column.Attributes.OfType<EnumDataTypeAttribute>().FirstOrDefault();
- if (a != null) {
- return a.EnumType;
- } else {
- return column.ColumnType.IsEnum ? column.ColumnType : null;
- }
- }
-
- public static string GetUnderlyingTypeValueString(Type enumType, object enumValue) {
- return Convert.ChangeType(enumValue, Enum.GetUnderlyingType(enumType)).ToString();
- }
-
- private static IOrderedDictionary GetEnumNamesAndValues(Type enumType) {
- OrderedDictionary result = new OrderedDictionary();
- foreach (object enumValue in Enum.GetValues(enumType)) {
- // TODO: add way to localize the displayed name
- string name = Enum.GetName(enumType, enumValue);
- string value = DynamicDataFutures.GetUnderlyingTypeValueString(enumType, enumValue);
- result.Add(name, value);
- }
- return result;
- }
-
- public static void FillEnumListControl(ListControl list, Type enumType) {
- foreach (DictionaryEntry entry in DynamicDataFutures.GetEnumNamesAndValues(enumType)) {
- list.Items.Add(new ListItem((string)entry.Key, (string)entry.Value));
- }
- }
-
- public static bool IsEnumTypeInFlagsMode(Type enumType) {
- return enumType.GetCustomAttributes(typeof(FlagsAttribute), false).Length != 0;
- }
-
- #endregion
-
- private static T GetAttribute<T>(this MetaColumn column) where T : Attribute {
- return column.Attributes.OfType<T>().FirstOrDefault();
- }
- }
-}
View
120 DynamicData/Futures/DynamicDataFutures.csproj
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30602</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{A2FBE563-25CD-4375-A339-03F03CE8A5A1}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>Microsoft.Web.DynamicData</RootNamespace>
- <AssemblyName>Microsoft.Web.DynamicData</AssemblyName>
- <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.ComponentModel.DataAnnotations">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data.Linq">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data.Services.Client">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Drawing" />
- <Reference Include="System.Web" />
- <Reference Include="System.Web.Abstractions">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Web.DynamicData">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Web.Extensions">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Web.Routing">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Xml.Linq">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data.DataSetExtensions">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Attributes\ColumnOrderAttribute.cs" />
- <Compile Include="Attributes\EnumDataTypeAttribute.cs" />
- <Compile Include="Attributes\FilterAttribute.cs" />
- <Compile Include="Attributes\ImageFormatAttribute.cs" />
- <Compile Include="Attributes\ImageUrlAttribute.cs" />
- <Compile Include="Attributes\LocalizedDescriptionAttribute.cs" />
- <Compile Include="Attributes\LocalizedDisplayNameAttribute.cs" />
- <Compile Include="Controls\AdvancedFilterRepeater.cs" />
- <Compile Include="Controls\DelegatingFilter.cs">
- <SubType>ASPXCodeBehind</SubType>
- </Compile>
- <Compile Include="Controls\DynamicHyperLink.cs" />
- <Compile Include="Controls\DynamicLabel.cs" />
- <Compile Include="Controls\DynamicReadonlyField.cs" />
- <Compile Include="Controls\ImprovedDynamicValidator.cs" />
- <Compile Include="DataSources\DataServiceLinqDataSource.cs" />
- <Compile Include="DataSources\DataSourceUtilities.cs" />
- <Compile Include="DataSources\DynamicObjectDataSource.cs" />
- <Compile Include="DataSources\SimpleDynamicDataSource.cs" />
- <Compile Include="DataSources\SimpleDynamicDataSourceCompleteEventArgs.cs" />
- <Compile Include="DataSources\SimpleDynamicDataSourceView.cs" />
- <Compile Include="DynamicDataFutures.cs" />
- <Compile Include="FieldGenerator\AdvancedFieldGenerator.cs" />
- <Compile Include="FieldTemplateFactory\AdvancedFieldTemplateFactory.cs" />
- <Compile Include="HttpHandlers\ImageHandler.cs" />
- <Compile Include="LinqExpressionHelper.cs" />
- <Compile Include="MetadataProvider\InMemoryMetadataManager.cs" />
- <Compile Include="MetadataProvider\InMemoryMetadataTypeDescriptionProvider.cs" />
- <Compile Include="MetadataProvider\InMemoryMetadataTypeDescriptor.cs" />
- <Compile Include="Misc\ResourceProxy.cs" />
- <Compile Include="ModelProviders\DataServiceAssociationProvider.cs" />
- <Compile Include="ModelProviders\DataServiceColumnProvider.cs" />
- <Compile Include="ModelProviders\DataServiceModelProvider.cs" />
- <Compile Include="ModelProviders\DataServiceTableProvider.cs" />
- <Compile Include="ModelProviders\SimpleColumnProvider.cs" />
- <Compile Include="ModelProviders\SimpleModelProvider.cs" />
- <Compile Include="ModelProviders\SimpleTableProvider.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Routing\PrettyDynamicDataRoute.cs">
- </Compile>
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project>
View
29 DynamicData/Futures/DynamicDataFutures.sln
@@ -0,0 +1,29 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Misc", "Experimental\Microsoft.Web.Misc.csproj", "{032A18D2-E335-4F5C-98C2-1802997B2834}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DynamicDataFuturesSample", "DynamicDataFuturesSample\DynamicDataFuturesSample.csproj", "{F35A9962-A791-4702-8DF6-EEA00F51EE12}"
+EndProject