Skip to content

Commit 78bc012

Browse files
Will Strohldavid-poindexter
authored andcommitted
Issues/azure compatibility (#3)
* project file updated to allow for any IIS configuration * SQL updated for azure & DNN best practices * Added defensive coding for first/failed installs * Missed an object qualifier reference * Reference updates necessary to build the project * Removed the config files added by nuget * Added azure-friendly caching decoration to CBO's
1 parent 080a164 commit 78bc012

10 files changed

Lines changed: 95 additions & 48 deletions

File tree

DTOs/DashboardDTO.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
using System;
12
using System.Collections.Generic;
23

34
namespace Dnn.WebAnalytics
45
{
6+
[Serializable]
57
public class DashboardDTO
68
{
79
// initialization

DTOs/DateCountDTO.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Dnn.WebAnalytics
44
{
5+
[Serializable]
56
public class DateCountDTO
67
{
78
// initialization

DTOs/MapDTO.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Dnn.WebAnalytics
44
{
5+
[Serializable]
56
public class MapDTO
67
{
78
// initialization

DTOs/ReportDTO.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Dnn.WebAnalytics
44
{
5+
[Serializable]
56
public class ReportDTO
67
{
78
// initialization

DTOs/VisitDTO.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Dnn.WebAnalytics
44
{
5+
[Serializable]
56
public class VisitDTO
67
{
78
// initialization

DTOs/VisitorDTO.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Dnn.WebAnalytics
44
{
5+
[Serializable]
56
public class VisitorDTO
67
{
78
// initialization

Dnn.WebAnalytics.csproj

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -44,36 +44,43 @@
4444
</PropertyGroup>
4545
<ItemGroup>
4646
<Reference Include="DotNetNuke">
47+
<SpecificVersion>False</SpecificVersion>
4748
<HintPath>..\..\bin\DotNetNuke.dll</HintPath>
4849
<Private>False</Private>
4950
</Reference>
50-
<Reference Include="DotNetNuke.Web, Version=9.3.2.0, Culture=neutral, processorArchitecture=MSIL">
51+
<Reference Include="DotNetNuke.Web">
5152
<SpecificVersion>False</SpecificVersion>
5253
<HintPath>..\..\bin\DotNetNuke.Web.dll</HintPath>
54+
<Private>False</Private>
5355
</Reference>
54-
<Reference Include="DotNetNuke.Web.Client, Version=9.3.2.0, Culture=neutral, processorArchitecture=MSIL">
56+
<Reference Include="DotNetNuke.Web.Client">
5557
<SpecificVersion>False</SpecificVersion>
5658
<HintPath>..\..\bin\DotNetNuke.Web.Client.dll</HintPath>
59+
<Private>False</Private>
5760
</Reference>
5861
<Reference Include="DynamicQueryable, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
5962
<HintPath>packages\DynamicQueryable.2.0.25\lib\netstandard2.0\DynamicQueryable.dll</HintPath>
6063
</Reference>
61-
<Reference Include="FiftyOne.Foundation, Version=3.2.3.2, Culture=neutral, PublicKeyToken=e967ae578dabd98e, processorArchitecture=MSIL">
64+
<Reference Include="FiftyOne.Foundation">
6265
<SpecificVersion>False</SpecificVersion>
63-
<HintPath>..\..\bin\FiftyOne.Foundation.dll</HintPath>
64-
<Private>False</Private>
66+
<HintPath>_LegacyReferences\FiftyOne.Foundation.dll</HintPath>
67+
<Private>True</Private>
68+
</Reference>
69+
<Reference Include="Jokenizer.Net, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
70+
<HintPath>packages\Jokenizer.Net.1.1.0\lib\netstandard2.0\Jokenizer.Net.dll</HintPath>
6571
</Reference>
6672
<Reference Include="MaxMind.Db, Version=2.0.0.0, Culture=neutral, PublicKeyToken=66afa4cc5ae853ac, processorArchitecture=MSIL">
67-
<SpecificVersion>False</SpecificVersion>
68-
<HintPath>..\..\bin\MaxMind.Db.dll</HintPath>
69-
<Private>False</Private>
73+
<HintPath>packages\MaxMind.Db.2.4.0\lib\net45\MaxMind.Db.dll</HintPath>
74+
<Private>True</Private>
7075
</Reference>
7176
<Reference Include="MaxMind.GeoIP2, Version=3.0.0.0, Culture=neutral, PublicKeyToken=66afa4cc5ae853ac, processorArchitecture=MSIL">
72-
<SpecificVersion>False</SpecificVersion>
73-
<HintPath>..\..\bin\MaxMind.GeoIP2.dll</HintPath>
74-
<Private>False</Private>
77+
<HintPath>packages\MaxMind.GeoIP2.3.0.0\lib\net45\MaxMind.GeoIP2.dll</HintPath>
78+
<Private>True</Private>
7579
</Reference>
7680
<Reference Include="Microsoft.CSharp" />
81+
<Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
82+
<HintPath>packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
83+
</Reference>
7784
<Reference Include="System" />
7885
<Reference Include="System.configuration" />
7986
<Reference Include="System.Data" />
@@ -188,18 +195,7 @@
188195
<VisualStudio>
189196
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
190197
<WebProjectProperties>
191-
<UseIIS>True</UseIIS>
192-
<AutoAssignPort>True</AutoAssignPort>
193-
<DevelopmentServerPort>9595</DevelopmentServerPort>
194-
<DevelopmentServerVPath>/</DevelopmentServerVPath>
195-
<IISUrl>http://dnn9.localtest.me/DesktopModules/Dnn.WebAnalytics</IISUrl>
196-
<OverrideIISAppRootUrl>True</OverrideIISAppRootUrl>
197-
<IISAppRootUrl>http://localhost</IISAppRootUrl>
198-
<NTLMAuthentication>False</NTLMAuthentication>
199-
<UseCustomServer>False</UseCustomServer>
200-
<CustomServerUrl>
201-
</CustomServerUrl>
202-
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
198+
<SaveServerSettingsInUserFile>True</SaveServerSettingsInUserFile>
203199
</WebProjectProperties>
204200
</FlavorProperties>
205201
</VisualStudio>

Scripts/01.00.00.sql

Lines changed: 60 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11

2-
CREATE TABLE [dbo].[Visitors](
2+
IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Visitors]') IS NULL
3+
DROP TABLE {databaseOwner}[{objectQualifier}Visitors];
4+
GO
5+
6+
CREATE TABLE {databaseOwner}[{objectQualifier}Visitors](
37
[id] [int] IDENTITY(1,1) NOT NULL,
48
[portal_id] [int] NOT NULL,
59
[user_id] [int] NULL,
610
[created_on_date] [datetime] NOT NULL,
7-
CONSTRAINT [PK_Visitors] PRIMARY KEY CLUSTERED
11+
CONSTRAINT [PK_{objectQualifier}Visitors] PRIMARY KEY CLUSTERED
812
(
913
[id] ASC
10-
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
11-
) ON [PRIMARY]
14+
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
15+
)
16+
GO
17+
18+
IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Visitors]') IS NULL
19+
DROP TABLE {databaseOwner}[{objectQualifier}Visits];
1220
GO
1321

14-
CREATE TABLE [dbo].[Visits](
22+
CREATE TABLE {databaseOwner}[{objectQualifier}Visits](
1523
[id] [bigint] IDENTITY(1,1) NOT NULL,
1624
[date] [datetime] NOT NULL,
1725
[visitor_id] [int] NOT NULL,
@@ -37,39 +45,67 @@ CREATE TABLE [dbo].[Visits](
3745
[session_id] [uniqueidentifier] NULL,
3846
[request_id] [uniqueidentifier] NULL,
3947
[last_request_id] [uniqueidentifier] NULL,
40-
CONSTRAINT [PK_Visits] PRIMARY KEY CLUSTERED
48+
CONSTRAINT [PK_{objectQualifier}Visits] PRIMARY KEY CLUSTERED
4149
(
4250
[id] ASC
43-
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
44-
) ON [PRIMARY]
51+
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
52+
)
4553
GO
46-
ALTER TABLE [dbo].[Visitors] WITH CHECK ADD CONSTRAINT [FK_Visitors_Portals] FOREIGN KEY([portal_id])
47-
REFERENCES [dbo].[Portals] ([PortalID])
54+
55+
ALTER TABLE {databaseOwner}[{objectQualifier}Visitors] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Visitors_Portals] FOREIGN KEY([portal_id])
56+
REFERENCES {databaseOwner}[{objectQualifier}Portals] ([PortalID])
4857
ON DELETE CASCADE
4958
GO
50-
ALTER TABLE [dbo].[Visitors] CHECK CONSTRAINT [FK_Visitors_Portals]
59+
60+
ALTER TABLE {databaseOwner}[{objectQualifier}Visitors] CHECK CONSTRAINT [FK_{objectQualifier}Visitors_Portals]
5161
GO
52-
ALTER TABLE [dbo].[Visitors] WITH CHECK ADD CONSTRAINT [FK_Visitors_Users] FOREIGN KEY([user_id])
53-
REFERENCES [dbo].[Users] ([UserID])
62+
63+
ALTER TABLE {databaseOwner}[{objectQualifier}Visitors] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Visitors_Users] FOREIGN KEY([user_id])
64+
REFERENCES {databaseOwner}[{objectQualifier}Users] ([UserID])
5465
ON UPDATE CASCADE
5566
ON DELETE CASCADE
5667
GO
57-
ALTER TABLE [dbo].[Visitors] CHECK CONSTRAINT [FK_Visitors_Users]
68+
69+
ALTER TABLE {databaseOwner}[{objectQualifier}Visitors] CHECK CONSTRAINT [FK_{objectQualifier}Visitors_Users]
5870
GO
59-
ALTER TABLE [dbo].[Visits] WITH CHECK ADD CONSTRAINT [FK_Visits_Tabs] FOREIGN KEY([tab_id])
60-
REFERENCES [dbo].[Tabs] ([TabID])
71+
72+
ALTER TABLE {databaseOwner}[{objectQualifier}Visits] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Visits_Tabs] FOREIGN KEY([tab_id])
73+
REFERENCES {databaseOwner}[{objectQualifier}Tabs] ([TabID])
6174
GO
62-
ALTER TABLE [dbo].[Visits] CHECK CONSTRAINT [FK_Visits_Tabs]
75+
76+
ALTER TABLE {databaseOwner}[{objectQualifier}Visits] CHECK CONSTRAINT [FK_{objectQualifier}Visits_Tabs]
6377
GO
64-
ALTER TABLE [dbo].[Visits] WITH CHECK ADD CONSTRAINT [FK_Visits_Visitors] FOREIGN KEY([visitor_id])
65-
REFERENCES [dbo].[Visitors] ([id])
78+
79+
ALTER TABLE {databaseOwner}[{objectQualifier}Visits] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Visits_Visitors] FOREIGN KEY([visitor_id])
80+
REFERENCES {databaseOwner}[{objectQualifier}Visitors] ([id])
6681
ON DELETE CASCADE
82+
6783
GO
68-
ALTER TABLE [dbo].[Visits] CHECK CONSTRAINT [FK_Visits_Visitors]
84+
ALTER TABLE {databaseOwner}[{objectQualifier}Visits] CHECK CONSTRAINT [FK_{objectQualifier}Visits_Visitors]
6985
GO
7086

71-
72-
INSERT INTO dbo.Schedule
73-
( TypeFullName, [TimeLapse], [TimeLapseMeasurement], [RetryTimeLapse], [RetryTimeLapseMeasurement], [RetainHistoryNum], [AttachToEvent], [CatchUpEnabled], [Enabled], [ObjectDependencies], [Servers], [FriendlyName])
74-
VALUES ( 'Dnn.WebAnalytics.VisitorJob, Dnn.WebAnalytics', 1, 'd', 1, 'd', 10, '', 0, 1, '', null, 'Visitor Tracking Job' )
87+
IF (SELECT 1 FROM {databaseOwner}[{objectQualifier}Schedule] WHERE [TypeFullName] = N'Dnn.WebAnalytics.VisitorJob, Dnn.WebAnalytics')
88+
BEGIN
89+
UPDATE {databaseOwner}[{objectQualifier}Schedule]
90+
SET
91+
[TimeLapse] = 1,
92+
[TimeLapseMeasurement] = N'd',
93+
[RetryTimeLapse] = 1,
94+
[RetryTimeLapseMeasurement] = N'd',
95+
[RetainHistoryNum] = 10,
96+
[AttachToEvent] = N'',
97+
[CatchUpEnabled] = 0,
98+
[Enabled] = 1,
99+
[ObjectDependencies] = N'',
100+
[Servers] = null,
101+
[FriendlyName] = 'Visitor Tracking Job'
102+
WHERE
103+
[TypeFullName] = N'Dnn.WebAnalytics.VisitorJob, Dnn.WebAnalytics';
104+
END
105+
ELSE
106+
BEGIN
107+
INSERT INTO {databaseOwner}[{objectQualifier}Schedule]
108+
( [TypeFullName], [TimeLapse], [TimeLapseMeasurement], [RetryTimeLapse], [RetryTimeLapseMeasurement], [RetainHistoryNum], [AttachToEvent], [CatchUpEnabled], [Enabled], [ObjectDependencies], [Servers], [FriendlyName])
109+
VALUES ( 'Dnn.WebAnalytics.VisitorJob, Dnn.WebAnalytics', 1, 'd', 1, 'd', 10, '', 0, 1, '', null, 'Visitor Tracking Job' );
110+
END
75111
GO
391 KB
Binary file not shown.

packages.config

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<packages></packages>
2+
<packages>
3+
<package id="DynamicQueryable" version="2.0.25" targetFramework="net472" />
4+
<package id="Jokenizer.Net" version="1.1.0" targetFramework="net472" />
5+
<package id="MaxMind.Db" version="2.4.0" targetFramework="net472" />
6+
<package id="MaxMind.GeoIP2" version="3.0.0" targetFramework="net472" />
7+
<package id="Microsoft.CSharp" version="4.4.1" targetFramework="net472" />
8+
<package id="Newtonsoft.Json" version="11.0.2" targetFramework="net472" />
9+
<package id="System.Reflection.Emit" version="4.3.0" targetFramework="net472" />
10+
</packages>

0 commit comments

Comments
 (0)