22using System . Collections ;
33using System . Collections . Generic ;
44using System . Data ;
5- using System . Globalization ;
65using System . IO ;
76using System . Web ;
87using System . Xml ;
1110using DotNetNuke . Modules . UserDefinedTable . Components ;
1211using DotNetNuke . Modules . UserDefinedTable . Interfaces ;
1312using DotNetNuke . Services . Exceptions ;
14- using DotNetNuke . Services . FileSystem ;
15- using DotNetNuke . Services . Search ;
13+ using DotNetNuke . Services . Search . Entities ;
1614using Microsoft . VisualBasic ;
1715using Globals = DotNetNuke . Common . Globals ;
1816
1917namespace DotNetNuke . Modules . UserDefinedTable
2018{
21- public class BusinessController : ISearchable , IPortable , IPortable2
19+ public class BusinessController : ModuleSearchBase , IPortable , IPortable2
2220 {
2321 public enum SettingsType
2422 {
2523 ModuleSettings ,
2624 TabModuleSettings
2725 }
2826
29- static DataTable GetSettingsTable ( int id , SettingsType type )
30- {
31- var modules = new ModuleController ( ) ;
32- Hashtable settings = null ;
27+ static DataTable GetSettingsTable ( Hashtable settings , SettingsType type )
28+ {
29+
30+
3331 DataTable returnValue = null ;
3432
3533 switch ( type )
3634 {
37- case SettingsType . ModuleSettings :
38- settings = modules . GetModuleSettings ( id ) ;
35+ case SettingsType . ModuleSettings :
36+
3937 returnValue = new DataTable ( DataSetTableName . Settings ) ;
4038 break ;
41- case SettingsType . TabModuleSettings :
42- settings = modules . GetTabModuleSettings ( id ) ;
39+ case SettingsType . TabModuleSettings :
40+
4341 returnValue = new DataTable ( DataSetTableName . TabSettings ) ;
4442 break ;
4543 }
@@ -52,38 +50,38 @@ static DataTable GetSettingsTable(int id, SettingsType type)
5250 }
5351
5452
55- var dc = new DataColumn ( SettingsTableColumn . Setting , typeof ( string ) )
56- { ColumnMapping = MappingType . Attribute } ;
57- if ( returnValue != null ) returnValue . Columns . Add ( dc ) ;
58-
59- dc = new DataColumn ( SettingsTableColumn . Value , typeof ( string ) ) { ColumnMapping = MappingType . Attribute } ;
60- if ( returnValue != null )
61- {
62- returnValue . Columns . Add ( dc ) ;
63-
64- foreach ( var key in sortedSettings . Keys )
65- {
66- var row = returnValue . NewRow ( ) ;
67- row [ SettingsTableColumn . Setting ] = key ;
68- row [ SettingsTableColumn . Value ] = sortedSettings [ key ] ;
69- returnValue . Rows . Add ( row ) ;
70- }
71- return returnValue ;
53+ using ( var nameCol = new DataColumn ( SettingsTableColumn . Setting , typeof ( string ) ) { ColumnMapping = MappingType . Attribute } )
54+ {
55+ if ( returnValue != null )
56+ {
57+ returnValue . Columns . Add ( nameCol ) ;
58+ using ( var valCol = new DataColumn ( SettingsTableColumn . Value , typeof ( string ) ) { ColumnMapping = MappingType . Attribute } )
59+ {
60+ returnValue . Columns . Add ( valCol ) ;
61+ foreach ( var key in sortedSettings . Keys )
62+ {
63+ var row = returnValue . NewRow ( ) ;
64+ row [ SettingsTableColumn . Setting ] = key ;
65+ row [ SettingsTableColumn . Value ] = sortedSettings [ key ] ;
66+ returnValue . Rows . Add ( row ) ;
67+ }
68+ }
69+ }
7270 }
73- return null ;
71+ return returnValue ;
7472 }
7573
7674 DataTable GetStylesheetTable ( Components . Settings settings , int portalId )
7775 {
7876 var returnValue = new DataTable ( DataSetTableName . Stylesheets ) ;
7977
80- returnValue . Columns . Add ( new DataColumn ( StylesheetTableColumn . NameOfSetting , typeof ( string ) ) ) ;
81- returnValue . Columns . Add ( new DataColumn ( StylesheetTableColumn . LocalFilePath , typeof ( string ) ) ) ;
82- returnValue . Columns . Add ( new DataColumn ( StylesheetTableColumn . Stylesheet , typeof ( string ) ) ) ;
78+ returnValue . Columns . Add ( new DataColumn ( StylesheetTableColumn . NameOfSetting , typeof ( string ) ) ) ;
79+ returnValue . Columns . Add ( new DataColumn ( StylesheetTableColumn . LocalFilePath , typeof ( string ) ) ) ;
80+ returnValue . Columns . Add ( new DataColumn ( StylesheetTableColumn . Stylesheet , typeof ( string ) ) ) ;
8381
84- var renderMethod = string . Format ( "UDT_{0}" , settings . RenderingMethod ) ;
82+ var renderMethod = string . Format ( "UDT_{0}" , settings . RenderingMethod ) ;
8583 var listScript = renderMethod == SettingName . XslUserDefinedStyleSheet
86- ? settings . ScriptByRenderingMethod ( renderMethod )
84+ ? settings . ScriptByRenderingMethod ( renderMethod )
8785 : string . Empty ;
8886 if ( listScript . Length > 0 )
8987 {
@@ -106,16 +104,16 @@ DataTable GetStylesheetTable(Components.Settings settings, int portalId)
106104 }
107105
108106 return returnValue ;
109- }
110-
107+ }
108+
111109 /// -----------------------------------------------------------------------------
112110 /// <summary>
113111 /// Implements the search interface for DotNetNuke
114112 /// </summary>
115113 /// -----------------------------------------------------------------------------
116- public SearchItemInfoCollection GetSearchItems ( ModuleInfo modInfo )
117- {
118- var searchItemCollection = new SearchItemInfoCollection ( ) ;
114+ public override IList < SearchDocument > GetModifiedSearchDocuments ( ModuleInfo modInfo , DateTime beginDateUtc )
115+ {
116+ var searchDocuments = new List < SearchDocument > ( ) ;
119117 var udtController = new UserDefinedTableController ( modInfo ) ;
120118
121119 try
@@ -128,8 +126,7 @@ public SearchItemInfoCollection GetSearchItems(ModuleInfo modInfo)
128126 var colnameChangedAt = udtController . ColumnNameByDataType ( dsUserDefinedRows ,
129127 DataTypeNames . UDT_DataType_ChangedAt ) ;
130128
131- var moduleController = new ModuleController ( ) ;
132- var settings = moduleController . GetModuleSettings ( modInfo . ModuleID ) ;
129+ var settings = modInfo . ModuleSettings ;
133130 var includeInSearch = ! ( settings [ SettingName . ExcludeFromSearch ] . AsBoolean ( ) ) ;
134131
135132 if ( includeInSearch )
@@ -139,11 +136,11 @@ public SearchItemInfoCollection GetSearchItems(ModuleInfo modInfo)
139136 var changedDate = DateTime . Today ;
140137 var changedByUserId = 0 ;
141138
142- if ( colnameChangedAt != string . Empty && ! Information . IsDBNull ( row [ colnameChangedAt ] ) )
139+ if ( colnameChangedAt != string . Empty && ! Information . IsDBNull ( row [ colnameChangedAt ] ) )
143140 {
144141 changedDate = Convert . ToDateTime ( row [ colnameChangedAt ] ) ;
145142 }
146- if ( colnameChangedBy != string . Empty && ! Information . IsDBNull ( row [ colnameChangedBy ] ) )
143+ if ( colnameChangedBy != string . Empty && ! Information . IsDBNull ( row [ colnameChangedBy ] ) )
147144 {
148145 changedByUserId = ModuleSecurity . UserId ( row [ colnameChangedBy ] . ToString ( ) , modInfo . PortalID ) ;
149146 }
@@ -163,11 +160,20 @@ public SearchItemInfoCollection GetSearchItems(ModuleInfo modInfo)
163160 if ( desc . EndsWith ( "<br/>" ) )
164161 {
165162 desc = desc . Substring ( 0 , Convert . ToInt32 ( desc . Length - 5 ) ) ;
166- }
167- var searchItem = new SearchItemInfo ( modInfo . ModuleTitle , desc , changedByUserId , changedDate ,
168- modInfo . ModuleID , row [ DataTableColumn . RowId ] . ToString ( ) ,
169- desc ) ;
170- searchItemCollection . Add ( searchItem ) ;
163+ }
164+
165+ var searchDoc = new SearchDocument
166+ {
167+ UniqueKey = row [ DataTableColumn . RowId ] . ToString ( ) ,
168+ PortalId = modInfo . PortalID ,
169+ Title = modInfo . ModuleTitle ,
170+ Description = desc ,
171+ Body = desc ,
172+ ModifiedTimeUtc = changedDate
173+ } ;
174+
175+ searchDocuments . Add ( searchDoc ) ;
176+
171177 }
172178 }
173179 }
@@ -176,7 +182,7 @@ public SearchItemInfoCollection GetSearchItems(ModuleInfo modInfo)
176182 Exceptions . LogException ( ex ) ;
177183 }
178184
179- return searchItemCollection ;
185+ return searchDocuments ;
180186 }
181187
182188
@@ -223,15 +229,16 @@ public DataSet ExportModuleDataSet(int moduleId, int tabId)
223229 {
224230 var udtController = new UserDefinedTableController ( moduleId ) ;
225231 ds = udtController . GetDataSet ( false ) ;
226- ds . Tables . Add ( GetSettingsTable ( moduleId , SettingsType . ModuleSettings ) ) ;
232+ var moduleInfo = new ModuleController ( ) . GetModule ( moduleId ) ;
233+ ds . Tables . Add ( GetSettingsTable ( moduleInfo . ModuleSettings , SettingsType . ModuleSettings ) ) ;
227234 }
228235 else
229236 {
230237 var moduleInfo = new ModuleController ( ) . GetModule ( moduleId , tabId ) ;
231238 var udtController = new UserDefinedTableController ( moduleInfo ) ;
232239 ds = udtController . GetDataSet ( false ) ;
233- ds . Tables . Add ( GetSettingsTable ( moduleId , SettingsType . ModuleSettings ) ) ;
234- ds . Tables . Add ( GetSettingsTable ( moduleInfo . TabModuleID , SettingsType . TabModuleSettings ) ) ;
240+ ds . Tables . Add ( GetSettingsTable ( moduleInfo . ModuleSettings , SettingsType . ModuleSettings ) ) ;
241+ ds . Tables . Add ( GetSettingsTable ( moduleInfo . TabModuleSettings , SettingsType . TabModuleSettings ) ) ;
235242 ds . Tables . Add ( GetStylesheetTable ( udtController . Settings , moduleInfo . PortalID ) ) ;
236243 }
237244 return ( ds ) ;
@@ -277,7 +284,7 @@ public void ImportModule(int moduleId, int tabId, string content, string version
277284 {
278285 AddTabModuleSettings ( modules , tabModuleId , ds ) ;
279286 }
280- if ( ! isInstance )
287+ if ( ! isInstance )
281288 {
282289 AddModuleSettings ( moduleId , modules , ds ) ;
283290 //Fields - first delete old Fields
@@ -348,7 +355,7 @@ static void ImportStyleSheet(int moduleId, bool isInstance, int tabModuleId, Mod
348355 }
349356 else
350357 {
351- if ( ! isInstance )
358+ if ( ! isInstance )
352359 {
353360 modules . UpdateModuleSetting ( moduleId , settingName ,
354361 string . Format ( "{0}/{1}" , Definition . XSLFolderName , fileName ) ) ;
@@ -375,10 +382,10 @@ static void AddFields(int moduleId, DataSet ds)
375382 var fieldSettings = ds . Tables [ DataSetTableName . FieldSettings ] ;
376383 foreach ( DataRow row in ds . Tables [ DataSetTableName . Fields ] . Rows )
377384 {
378- var oldFieldId = row [ FieldsTableColumn . Id ] . AsInt ( ) ;
379- var newFieldId =
385+ var oldFieldId = row [ FieldsTableColumn . Id ] . AsInt ( ) ;
386+ var newFieldId =
380387 FieldController . AddField ( moduleId , row [ FieldsTableColumn . Title ] . ToString ( ) ,
381- row . AsString ( FieldsTableColumn . Order ) . AsInt ( fieldIndex ) ,
388+ row . AsString ( FieldsTableColumn . Order ) . AsInt ( fieldIndex ) ,
382389 row . AsString ( ( FieldsTableColumn . HelpText ) ) ,
383390 row . AsString ( FieldsTableColumn . Required ) . AsBoolean ( ) ,
384391 row . AsString ( ( FieldsTableColumn . Type ) ) ,
@@ -400,8 +407,8 @@ static void AddFields(int moduleId, DataSet ds)
400407 foreach ( DataRowView setting in fieldSettings . WithFieldId ( oldFieldId ) )
401408 {
402409 FieldSettingsController . UpdateFieldSetting (
403- ( string ) setting [ "SettingName" ] ,
404- ( string ) setting [ "SettingValue" ] ,
410+ ( string ) setting [ "SettingName" ] ,
411+ ( string ) setting [ "SettingValue" ] ,
405412 newFieldId ) ;
406413 }
407414 }
0 commit comments