diff --git a/Components/FeatureController.cs b/Components/FeatureController.cs new file mode 100644 index 0000000..a7c6574 --- /dev/null +++ b/Components/FeatureController.cs @@ -0,0 +1,8 @@ +using System; + +namespace Dnn.WebAnalytics.Components +{ + public class FeatureController + { + } +} \ No newline at end of file diff --git a/Components/VisitorTracker.cs b/Components/VisitorTracker.cs index 95fe8f6..2c62456 100644 --- a/Components/VisitorTracker.cs +++ b/Components/VisitorTracker.cs @@ -2,17 +2,17 @@ using System.Web; using DotNetNuke.Entities.Portals; using DotNetNuke.Entities.Users; -using System.Linq; +using DotNetNuke.Instrumentation; using DotNetNuke.Services.Exceptions; namespace Dnn.WebAnalytics { public class VisitorTracker : IHttpModule { + private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(VisitorTracker)); private System.Text.RegularExpressions.Regex UserAgentFilter = new System.Text.RegularExpressions.Regex(VisitController.UserAgentFilter, System.Text.RegularExpressions.RegexOptions.Compiled | System.Text.RegularExpressions.RegexOptions.IgnoreCase); VisitController visitController = new VisitController(); - VisitorController visitorController = new VisitorController(); - DataContext dc = new DataContext(); + private VisitorInfoRepo visitorRepo = new VisitorInfoRepo(); public string ModuleName { @@ -52,14 +52,14 @@ public void OnEndRequest(object s, EventArgs e) } // update/create visitor - var visitor = dc.Visitors.Where(i => i.id == visitor_id).SingleOrDefault(); + var visitor = visitorRepo.GetItem(visitor_id, _portalSettings.PortalId); if (visitor == null) { // create Visitor record - visitor = new Visitor() + visitor = new VisitorInfo() { created_on_date = DateTime.Now }; - dc.Visitors.InsertOnSubmit(visitor); + visitorRepo.CreateItem(visitor); } // get User if authenticated @@ -77,7 +77,7 @@ public void OnEndRequest(object s, EventArgs e) { visitor.user_id = user_id; } - dc.SubmitChanges(); + visitorRepo.UpdateItem(visitor); // only process requests for content pages if (_portalSettings != null && Request.Url.LocalPath.ToLower().EndsWith("default.aspx")) @@ -170,28 +170,28 @@ public void OnEndRequest(object s, EventArgs e) string user_agent = Request.UserAgent; // create visit object - VisitDTO visitDTO = new VisitDTO() + var visitDto = new VisitDTO() { date = DateTime.Now, visitor_id = visitor.id, tab_id = _portalSettings.ActiveTab.TabID, ip = ip, - country = "", - region = "", - city = "", - latitude = "", - longitude = "", + country = string.Empty, + region = string.Empty, + city = string.Empty, + latitude = string.Empty, + longitude = string.Empty, language = language, domain = domain, url = url, user_agent = user_agent, device_type = "Desktop", - device = "", - platform = "", - browser = "", + device = string.Empty, + platform = string.Empty, + browser = string.Empty, referrer_domain = domain_referrer, referrer_url = url_referrer, - server = "", + server = string.Empty, activity = "click", campaign = campaign, session_id = session_id, @@ -199,17 +199,18 @@ public void OnEndRequest(object s, EventArgs e) last_request_id = last_request_id }; - visitDTO = visitController.ProcessVisit(visitDTO); + visitDto = visitController.ProcessVisit(visitDto); - Visit visit = visitController.ConvertDtoToItem(null, visitDTO); + VisitInfo visit = visitController.ConvertDtoToItem(null, visitDto); - dc.Visits.InsertOnSubmit(visit); - dc.SubmitChanges(); + var repo = new VisitInfoRepo(); + repo.CreateItem(visit); } } } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); } } diff --git a/Controllers/MapController.cs b/Controllers/MapController.cs index d9f9f22..bd98d8c 100644 --- a/Controllers/MapController.cs +++ b/Controllers/MapController.cs @@ -1,4 +1,5 @@ -using DotNetNuke.Security; +using DotNetNuke.Instrumentation; +using DotNetNuke.Security; using DotNetNuke.Services.Exceptions; using DotNetNuke.Web.Api; using System; @@ -12,11 +13,10 @@ namespace Dnn.WebAnalytics { - //[SupportedModules("Dnn.WebAnalytics")] - //[ValidateAntiForgeryToken] public class MapController : DnnApiController { - DataContext dc = new DataContext(); + private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(MapController)); + private VisitInfoRepo visitRepo = new VisitInfoRepo(); [HttpGet] [DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.View)] @@ -27,10 +27,10 @@ public HttpResponseMessage Get(int minutes) { List dtos = new List(); - List recent_visits = dc.Visits + List recent_visits = visitRepo.GetItemsAll() .Where(i => i.date >= DateTime.Now.AddMinutes(-minutes) && - i.latitude != "" && i.longitude != "" + i.latitude != string.Empty && i.longitude != string.Empty ) .ToList(); @@ -46,7 +46,7 @@ public HttpResponseMessage Get(int minutes) foreach (long id in ids) { - var visit = dc.Visits.Where(i => i.id == id).SingleOrDefault(); + var visit = visitRepo.GetItemById((int)id); // this may need to be debugged and/or handled better later if (visit != null) { MapDTO mapDTO = new MapDTO() @@ -56,7 +56,6 @@ public HttpResponseMessage Get(int minutes) longitude = visit.longitude }; dtos.Add(mapDTO); - } } @@ -64,6 +63,7 @@ public HttpResponseMessage Get(int minutes) } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -107,6 +107,7 @@ public HttpResponseMessage Get() } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } diff --git a/Controllers/VisitController.cs b/Controllers/VisitController.cs index 41f21ee..217e38d 100644 --- a/Controllers/VisitController.cs +++ b/Controllers/VisitController.cs @@ -1,4 +1,5 @@ -using DotNetNuke.Security; +using DotNetNuke.Instrumentation; +using DotNetNuke.Security; using DotNetNuke.Services.Exceptions; using DotNetNuke.Web.Api; using FiftyOne.Foundation.Mobile.Detection; @@ -17,49 +18,50 @@ namespace Dnn.WebAnalytics [ValidateAntiForgeryToken] public class VisitController : DnnApiController { - VisitorController visitorController = new VisitorController(); - DataContext dc = new DataContext(); + private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(VisitController)); + private VisitInfoRepo visitRepo = new VisitInfoRepo(); public static string UserAgentFilter = "bot|crawl|spider|sbider|ask|slurp|larbin|search|indexer|archiver|nutch|capture|scanalert"; [NonAction] - public VisitDTO ConvertItemToDto(Visit item) + public VisitDTO ConvertItemToDto(VisitInfo item) { - VisitDTO dto = new VisitDTO(); - - dto.id = item.id; - dto.date = item.date; - dto.visitor_id = item.visitor_id; - dto.tab_id = item.tab_id; - dto.ip = item.ip; - dto.country = item.country; - dto.region = item.region; - dto.city = item.city; - dto.latitude = item.latitude; - dto.longitude = item.longitude; - dto.language = item.language; - dto.domain = item.domain; - dto.url = item.url; - dto.user_agent = item.user_agent; - dto.device_type = item.device_type; - dto.device = item.device; - dto.platform = item.platform; - dto.browser = item.browser; - dto.referrer_domain = item.referrer_domain; - dto.referrer_url = item.referrer_url; - dto.server = item.server; - dto.campaign = item.campaign; - dto.session_id = item.session_id; - dto.request_id = item.request_id; - dto.last_request_id = item.last_request_id; + VisitDTO dto = new VisitDTO + { + id = item.id, + date = item.date, + visitor_id = item.visitor_id, + tab_id = item.tab_id, + ip = item.ip, + country = item.country, + region = item.region, + city = item.city, + latitude = item.latitude, + longitude = item.longitude, + language = item.language, + domain = item.domain, + url = item.url, + user_agent = item.user_agent, + device_type = item.device_type, + device = item.device, + platform = item.platform, + browser = item.browser, + referrer_domain = item.referrer_domain, + referrer_url = item.referrer_url, + server = item.server, + campaign = item.campaign, + session_id = item.session_id, + request_id = item.request_id, + last_request_id = item.last_request_id + }; return dto; } [NonAction] - public Visit ConvertDtoToItem(Visit item, VisitDTO dto) + public VisitInfo ConvertDtoToItem(VisitInfo item, VisitDTO dto) { if (item == null) { - item = new Visit(); + item = new VisitInfo(); } if (dto == null) @@ -105,9 +107,9 @@ public HttpResponseMessage Get() { List dtos = new List(); - var query = dc.Visits.AsQueryable(); + var query = visitRepo.GetItemsAll().AsQueryable(); - foreach (Visit item in query) + foreach (VisitInfo item in query) { VisitDTO dto = ConvertItemToDto(item); dtos.Add(dto); @@ -117,6 +119,7 @@ public HttpResponseMessage Get() } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -129,7 +132,7 @@ public HttpResponseMessage Get(int id) { try { - Visit item = dc.Visits.Where(i => i.id == id).SingleOrDefault(); + VisitInfo item = visitRepo.GetItemById(id); if (item == null) { @@ -140,6 +143,7 @@ public HttpResponseMessage Get(int id) } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -151,7 +155,7 @@ public HttpResponseMessage Get(int portal_id, Nullable period_start, N { try { - var query = dc.Visits.Where(i => i.Tab.PortalID == portal_id); + var query = visitRepo.GetItems(portal_id);//dc.Visits.Where(i => i.Tab.PortalID == portal_id); if (period_start.HasValue) { @@ -182,6 +186,7 @@ public HttpResponseMessage Get(int portal_id, Nullable period_start, N } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -195,7 +200,7 @@ public HttpResponseMessage Get(string field, int portal_id, Nullable p { List results = new List(); - var query = dc.Visits.Where(i => i.Tab.PortalID == portal_id ); + var query = visitRepo.GetItemsByPortalId(portal_id); if (period_start.HasValue) { @@ -209,7 +214,7 @@ public HttpResponseMessage Get(string field, int portal_id, Nullable p var list = query.ToList(); - IEnumerable> grouped = null; + IEnumerable> grouped = null; switch (field) { @@ -327,6 +332,7 @@ public HttpResponseMessage Get(string field, int portal_id, Nullable p } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -344,6 +350,7 @@ public HttpResponseMessage Post(VisitDTO dto) } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -361,6 +368,7 @@ public HttpResponseMessage Put(VisitDTO dto) } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -372,20 +380,20 @@ public HttpResponseMessage Delete(int id) { try { - Visit item = dc.Visits.Where(i => i.id == id).SingleOrDefault(); + VisitInfo visit = visitRepo.GetItemById(id); - if (item == null) + if (visit == null) { return Request.CreateResponse(HttpStatusCode.NotFound); } - dc.Visits.DeleteOnSubmit(item); - dc.SubmitChanges(); + visitRepo.DeleteItem(visit); return Request.CreateResponse(HttpStatusCode.OK); } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -394,66 +402,18 @@ public HttpResponseMessage Delete(int id) [NonAction] public VisitDTO SaveVisit(VisitDTO dto) { - Visit visit = dc.Visits.Where(i => i.id == dto.id).SingleOrDefault(); + VisitInfo visit = visitRepo.GetItemById((int)dto.id); // this may have to be re-worked or done in another way later if (visit == null) { visit = ConvertDtoToItem(null, dto); - dc.Visits.InsertOnSubmit(visit); + visit = visitRepo.CreateItem(visit); } - visit = ConvertDtoToItem(visit, dto); - - dc.SubmitChanges(); - return ConvertItemToDto(visit); } - //[NonAction] - //public void WriteVisits() - //{ - // List visit_dtos = new List(); - - // // dictionary to store visitors to update - // Dictionary> dicVisitors = new Dictionary>(); - - // // get all visitor objects from Cache - // dynamic CacheItems = HttpRuntime.Cache.Cast().Select(entry => (string)entry.Key).Where(key => key.StartsWith("DNNVISITOR")).ToArray(); - - // // iterate through visit items - // foreach (string Key in CacheItems) - // { - // // get visitor object - // VisitDTO visit_dto = (VisitDTO)HttpRuntime.Cache.Get(Key); - - // // populate visit fields - // visit_dto = ProcessVisit(visit_dto); - - // Visit visit = ConvertDtoToItem(null, visit_dto); - // dc.Visits.InsertOnSubmit(visit); - // dc.SubmitChanges(); - - // //// save visitor - // //if (!dicVisitors.ContainsKey(visit_dto.visitor_id)) - // //{ - // // dicVisitors.Add(visit_dto.visitor_id, visit_dto..user_id); - // //} - // //else - // //{ - // // dicVisitors[visit_dto.visitor_id] = visit_dto.user_id; - // //} - - // HttpRuntime.Cache.Remove(Key); - // } - - // //// iterate through all visitors that need to be updated - // //foreach (KeyValuePair> kvp in dicVisitors) - // //{ - // // visitorController.UpdateVisitor(kvp.Key, kvp.Value); - // //} - //} - [NonAction] public VisitDTO ProcessVisit(VisitDTO visit) { @@ -560,15 +520,14 @@ public VisitDTO ProcessVisit(VisitDTO visit) public void PurgeVisits() { // delete all visit history older than 90 days - List visits = dc.Visits.Where(i => i.date.Date < DateTime.Now.AddDays(-90).Date).ToList(); - dc.Visits.DeleteAllOnSubmit(visits); - dc.SubmitChanges(); + List visits = visitRepo.GetItemsAll().Where(i => i.date.Date < DateTime.Now.AddDays(-90).Date).ToList(); + visitRepo.DeleteItems(visits); } [NonAction] public List GetViews(int portal_id, Nullable start_date, Nullable end_date) { - var query = dc.Visits.Where(i => i.Tab.PortalID == portal_id); + var query = visitRepo.GetItemsByPortalId(portal_id); if (start_date.HasValue) { @@ -598,7 +557,7 @@ public List GetViews(int portal_id, Nullable start_date, [NonAction] public List GetVisits(int portal_id, Nullable start_date, Nullable end_date) { - var query = dc.Visits.Where(i => i.Tab.PortalID == portal_id); + var query = visitRepo.GetItemsByPortalId(portal_id); if (start_date.HasValue) { @@ -628,7 +587,7 @@ public List GetVisits(int portal_id, Nullable start_date [NonAction] public List GetVisitors(int portal_id, Nullable start_date, Nullable end_date) { - var query = dc.Visits.Where(i => i.Tab.PortalID == portal_id); + var query = visitRepo.GetItemsByPortalId(portal_id); if (start_date.HasValue) { @@ -658,7 +617,7 @@ public List GetVisitors(int portal_id, Nullable start_da [NonAction] public List GetUsers(int portal_id, Nullable start_date, Nullable end_date) { - var query = dc.Visits.Where(i => i.Tab.PortalID == portal_id); + var query = visitRepo.GetItemsByPortalId(portal_id); if (start_date.HasValue) { diff --git a/Controllers/VisitorController.cs b/Controllers/VisitorController.cs index e4ffef5..9a25c0a 100644 --- a/Controllers/VisitorController.cs +++ b/Controllers/VisitorController.cs @@ -1,11 +1,9 @@ -using DotNetNuke.Security; +using DotNetNuke.Instrumentation; +using DotNetNuke.Security; using DotNetNuke.Services.Exceptions; using DotNetNuke.Web.Api; using System; using System.Collections.Generic; -using System.Data; -using System.Linq; -using System.Linq.Dynamic; using System.Net; using System.Net.Http; using System.Web.Http; @@ -16,29 +14,31 @@ namespace Dnn.WebAnalytics [ValidateAntiForgeryToken] public class VisitorController : DnnApiController { - DataContext dc = new DataContext(); + private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(VisitorController)); + private VisitorInfoRepo visitorRepo = new VisitorInfoRepo(); [NonAction] - public VisitorDTO ConvertItemToDto(Visitor item) + public VisitorDTO ConvertItemToDto(VisitorInfo item) { - VisitorDTO dto = new VisitorDTO(); - - dto.id = item.id; - dto.portal_id = item.portal_id; - dto.user_id = item.user_id; - dto.created_on_date = item.created_on_date; + VisitorDTO dto = new VisitorDTO + { + id = item.id, + portal_id = item.portal_id, + user_id = item.user_id, + created_on_date = item.created_on_date, - dto.user_username = item.User.Username; - dto.user_displayname = item.User.DisplayName; + user_username = item.User.Username, + user_displayname = item.User.DisplayName + }; return dto; } [NonAction] - public Visitor ConvertDtoToItem(Visitor item, VisitorDTO dto) + public VisitorInfo ConvertDtoToItem(VisitorInfo item, VisitorDTO dto) { if (item == null) { - item = new Visitor(); + item = new VisitorInfo(); } if (dto == null) @@ -63,8 +63,8 @@ public HttpResponseMessage Get() { List dtos = new List(); - var visitors = dc.Visitors.ToList(); - foreach (Visitor visitor in visitors) + var visitors = visitorRepo.GetItemsAll(); + foreach (VisitorInfo visitor in visitors) { VisitorDTO visitorDTO = ConvertItemToDto(visitor); dtos.Add(visitorDTO); @@ -73,6 +73,7 @@ public HttpResponseMessage Get() } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -85,7 +86,7 @@ public HttpResponseMessage Get(int id) { try { - Visitor item = dc.Visitors.Where(i => i.id == id).SingleOrDefault(); + VisitorInfo item = visitorRepo.GetItemById(id); if (item == null) { @@ -96,6 +97,7 @@ public HttpResponseMessage Get(int id) } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -113,6 +115,7 @@ public HttpResponseMessage Post(VisitorDTO dto) } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -130,6 +133,7 @@ public HttpResponseMessage Put(VisitorDTO dto) } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -141,20 +145,20 @@ public HttpResponseMessage Delete(int id) { try { - Visitor item = dc.Visitors.Where(i => i.id == id).SingleOrDefault(); + VisitorInfo item = visitorRepo.GetItemById(id); if (item == null) { return Request.CreateResponse(HttpStatusCode.NotFound); } - dc.Visitors.DeleteOnSubmit(item); - dc.SubmitChanges(); + visitorRepo.DeleteItem(item); return Request.CreateResponse(HttpStatusCode.OK); } catch (Exception ex) { + Logger.Error(ex.Message, ex); Exceptions.LogException(ex); return Request.CreateResponse(HttpStatusCode.InternalServerError, ex); } @@ -163,20 +167,16 @@ public HttpResponseMessage Delete(int id) [NonAction] public VisitorDTO SaveVisitor(VisitorDTO dto) { - Visitor visitor = dc.Visitors.Where(i => i.id == dto.id).SingleOrDefault(); + VisitorInfo visitor = visitorRepo.GetItemById(dto.id); if (visitor == null) { visitor = ConvertDtoToItem(null, dto); visitor.created_on_date = DateTime.Now; - dc.Visitors.InsertOnSubmit(visitor); + visitor = visitorRepo.CreateItem(visitor); } - visitor = ConvertDtoToItem(visitor, dto); - - dc.SubmitChanges(); - return ConvertItemToDto(visitor); } } diff --git a/DAL/WebAnalytics.dbml b/DAL/WebAnalytics.dbml deleted file mode 100644 index 3352df3..0000000 --- a/DAL/WebAnalytics.dbml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
\ No newline at end of file diff --git a/DAL/WebAnalytics.dbml.layout b/DAL/WebAnalytics.dbml.layout deleted file mode 100644 index e2597ae..0000000 --- a/DAL/WebAnalytics.dbml.layout +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/DAL/WebAnalytics.designer.cs b/DAL/WebAnalytics.designer.cs deleted file mode 100644 index 7f0d038..0000000 --- a/DAL/WebAnalytics.designer.cs +++ /dev/null @@ -1,3317 +0,0 @@ -#pragma warning disable 1591 -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Dnn.WebAnalytics -{ - using System.Data.Linq; - using System.Data.Linq.Mapping; - using System.Data; - using System.Collections.Generic; - using System.Reflection; - using System.Linq; - using System.Linq.Expressions; - using System.ComponentModel; - using System; - - - [global::System.Data.Linq.Mapping.DatabaseAttribute(Name="dnn9")] - public partial class DataContext : System.Data.Linq.DataContext - { - - private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource(); - - #region Extensibility Method Definitions - partial void OnCreated(); - partial void InsertPortal(Portal instance); - partial void UpdatePortal(Portal instance); - partial void DeletePortal(Portal instance); - partial void InsertTab(Tab instance); - partial void UpdateTab(Tab instance); - partial void DeleteTab(Tab instance); - partial void InsertVisitor(Visitor instance); - partial void UpdateVisitor(Visitor instance); - partial void DeleteVisitor(Visitor instance); - partial void InsertUser(User instance); - partial void UpdateUser(User instance); - partial void DeleteUser(User instance); - partial void InsertVisit(Visit instance); - partial void UpdateVisit(Visit instance); - partial void DeleteVisit(Visit instance); - #endregion - - public DataContext() : - base(global::System.Configuration.ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString, mappingSource) - { - OnCreated(); - } - - public DataContext(string connection) : - base(connection, mappingSource) - { - OnCreated(); - } - - public DataContext(System.Data.IDbConnection connection) : - base(connection, mappingSource) - { - OnCreated(); - } - - public DataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : - base(connection, mappingSource) - { - OnCreated(); - } - - public DataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : - base(connection, mappingSource) - { - OnCreated(); - } - - public System.Data.Linq.Table Portals - { - get - { - return this.GetTable(); - } - } - - public System.Data.Linq.Table Tabs - { - get - { - return this.GetTable(); - } - } - - public System.Data.Linq.Table Visitors - { - get - { - return this.GetTable(); - } - } - - public System.Data.Linq.Table Users - { - get - { - return this.GetTable(); - } - } - - public System.Data.Linq.Table Visits - { - get - { - return this.GetTable(); - } - } - } - - [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Portals")] - public partial class Portal : INotifyPropertyChanging, INotifyPropertyChanged - { - - private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); - - private int _PortalID; - - private System.Nullable _ExpiryDate; - - private int _UserRegistration; - - private int _BannerAdvertising; - - private System.Nullable _AdministratorId; - - private string _Currency; - - private decimal _HostFee; - - private int _HostSpace; - - private System.Nullable _AdministratorRoleId; - - private System.Nullable _RegisteredRoleId; - - private System.Guid _GUID; - - private string _PaymentProcessor; - - private string _ProcessorUserId; - - private string _ProcessorPassword; - - private System.Nullable _SiteLogHistory; - - private string _DefaultLanguage; - - private int _TimezoneOffset; - - private string _HomeDirectory; - - private int _PageQuota; - - private int _UserQuota; - - private System.Nullable _CreatedByUserID; - - private System.Nullable _CreatedOnDate; - - private System.Nullable _LastModifiedByUserID; - - private System.Nullable _LastModifiedOnDate; - - private System.Nullable _PortalGroupID; - - private EntitySet _Tabs; - - private EntitySet _Visitors; - - #region Extensibility Method Definitions - partial void OnLoaded(); - partial void OnValidate(System.Data.Linq.ChangeAction action); - partial void OnCreated(); - partial void OnPortalIDChanging(int value); - partial void OnPortalIDChanged(); - partial void OnExpiryDateChanging(System.Nullable value); - partial void OnExpiryDateChanged(); - partial void OnUserRegistrationChanging(int value); - partial void OnUserRegistrationChanged(); - partial void OnBannerAdvertisingChanging(int value); - partial void OnBannerAdvertisingChanged(); - partial void OnAdministratorIdChanging(System.Nullable value); - partial void OnAdministratorIdChanged(); - partial void OnCurrencyChanging(string value); - partial void OnCurrencyChanged(); - partial void OnHostFeeChanging(decimal value); - partial void OnHostFeeChanged(); - partial void OnHostSpaceChanging(int value); - partial void OnHostSpaceChanged(); - partial void OnAdministratorRoleIdChanging(System.Nullable value); - partial void OnAdministratorRoleIdChanged(); - partial void OnRegisteredRoleIdChanging(System.Nullable value); - partial void OnRegisteredRoleIdChanged(); - partial void OnGUIDChanging(System.Guid value); - partial void OnGUIDChanged(); - partial void OnPaymentProcessorChanging(string value); - partial void OnPaymentProcessorChanged(); - partial void OnProcessorUserIdChanging(string value); - partial void OnProcessorUserIdChanged(); - partial void OnProcessorPasswordChanging(string value); - partial void OnProcessorPasswordChanged(); - partial void OnSiteLogHistoryChanging(System.Nullable value); - partial void OnSiteLogHistoryChanged(); - partial void OnDefaultLanguageChanging(string value); - partial void OnDefaultLanguageChanged(); - partial void OnTimezoneOffsetChanging(int value); - partial void OnTimezoneOffsetChanged(); - partial void OnHomeDirectoryChanging(string value); - partial void OnHomeDirectoryChanged(); - partial void OnPageQuotaChanging(int value); - partial void OnPageQuotaChanged(); - partial void OnUserQuotaChanging(int value); - partial void OnUserQuotaChanged(); - partial void OnCreatedByUserIDChanging(System.Nullable value); - partial void OnCreatedByUserIDChanged(); - partial void OnCreatedOnDateChanging(System.Nullable value); - partial void OnCreatedOnDateChanged(); - partial void OnLastModifiedByUserIDChanging(System.Nullable value); - partial void OnLastModifiedByUserIDChanged(); - partial void OnLastModifiedOnDateChanging(System.Nullable value); - partial void OnLastModifiedOnDateChanged(); - partial void OnPortalGroupIDChanging(System.Nullable value); - partial void OnPortalGroupIDChanged(); - #endregion - - public Portal() - { - this._Tabs = new EntitySet(new Action(this.attach_Tabs), new Action(this.detach_Tabs)); - this._Visitors = new EntitySet(new Action(this.attach_Visitors), new Action(this.detach_Visitors)); - OnCreated(); - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PortalID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] - public int PortalID - { - get - { - return this._PortalID; - } - set - { - if ((this._PortalID != value)) - { - this.OnPortalIDChanging(value); - this.SendPropertyChanging(); - this._PortalID = value; - this.SendPropertyChanged("PortalID"); - this.OnPortalIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExpiryDate", DbType="DateTime")] - public System.Nullable ExpiryDate - { - get - { - return this._ExpiryDate; - } - set - { - if ((this._ExpiryDate != value)) - { - this.OnExpiryDateChanging(value); - this.SendPropertyChanging(); - this._ExpiryDate = value; - this.SendPropertyChanged("ExpiryDate"); - this.OnExpiryDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserRegistration", DbType="Int NOT NULL")] - public int UserRegistration - { - get - { - return this._UserRegistration; - } - set - { - if ((this._UserRegistration != value)) - { - this.OnUserRegistrationChanging(value); - this.SendPropertyChanging(); - this._UserRegistration = value; - this.SendPropertyChanged("UserRegistration"); - this.OnUserRegistrationChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BannerAdvertising", DbType="Int NOT NULL")] - public int BannerAdvertising - { - get - { - return this._BannerAdvertising; - } - set - { - if ((this._BannerAdvertising != value)) - { - this.OnBannerAdvertisingChanging(value); - this.SendPropertyChanging(); - this._BannerAdvertising = value; - this.SendPropertyChanged("BannerAdvertising"); - this.OnBannerAdvertisingChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdministratorId", DbType="Int")] - public System.Nullable AdministratorId - { - get - { - return this._AdministratorId; - } - set - { - if ((this._AdministratorId != value)) - { - this.OnAdministratorIdChanging(value); - this.SendPropertyChanging(); - this._AdministratorId = value; - this.SendPropertyChanged("AdministratorId"); - this.OnAdministratorIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Currency", DbType="Char(3)")] - public string Currency - { - get - { - return this._Currency; - } - set - { - if ((this._Currency != value)) - { - this.OnCurrencyChanging(value); - this.SendPropertyChanging(); - this._Currency = value; - this.SendPropertyChanged("Currency"); - this.OnCurrencyChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HostFee", DbType="Money NOT NULL")] - public decimal HostFee - { - get - { - return this._HostFee; - } - set - { - if ((this._HostFee != value)) - { - this.OnHostFeeChanging(value); - this.SendPropertyChanging(); - this._HostFee = value; - this.SendPropertyChanged("HostFee"); - this.OnHostFeeChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HostSpace", DbType="Int NOT NULL")] - public int HostSpace - { - get - { - return this._HostSpace; - } - set - { - if ((this._HostSpace != value)) - { - this.OnHostSpaceChanging(value); - this.SendPropertyChanging(); - this._HostSpace = value; - this.SendPropertyChanged("HostSpace"); - this.OnHostSpaceChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdministratorRoleId", DbType="Int")] - public System.Nullable AdministratorRoleId - { - get - { - return this._AdministratorRoleId; - } - set - { - if ((this._AdministratorRoleId != value)) - { - this.OnAdministratorRoleIdChanging(value); - this.SendPropertyChanging(); - this._AdministratorRoleId = value; - this.SendPropertyChanged("AdministratorRoleId"); - this.OnAdministratorRoleIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RegisteredRoleId", DbType="Int")] - public System.Nullable RegisteredRoleId - { - get - { - return this._RegisteredRoleId; - } - set - { - if ((this._RegisteredRoleId != value)) - { - this.OnRegisteredRoleIdChanging(value); - this.SendPropertyChanging(); - this._RegisteredRoleId = value; - this.SendPropertyChanged("RegisteredRoleId"); - this.OnRegisteredRoleIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GUID", DbType="UniqueIdentifier NOT NULL")] - public System.Guid GUID - { - get - { - return this._GUID; - } - set - { - if ((this._GUID != value)) - { - this.OnGUIDChanging(value); - this.SendPropertyChanging(); - this._GUID = value; - this.SendPropertyChanged("GUID"); - this.OnGUIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PaymentProcessor", DbType="NVarChar(50)")] - public string PaymentProcessor - { - get - { - return this._PaymentProcessor; - } - set - { - if ((this._PaymentProcessor != value)) - { - this.OnPaymentProcessorChanging(value); - this.SendPropertyChanging(); - this._PaymentProcessor = value; - this.SendPropertyChanged("PaymentProcessor"); - this.OnPaymentProcessorChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProcessorUserId", DbType="NVarChar(50)")] - public string ProcessorUserId - { - get - { - return this._ProcessorUserId; - } - set - { - if ((this._ProcessorUserId != value)) - { - this.OnProcessorUserIdChanging(value); - this.SendPropertyChanging(); - this._ProcessorUserId = value; - this.SendPropertyChanged("ProcessorUserId"); - this.OnProcessorUserIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProcessorPassword", DbType="NVarChar(100)")] - public string ProcessorPassword - { - get - { - return this._ProcessorPassword; - } - set - { - if ((this._ProcessorPassword != value)) - { - this.OnProcessorPasswordChanging(value); - this.SendPropertyChanging(); - this._ProcessorPassword = value; - this.SendPropertyChanged("ProcessorPassword"); - this.OnProcessorPasswordChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SiteLogHistory", DbType="Int")] - public System.Nullable SiteLogHistory - { - get - { - return this._SiteLogHistory; - } - set - { - if ((this._SiteLogHistory != value)) - { - this.OnSiteLogHistoryChanging(value); - this.SendPropertyChanging(); - this._SiteLogHistory = value; - this.SendPropertyChanged("SiteLogHistory"); - this.OnSiteLogHistoryChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DefaultLanguage", DbType="NVarChar(10) NOT NULL", CanBeNull=false)] - public string DefaultLanguage - { - get - { - return this._DefaultLanguage; - } - set - { - if ((this._DefaultLanguage != value)) - { - this.OnDefaultLanguageChanging(value); - this.SendPropertyChanging(); - this._DefaultLanguage = value; - this.SendPropertyChanged("DefaultLanguage"); - this.OnDefaultLanguageChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TimezoneOffset", DbType="Int NOT NULL")] - public int TimezoneOffset - { - get - { - return this._TimezoneOffset; - } - set - { - if ((this._TimezoneOffset != value)) - { - this.OnTimezoneOffsetChanging(value); - this.SendPropertyChanging(); - this._TimezoneOffset = value; - this.SendPropertyChanged("TimezoneOffset"); - this.OnTimezoneOffsetChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HomeDirectory", DbType="VarChar(100) NOT NULL", CanBeNull=false)] - public string HomeDirectory - { - get - { - return this._HomeDirectory; - } - set - { - if ((this._HomeDirectory != value)) - { - this.OnHomeDirectoryChanging(value); - this.SendPropertyChanging(); - this._HomeDirectory = value; - this.SendPropertyChanged("HomeDirectory"); - this.OnHomeDirectoryChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageQuota", DbType="Int NOT NULL")] - public int PageQuota - { - get - { - return this._PageQuota; - } - set - { - if ((this._PageQuota != value)) - { - this.OnPageQuotaChanging(value); - this.SendPropertyChanging(); - this._PageQuota = value; - this.SendPropertyChanged("PageQuota"); - this.OnPageQuotaChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserQuota", DbType="Int NOT NULL")] - public int UserQuota - { - get - { - return this._UserQuota; - } - set - { - if ((this._UserQuota != value)) - { - this.OnUserQuotaChanging(value); - this.SendPropertyChanging(); - this._UserQuota = value; - this.SendPropertyChanged("UserQuota"); - this.OnUserQuotaChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedByUserID", DbType="Int")] - public System.Nullable CreatedByUserID - { - get - { - return this._CreatedByUserID; - } - set - { - if ((this._CreatedByUserID != value)) - { - this.OnCreatedByUserIDChanging(value); - this.SendPropertyChanging(); - this._CreatedByUserID = value; - this.SendPropertyChanged("CreatedByUserID"); - this.OnCreatedByUserIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOnDate", DbType="DateTime")] - public System.Nullable CreatedOnDate - { - get - { - return this._CreatedOnDate; - } - set - { - if ((this._CreatedOnDate != value)) - { - this.OnCreatedOnDateChanging(value); - this.SendPropertyChanging(); - this._CreatedOnDate = value; - this.SendPropertyChanged("CreatedOnDate"); - this.OnCreatedOnDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastModifiedByUserID", DbType="Int")] - public System.Nullable LastModifiedByUserID - { - get - { - return this._LastModifiedByUserID; - } - set - { - if ((this._LastModifiedByUserID != value)) - { - this.OnLastModifiedByUserIDChanging(value); - this.SendPropertyChanging(); - this._LastModifiedByUserID = value; - this.SendPropertyChanged("LastModifiedByUserID"); - this.OnLastModifiedByUserIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastModifiedOnDate", DbType="DateTime")] - public System.Nullable LastModifiedOnDate - { - get - { - return this._LastModifiedOnDate; - } - set - { - if ((this._LastModifiedOnDate != value)) - { - this.OnLastModifiedOnDateChanging(value); - this.SendPropertyChanging(); - this._LastModifiedOnDate = value; - this.SendPropertyChanged("LastModifiedOnDate"); - this.OnLastModifiedOnDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PortalGroupID", DbType="Int")] - public System.Nullable PortalGroupID - { - get - { - return this._PortalGroupID; - } - set - { - if ((this._PortalGroupID != value)) - { - this.OnPortalGroupIDChanging(value); - this.SendPropertyChanging(); - this._PortalGroupID = value; - this.SendPropertyChanged("PortalGroupID"); - this.OnPortalGroupIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Portal_Tab", Storage="_Tabs", ThisKey="PortalID", OtherKey="PortalID")] - public EntitySet Tabs - { - get - { - return this._Tabs; - } - set - { - this._Tabs.Assign(value); - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Portal_Visitor", Storage="_Visitors", ThisKey="PortalID", OtherKey="portal_id")] - public EntitySet Visitors - { - get - { - return this._Visitors; - } - set - { - this._Visitors.Assign(value); - } - } - - public event PropertyChangingEventHandler PropertyChanging; - - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void SendPropertyChanging() - { - if ((this.PropertyChanging != null)) - { - this.PropertyChanging(this, emptyChangingEventArgs); - } - } - - protected virtual void SendPropertyChanged(String propertyName) - { - if ((this.PropertyChanged != null)) - { - this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - - private void attach_Tabs(Tab entity) - { - this.SendPropertyChanging(); - entity.Portal = this; - } - - private void detach_Tabs(Tab entity) - { - this.SendPropertyChanging(); - entity.Portal = null; - } - - private void attach_Visitors(Visitor entity) - { - this.SendPropertyChanging(); - entity.Portal = this; - } - - private void detach_Visitors(Visitor entity) - { - this.SendPropertyChanging(); - entity.Portal = null; - } - } - - [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Tabs")] - public partial class Tab : INotifyPropertyChanging, INotifyPropertyChanged - { - - private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); - - private int _TabID; - - private int _TabOrder; - - private System.Nullable _PortalID; - - private string _TabName; - - private bool _IsVisible; - - private System.Nullable _ParentId; - - private string _IconFile; - - private bool _DisableLink; - - private string _Title; - - private string _Description; - - private string _KeyWords; - - private bool _IsDeleted; - - private string _Url; - - private string _SkinSrc; - - private string _ContainerSrc; - - private System.Nullable _StartDate; - - private System.Nullable _EndDate; - - private System.Nullable _RefreshInterval; - - private string _PageHeadText; - - private bool _IsSecure; - - private bool _PermanentRedirect; - - private double _SiteMapPriority; - - private System.Nullable _CreatedByUserID; - - private System.Nullable _CreatedOnDate; - - private System.Nullable _LastModifiedByUserID; - - private System.Nullable _LastModifiedOnDate; - - private string _IconFileLarge; - - private string _CultureCode; - - private System.Nullable _ContentItemID; - - private System.Guid _UniqueId; - - private System.Guid _VersionGuid; - - private System.Nullable _DefaultLanguageGuid; - - private System.Guid _LocalizedVersionGuid; - - private int _Level; - - private string _TabPath; - - private bool _HasBeenPublished; - - private bool _IsSystem; - - private EntitySet _Tabs; - - private EntitySet _Visits; - - private EntityRef _Portal; - - private EntityRef _Tab1; - - #region Extensibility Method Definitions - partial void OnLoaded(); - partial void OnValidate(System.Data.Linq.ChangeAction action); - partial void OnCreated(); - partial void OnTabIDChanging(int value); - partial void OnTabIDChanged(); - partial void OnTabOrderChanging(int value); - partial void OnTabOrderChanged(); - partial void OnPortalIDChanging(System.Nullable value); - partial void OnPortalIDChanged(); - partial void OnTabNameChanging(string value); - partial void OnTabNameChanged(); - partial void OnIsVisibleChanging(bool value); - partial void OnIsVisibleChanged(); - partial void OnParentIdChanging(System.Nullable value); - partial void OnParentIdChanged(); - partial void OnIconFileChanging(string value); - partial void OnIconFileChanged(); - partial void OnDisableLinkChanging(bool value); - partial void OnDisableLinkChanged(); - partial void OnTitleChanging(string value); - partial void OnTitleChanged(); - partial void OnDescriptionChanging(string value); - partial void OnDescriptionChanged(); - partial void OnKeyWordsChanging(string value); - partial void OnKeyWordsChanged(); - partial void OnIsDeletedChanging(bool value); - partial void OnIsDeletedChanged(); - partial void OnUrlChanging(string value); - partial void OnUrlChanged(); - partial void OnSkinSrcChanging(string value); - partial void OnSkinSrcChanged(); - partial void OnContainerSrcChanging(string value); - partial void OnContainerSrcChanged(); - partial void OnStartDateChanging(System.Nullable value); - partial void OnStartDateChanged(); - partial void OnEndDateChanging(System.Nullable value); - partial void OnEndDateChanged(); - partial void OnRefreshIntervalChanging(System.Nullable value); - partial void OnRefreshIntervalChanged(); - partial void OnPageHeadTextChanging(string value); - partial void OnPageHeadTextChanged(); - partial void OnIsSecureChanging(bool value); - partial void OnIsSecureChanged(); - partial void OnPermanentRedirectChanging(bool value); - partial void OnPermanentRedirectChanged(); - partial void OnSiteMapPriorityChanging(double value); - partial void OnSiteMapPriorityChanged(); - partial void OnCreatedByUserIDChanging(System.Nullable value); - partial void OnCreatedByUserIDChanged(); - partial void OnCreatedOnDateChanging(System.Nullable value); - partial void OnCreatedOnDateChanged(); - partial void OnLastModifiedByUserIDChanging(System.Nullable value); - partial void OnLastModifiedByUserIDChanged(); - partial void OnLastModifiedOnDateChanging(System.Nullable value); - partial void OnLastModifiedOnDateChanged(); - partial void OnIconFileLargeChanging(string value); - partial void OnIconFileLargeChanged(); - partial void OnCultureCodeChanging(string value); - partial void OnCultureCodeChanged(); - partial void OnContentItemIDChanging(System.Nullable value); - partial void OnContentItemIDChanged(); - partial void OnUniqueIdChanging(System.Guid value); - partial void OnUniqueIdChanged(); - partial void OnVersionGuidChanging(System.Guid value); - partial void OnVersionGuidChanged(); - partial void OnDefaultLanguageGuidChanging(System.Nullable value); - partial void OnDefaultLanguageGuidChanged(); - partial void OnLocalizedVersionGuidChanging(System.Guid value); - partial void OnLocalizedVersionGuidChanged(); - partial void OnLevelChanging(int value); - partial void OnLevelChanged(); - partial void OnTabPathChanging(string value); - partial void OnTabPathChanged(); - partial void OnHasBeenPublishedChanging(bool value); - partial void OnHasBeenPublishedChanged(); - partial void OnIsSystemChanging(bool value); - partial void OnIsSystemChanged(); - #endregion - - public Tab() - { - this._Tabs = new EntitySet(new Action(this.attach_Tabs), new Action(this.detach_Tabs)); - this._Visits = new EntitySet(new Action(this.attach_Visits), new Action(this.detach_Visits)); - this._Portal = default(EntityRef); - this._Tab1 = default(EntityRef); - OnCreated(); - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TabID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] - public int TabID - { - get - { - return this._TabID; - } - set - { - if ((this._TabID != value)) - { - this.OnTabIDChanging(value); - this.SendPropertyChanging(); - this._TabID = value; - this.SendPropertyChanged("TabID"); - this.OnTabIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TabOrder", DbType="Int NOT NULL")] - public int TabOrder - { - get - { - return this._TabOrder; - } - set - { - if ((this._TabOrder != value)) - { - this.OnTabOrderChanging(value); - this.SendPropertyChanging(); - this._TabOrder = value; - this.SendPropertyChanged("TabOrder"); - this.OnTabOrderChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PortalID", DbType="Int")] - public System.Nullable PortalID - { - get - { - return this._PortalID; - } - set - { - if ((this._PortalID != value)) - { - if (this._Portal.HasLoadedOrAssignedValue) - { - throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); - } - this.OnPortalIDChanging(value); - this.SendPropertyChanging(); - this._PortalID = value; - this.SendPropertyChanged("PortalID"); - this.OnPortalIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TabName", DbType="NVarChar(200) NOT NULL", CanBeNull=false)] - public string TabName - { - get - { - return this._TabName; - } - set - { - if ((this._TabName != value)) - { - this.OnTabNameChanging(value); - this.SendPropertyChanging(); - this._TabName = value; - this.SendPropertyChanged("TabName"); - this.OnTabNameChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsVisible", DbType="Bit NOT NULL")] - public bool IsVisible - { - get - { - return this._IsVisible; - } - set - { - if ((this._IsVisible != value)) - { - this.OnIsVisibleChanging(value); - this.SendPropertyChanging(); - this._IsVisible = value; - this.SendPropertyChanged("IsVisible"); - this.OnIsVisibleChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentId", DbType="Int")] - public System.Nullable ParentId - { - get - { - return this._ParentId; - } - set - { - if ((this._ParentId != value)) - { - if (this._Tab1.HasLoadedOrAssignedValue) - { - throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); - } - this.OnParentIdChanging(value); - this.SendPropertyChanging(); - this._ParentId = value; - this.SendPropertyChanged("ParentId"); - this.OnParentIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IconFile", DbType="NVarChar(255)")] - public string IconFile - { - get - { - return this._IconFile; - } - set - { - if ((this._IconFile != value)) - { - this.OnIconFileChanging(value); - this.SendPropertyChanging(); - this._IconFile = value; - this.SendPropertyChanged("IconFile"); - this.OnIconFileChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisableLink", DbType="Bit NOT NULL")] - public bool DisableLink - { - get - { - return this._DisableLink; - } - set - { - if ((this._DisableLink != value)) - { - this.OnDisableLinkChanging(value); - this.SendPropertyChanging(); - this._DisableLink = value; - this.SendPropertyChanged("DisableLink"); - this.OnDisableLinkChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Title", DbType="NVarChar(200)")] - public string Title - { - get - { - return this._Title; - } - set - { - if ((this._Title != value)) - { - this.OnTitleChanging(value); - this.SendPropertyChanging(); - this._Title = value; - this.SendPropertyChanged("Title"); - this.OnTitleChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="NVarChar(500)")] - public string Description - { - get - { - return this._Description; - } - set - { - if ((this._Description != value)) - { - this.OnDescriptionChanging(value); - this.SendPropertyChanging(); - this._Description = value; - this.SendPropertyChanged("Description"); - this.OnDescriptionChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_KeyWords", DbType="NVarChar(500)")] - public string KeyWords - { - get - { - return this._KeyWords; - } - set - { - if ((this._KeyWords != value)) - { - this.OnKeyWordsChanging(value); - this.SendPropertyChanging(); - this._KeyWords = value; - this.SendPropertyChanged("KeyWords"); - this.OnKeyWordsChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDeleted", DbType="Bit NOT NULL")] - public bool IsDeleted - { - get - { - return this._IsDeleted; - } - set - { - if ((this._IsDeleted != value)) - { - this.OnIsDeletedChanging(value); - this.SendPropertyChanging(); - this._IsDeleted = value; - this.SendPropertyChanged("IsDeleted"); - this.OnIsDeletedChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Url", DbType="NVarChar(255)")] - public string Url - { - get - { - return this._Url; - } - set - { - if ((this._Url != value)) - { - this.OnUrlChanging(value); - this.SendPropertyChanging(); - this._Url = value; - this.SendPropertyChanged("Url"); - this.OnUrlChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SkinSrc", DbType="NVarChar(200)")] - public string SkinSrc - { - get - { - return this._SkinSrc; - } - set - { - if ((this._SkinSrc != value)) - { - this.OnSkinSrcChanging(value); - this.SendPropertyChanging(); - this._SkinSrc = value; - this.SendPropertyChanged("SkinSrc"); - this.OnSkinSrcChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContainerSrc", DbType="NVarChar(200)")] - public string ContainerSrc - { - get - { - return this._ContainerSrc; - } - set - { - if ((this._ContainerSrc != value)) - { - this.OnContainerSrcChanging(value); - this.SendPropertyChanging(); - this._ContainerSrc = value; - this.SendPropertyChanged("ContainerSrc"); - this.OnContainerSrcChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartDate", DbType="DateTime")] - public System.Nullable StartDate - { - get - { - return this._StartDate; - } - set - { - if ((this._StartDate != value)) - { - this.OnStartDateChanging(value); - this.SendPropertyChanging(); - this._StartDate = value; - this.SendPropertyChanged("StartDate"); - this.OnStartDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndDate", DbType="DateTime")] - public System.Nullable EndDate - { - get - { - return this._EndDate; - } - set - { - if ((this._EndDate != value)) - { - this.OnEndDateChanging(value); - this.SendPropertyChanging(); - this._EndDate = value; - this.SendPropertyChanged("EndDate"); - this.OnEndDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RefreshInterval", DbType="Int")] - public System.Nullable RefreshInterval - { - get - { - return this._RefreshInterval; - } - set - { - if ((this._RefreshInterval != value)) - { - this.OnRefreshIntervalChanging(value); - this.SendPropertyChanging(); - this._RefreshInterval = value; - this.SendPropertyChanged("RefreshInterval"); - this.OnRefreshIntervalChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageHeadText", DbType="NVarChar(MAX)")] - public string PageHeadText - { - get - { - return this._PageHeadText; - } - set - { - if ((this._PageHeadText != value)) - { - this.OnPageHeadTextChanging(value); - this.SendPropertyChanging(); - this._PageHeadText = value; - this.SendPropertyChanged("PageHeadText"); - this.OnPageHeadTextChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsSecure", DbType="Bit NOT NULL")] - public bool IsSecure - { - get - { - return this._IsSecure; - } - set - { - if ((this._IsSecure != value)) - { - this.OnIsSecureChanging(value); - this.SendPropertyChanging(); - this._IsSecure = value; - this.SendPropertyChanged("IsSecure"); - this.OnIsSecureChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PermanentRedirect", DbType="Bit NOT NULL")] - public bool PermanentRedirect - { - get - { - return this._PermanentRedirect; - } - set - { - if ((this._PermanentRedirect != value)) - { - this.OnPermanentRedirectChanging(value); - this.SendPropertyChanging(); - this._PermanentRedirect = value; - this.SendPropertyChanged("PermanentRedirect"); - this.OnPermanentRedirectChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SiteMapPriority", DbType="Float NOT NULL")] - public double SiteMapPriority - { - get - { - return this._SiteMapPriority; - } - set - { - if ((this._SiteMapPriority != value)) - { - this.OnSiteMapPriorityChanging(value); - this.SendPropertyChanging(); - this._SiteMapPriority = value; - this.SendPropertyChanged("SiteMapPriority"); - this.OnSiteMapPriorityChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedByUserID", DbType="Int")] - public System.Nullable CreatedByUserID - { - get - { - return this._CreatedByUserID; - } - set - { - if ((this._CreatedByUserID != value)) - { - this.OnCreatedByUserIDChanging(value); - this.SendPropertyChanging(); - this._CreatedByUserID = value; - this.SendPropertyChanged("CreatedByUserID"); - this.OnCreatedByUserIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOnDate", DbType="DateTime")] - public System.Nullable CreatedOnDate - { - get - { - return this._CreatedOnDate; - } - set - { - if ((this._CreatedOnDate != value)) - { - this.OnCreatedOnDateChanging(value); - this.SendPropertyChanging(); - this._CreatedOnDate = value; - this.SendPropertyChanged("CreatedOnDate"); - this.OnCreatedOnDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastModifiedByUserID", DbType="Int")] - public System.Nullable LastModifiedByUserID - { - get - { - return this._LastModifiedByUserID; - } - set - { - if ((this._LastModifiedByUserID != value)) - { - this.OnLastModifiedByUserIDChanging(value); - this.SendPropertyChanging(); - this._LastModifiedByUserID = value; - this.SendPropertyChanged("LastModifiedByUserID"); - this.OnLastModifiedByUserIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastModifiedOnDate", DbType="DateTime")] - public System.Nullable LastModifiedOnDate - { - get - { - return this._LastModifiedOnDate; - } - set - { - if ((this._LastModifiedOnDate != value)) - { - this.OnLastModifiedOnDateChanging(value); - this.SendPropertyChanging(); - this._LastModifiedOnDate = value; - this.SendPropertyChanged("LastModifiedOnDate"); - this.OnLastModifiedOnDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IconFileLarge", DbType="NVarChar(255)")] - public string IconFileLarge - { - get - { - return this._IconFileLarge; - } - set - { - if ((this._IconFileLarge != value)) - { - this.OnIconFileLargeChanging(value); - this.SendPropertyChanging(); - this._IconFileLarge = value; - this.SendPropertyChanged("IconFileLarge"); - this.OnIconFileLargeChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CultureCode", DbType="NVarChar(10)")] - public string CultureCode - { - get - { - return this._CultureCode; - } - set - { - if ((this._CultureCode != value)) - { - this.OnCultureCodeChanging(value); - this.SendPropertyChanging(); - this._CultureCode = value; - this.SendPropertyChanged("CultureCode"); - this.OnCultureCodeChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ContentItemID", DbType="Int")] - public System.Nullable ContentItemID - { - get - { - return this._ContentItemID; - } - set - { - if ((this._ContentItemID != value)) - { - this.OnContentItemIDChanging(value); - this.SendPropertyChanging(); - this._ContentItemID = value; - this.SendPropertyChanged("ContentItemID"); - this.OnContentItemIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UniqueId", DbType="UniqueIdentifier NOT NULL")] - public System.Guid UniqueId - { - get - { - return this._UniqueId; - } - set - { - if ((this._UniqueId != value)) - { - this.OnUniqueIdChanging(value); - this.SendPropertyChanging(); - this._UniqueId = value; - this.SendPropertyChanged("UniqueId"); - this.OnUniqueIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_VersionGuid", DbType="UniqueIdentifier NOT NULL")] - public System.Guid VersionGuid - { - get - { - return this._VersionGuid; - } - set - { - if ((this._VersionGuid != value)) - { - this.OnVersionGuidChanging(value); - this.SendPropertyChanging(); - this._VersionGuid = value; - this.SendPropertyChanged("VersionGuid"); - this.OnVersionGuidChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DefaultLanguageGuid", DbType="UniqueIdentifier")] - public System.Nullable DefaultLanguageGuid - { - get - { - return this._DefaultLanguageGuid; - } - set - { - if ((this._DefaultLanguageGuid != value)) - { - this.OnDefaultLanguageGuidChanging(value); - this.SendPropertyChanging(); - this._DefaultLanguageGuid = value; - this.SendPropertyChanged("DefaultLanguageGuid"); - this.OnDefaultLanguageGuidChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LocalizedVersionGuid", DbType="UniqueIdentifier NOT NULL")] - public System.Guid LocalizedVersionGuid - { - get - { - return this._LocalizedVersionGuid; - } - set - { - if ((this._LocalizedVersionGuid != value)) - { - this.OnLocalizedVersionGuidChanging(value); - this.SendPropertyChanging(); - this._LocalizedVersionGuid = value; - this.SendPropertyChanged("LocalizedVersionGuid"); - this.OnLocalizedVersionGuidChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Name="[Level]", Storage="_Level", DbType="Int NOT NULL")] - public int Level - { - get - { - return this._Level; - } - set - { - if ((this._Level != value)) - { - this.OnLevelChanging(value); - this.SendPropertyChanging(); - this._Level = value; - this.SendPropertyChanged("Level"); - this.OnLevelChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TabPath", DbType="NVarChar(255) NOT NULL", CanBeNull=false)] - public string TabPath - { - get - { - return this._TabPath; - } - set - { - if ((this._TabPath != value)) - { - this.OnTabPathChanging(value); - this.SendPropertyChanging(); - this._TabPath = value; - this.SendPropertyChanged("TabPath"); - this.OnTabPathChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HasBeenPublished", DbType="Bit NOT NULL")] - public bool HasBeenPublished - { - get - { - return this._HasBeenPublished; - } - set - { - if ((this._HasBeenPublished != value)) - { - this.OnHasBeenPublishedChanging(value); - this.SendPropertyChanging(); - this._HasBeenPublished = value; - this.SendPropertyChanged("HasBeenPublished"); - this.OnHasBeenPublishedChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsSystem", DbType="Bit NOT NULL")] - public bool IsSystem - { - get - { - return this._IsSystem; - } - set - { - if ((this._IsSystem != value)) - { - this.OnIsSystemChanging(value); - this.SendPropertyChanging(); - this._IsSystem = value; - this.SendPropertyChanged("IsSystem"); - this.OnIsSystemChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Tab_Tab", Storage="_Tabs", ThisKey="TabID", OtherKey="ParentId")] - public EntitySet Tabs - { - get - { - return this._Tabs; - } - set - { - this._Tabs.Assign(value); - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Tab_Visit", Storage="_Visits", ThisKey="TabID", OtherKey="tab_id")] - public EntitySet Visits - { - get - { - return this._Visits; - } - set - { - this._Visits.Assign(value); - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Portal_Tab", Storage="_Portal", ThisKey="PortalID", OtherKey="PortalID", IsForeignKey=true, DeleteRule="CASCADE")] - public Portal Portal - { - get - { - return this._Portal.Entity; - } - set - { - Portal previousValue = this._Portal.Entity; - if (((previousValue != value) - || (this._Portal.HasLoadedOrAssignedValue == false))) - { - this.SendPropertyChanging(); - if ((previousValue != null)) - { - this._Portal.Entity = null; - previousValue.Tabs.Remove(this); - } - this._Portal.Entity = value; - if ((value != null)) - { - value.Tabs.Add(this); - this._PortalID = value.PortalID; - } - else - { - this._PortalID = default(Nullable); - } - this.SendPropertyChanged("Portal"); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Tab_Tab", Storage="_Tab1", ThisKey="ParentId", OtherKey="TabID", IsForeignKey=true)] - public Tab Tab1 - { - get - { - return this._Tab1.Entity; - } - set - { - Tab previousValue = this._Tab1.Entity; - if (((previousValue != value) - || (this._Tab1.HasLoadedOrAssignedValue == false))) - { - this.SendPropertyChanging(); - if ((previousValue != null)) - { - this._Tab1.Entity = null; - previousValue.Tabs.Remove(this); - } - this._Tab1.Entity = value; - if ((value != null)) - { - value.Tabs.Add(this); - this._ParentId = value.TabID; - } - else - { - this._ParentId = default(Nullable); - } - this.SendPropertyChanged("Tab1"); - } - } - } - - public event PropertyChangingEventHandler PropertyChanging; - - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void SendPropertyChanging() - { - if ((this.PropertyChanging != null)) - { - this.PropertyChanging(this, emptyChangingEventArgs); - } - } - - protected virtual void SendPropertyChanged(String propertyName) - { - if ((this.PropertyChanged != null)) - { - this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - - private void attach_Tabs(Tab entity) - { - this.SendPropertyChanging(); - entity.Tab1 = this; - } - - private void detach_Tabs(Tab entity) - { - this.SendPropertyChanging(); - entity.Tab1 = null; - } - - private void attach_Visits(Visit entity) - { - this.SendPropertyChanging(); - entity.Tab = this; - } - - private void detach_Visits(Visit entity) - { - this.SendPropertyChanging(); - entity.Tab = null; - } - } - - [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Visitors")] - public partial class Visitor : INotifyPropertyChanging, INotifyPropertyChanged - { - - private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); - - private int _id; - - private int _portal_id; - - private System.Nullable _user_id; - - private System.DateTime _created_on_date; - - private EntitySet _Visits; - - private EntityRef _Portal; - - private EntityRef _User; - - #region Extensibility Method Definitions - partial void OnLoaded(); - partial void OnValidate(System.Data.Linq.ChangeAction action); - partial void OnCreated(); - partial void OnidChanging(int value); - partial void OnidChanged(); - partial void Onportal_idChanging(int value); - partial void Onportal_idChanged(); - partial void Onuser_idChanging(System.Nullable value); - partial void Onuser_idChanged(); - partial void Oncreated_on_dateChanging(System.DateTime value); - partial void Oncreated_on_dateChanged(); - #endregion - - public Visitor() - { - this._Visits = new EntitySet(new Action(this.attach_Visits), new Action(this.detach_Visits)); - this._Portal = default(EntityRef); - this._User = default(EntityRef); - OnCreated(); - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_id", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] - public int id - { - get - { - return this._id; - } - set - { - if ((this._id != value)) - { - this.OnidChanging(value); - this.SendPropertyChanging(); - this._id = value; - this.SendPropertyChanged("id"); - this.OnidChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_portal_id", DbType="Int NOT NULL")] - public int portal_id - { - get - { - return this._portal_id; - } - set - { - if ((this._portal_id != value)) - { - if (this._Portal.HasLoadedOrAssignedValue) - { - throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); - } - this.Onportal_idChanging(value); - this.SendPropertyChanging(); - this._portal_id = value; - this.SendPropertyChanged("portal_id"); - this.Onportal_idChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_user_id", DbType="Int")] - public System.Nullable user_id - { - get - { - return this._user_id; - } - set - { - if ((this._user_id != value)) - { - if (this._User.HasLoadedOrAssignedValue) - { - throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); - } - this.Onuser_idChanging(value); - this.SendPropertyChanging(); - this._user_id = value; - this.SendPropertyChanged("user_id"); - this.Onuser_idChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_created_on_date", DbType="DateTime NOT NULL")] - public System.DateTime created_on_date - { - get - { - return this._created_on_date; - } - set - { - if ((this._created_on_date != value)) - { - this.Oncreated_on_dateChanging(value); - this.SendPropertyChanging(); - this._created_on_date = value; - this.SendPropertyChanged("created_on_date"); - this.Oncreated_on_dateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Visitor_Visit", Storage="_Visits", ThisKey="id", OtherKey="visitor_id")] - public EntitySet Visits - { - get - { - return this._Visits; - } - set - { - this._Visits.Assign(value); - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Portal_Visitor", Storage="_Portal", ThisKey="portal_id", OtherKey="PortalID", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")] - public Portal Portal - { - get - { - return this._Portal.Entity; - } - set - { - Portal previousValue = this._Portal.Entity; - if (((previousValue != value) - || (this._Portal.HasLoadedOrAssignedValue == false))) - { - this.SendPropertyChanging(); - if ((previousValue != null)) - { - this._Portal.Entity = null; - previousValue.Visitors.Remove(this); - } - this._Portal.Entity = value; - if ((value != null)) - { - value.Visitors.Add(this); - this._portal_id = value.PortalID; - } - else - { - this._portal_id = default(int); - } - this.SendPropertyChanged("Portal"); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="User_Visitor", Storage="_User", ThisKey="user_id", OtherKey="UserID", IsForeignKey=true, DeleteRule="CASCADE")] - public User User - { - get - { - return this._User.Entity; - } - set - { - User previousValue = this._User.Entity; - if (((previousValue != value) - || (this._User.HasLoadedOrAssignedValue == false))) - { - this.SendPropertyChanging(); - if ((previousValue != null)) - { - this._User.Entity = null; - previousValue.Visitors.Remove(this); - } - this._User.Entity = value; - if ((value != null)) - { - value.Visitors.Add(this); - this._user_id = value.UserID; - } - else - { - this._user_id = default(Nullable); - } - this.SendPropertyChanged("User"); - } - } - } - - public event PropertyChangingEventHandler PropertyChanging; - - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void SendPropertyChanging() - { - if ((this.PropertyChanging != null)) - { - this.PropertyChanging(this, emptyChangingEventArgs); - } - } - - protected virtual void SendPropertyChanged(String propertyName) - { - if ((this.PropertyChanged != null)) - { - this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - - private void attach_Visits(Visit entity) - { - this.SendPropertyChanging(); - entity.Visitor = this; - } - - private void detach_Visits(Visit entity) - { - this.SendPropertyChanging(); - entity.Visitor = null; - } - } - - [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Users")] - public partial class User : INotifyPropertyChanging, INotifyPropertyChanged - { - - private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); - - private int _UserID; - - private string _Username; - - private string _FirstName; - - private string _LastName; - - private bool _IsSuperUser; - - private System.Nullable _AffiliateId; - - private string _Email; - - private string _DisplayName; - - private bool _UpdatePassword; - - private string _LastIPAddress; - - private bool _IsDeleted; - - private System.Nullable _CreatedByUserID; - - private System.Nullable _CreatedOnDate; - - private System.Nullable _LastModifiedByUserID; - - private System.Nullable _LastModifiedOnDate; - - private System.Nullable _PasswordResetToken; - - private System.Nullable _PasswordResetExpiration; - - private EntitySet _Visitors; - - #region Extensibility Method Definitions - partial void OnLoaded(); - partial void OnValidate(System.Data.Linq.ChangeAction action); - partial void OnCreated(); - partial void OnUserIDChanging(int value); - partial void OnUserIDChanged(); - partial void OnUsernameChanging(string value); - partial void OnUsernameChanged(); - partial void OnFirstNameChanging(string value); - partial void OnFirstNameChanged(); - partial void OnLastNameChanging(string value); - partial void OnLastNameChanged(); - partial void OnIsSuperUserChanging(bool value); - partial void OnIsSuperUserChanged(); - partial void OnAffiliateIdChanging(System.Nullable value); - partial void OnAffiliateIdChanged(); - partial void OnEmailChanging(string value); - partial void OnEmailChanged(); - partial void OnDisplayNameChanging(string value); - partial void OnDisplayNameChanged(); - partial void OnUpdatePasswordChanging(bool value); - partial void OnUpdatePasswordChanged(); - partial void OnLastIPAddressChanging(string value); - partial void OnLastIPAddressChanged(); - partial void OnIsDeletedChanging(bool value); - partial void OnIsDeletedChanged(); - partial void OnCreatedByUserIDChanging(System.Nullable value); - partial void OnCreatedByUserIDChanged(); - partial void OnCreatedOnDateChanging(System.Nullable value); - partial void OnCreatedOnDateChanged(); - partial void OnLastModifiedByUserIDChanging(System.Nullable value); - partial void OnLastModifiedByUserIDChanged(); - partial void OnLastModifiedOnDateChanging(System.Nullable value); - partial void OnLastModifiedOnDateChanged(); - partial void OnPasswordResetTokenChanging(System.Nullable value); - partial void OnPasswordResetTokenChanged(); - partial void OnPasswordResetExpirationChanging(System.Nullable value); - partial void OnPasswordResetExpirationChanged(); - #endregion - - public User() - { - this._Visitors = new EntitySet(new Action(this.attach_Visitors), new Action(this.detach_Visitors)); - OnCreated(); - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] - public int UserID - { - get - { - return this._UserID; - } - set - { - if ((this._UserID != value)) - { - this.OnUserIDChanging(value); - this.SendPropertyChanging(); - this._UserID = value; - this.SendPropertyChanged("UserID"); - this.OnUserIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Username", DbType="NVarChar(100) NOT NULL", CanBeNull=false)] - public string Username - { - get - { - return this._Username; - } - set - { - if ((this._Username != value)) - { - this.OnUsernameChanging(value); - this.SendPropertyChanging(); - this._Username = value; - this.SendPropertyChanged("Username"); - this.OnUsernameChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FirstName", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string FirstName - { - get - { - return this._FirstName; - } - set - { - if ((this._FirstName != value)) - { - this.OnFirstNameChanging(value); - this.SendPropertyChanging(); - this._FirstName = value; - this.SendPropertyChanged("FirstName"); - this.OnFirstNameChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastName", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string LastName - { - get - { - return this._LastName; - } - set - { - if ((this._LastName != value)) - { - this.OnLastNameChanging(value); - this.SendPropertyChanging(); - this._LastName = value; - this.SendPropertyChanged("LastName"); - this.OnLastNameChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsSuperUser", DbType="Bit NOT NULL")] - public bool IsSuperUser - { - get - { - return this._IsSuperUser; - } - set - { - if ((this._IsSuperUser != value)) - { - this.OnIsSuperUserChanging(value); - this.SendPropertyChanging(); - this._IsSuperUser = value; - this.SendPropertyChanged("IsSuperUser"); - this.OnIsSuperUserChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AffiliateId", DbType="Int")] - public System.Nullable AffiliateId - { - get - { - return this._AffiliateId; - } - set - { - if ((this._AffiliateId != value)) - { - this.OnAffiliateIdChanging(value); - this.SendPropertyChanging(); - this._AffiliateId = value; - this.SendPropertyChanged("AffiliateId"); - this.OnAffiliateIdChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Email", DbType="NVarChar(256)")] - public string Email - { - get - { - return this._Email; - } - set - { - if ((this._Email != value)) - { - this.OnEmailChanging(value); - this.SendPropertyChanging(); - this._Email = value; - this.SendPropertyChanged("Email"); - this.OnEmailChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DisplayName", DbType="NVarChar(128) NOT NULL", CanBeNull=false)] - public string DisplayName - { - get - { - return this._DisplayName; - } - set - { - if ((this._DisplayName != value)) - { - this.OnDisplayNameChanging(value); - this.SendPropertyChanging(); - this._DisplayName = value; - this.SendPropertyChanged("DisplayName"); - this.OnDisplayNameChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UpdatePassword", DbType="Bit NOT NULL")] - public bool UpdatePassword - { - get - { - return this._UpdatePassword; - } - set - { - if ((this._UpdatePassword != value)) - { - this.OnUpdatePasswordChanging(value); - this.SendPropertyChanging(); - this._UpdatePassword = value; - this.SendPropertyChanged("UpdatePassword"); - this.OnUpdatePasswordChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastIPAddress", DbType="NVarChar(50)")] - public string LastIPAddress - { - get - { - return this._LastIPAddress; - } - set - { - if ((this._LastIPAddress != value)) - { - this.OnLastIPAddressChanging(value); - this.SendPropertyChanging(); - this._LastIPAddress = value; - this.SendPropertyChanged("LastIPAddress"); - this.OnLastIPAddressChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDeleted", DbType="Bit NOT NULL")] - public bool IsDeleted - { - get - { - return this._IsDeleted; - } - set - { - if ((this._IsDeleted != value)) - { - this.OnIsDeletedChanging(value); - this.SendPropertyChanging(); - this._IsDeleted = value; - this.SendPropertyChanged("IsDeleted"); - this.OnIsDeletedChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedByUserID", DbType="Int")] - public System.Nullable CreatedByUserID - { - get - { - return this._CreatedByUserID; - } - set - { - if ((this._CreatedByUserID != value)) - { - this.OnCreatedByUserIDChanging(value); - this.SendPropertyChanging(); - this._CreatedByUserID = value; - this.SendPropertyChanged("CreatedByUserID"); - this.OnCreatedByUserIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CreatedOnDate", DbType="DateTime")] - public System.Nullable CreatedOnDate - { - get - { - return this._CreatedOnDate; - } - set - { - if ((this._CreatedOnDate != value)) - { - this.OnCreatedOnDateChanging(value); - this.SendPropertyChanging(); - this._CreatedOnDate = value; - this.SendPropertyChanged("CreatedOnDate"); - this.OnCreatedOnDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastModifiedByUserID", DbType="Int")] - public System.Nullable LastModifiedByUserID - { - get - { - return this._LastModifiedByUserID; - } - set - { - if ((this._LastModifiedByUserID != value)) - { - this.OnLastModifiedByUserIDChanging(value); - this.SendPropertyChanging(); - this._LastModifiedByUserID = value; - this.SendPropertyChanged("LastModifiedByUserID"); - this.OnLastModifiedByUserIDChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastModifiedOnDate", DbType="DateTime")] - public System.Nullable LastModifiedOnDate - { - get - { - return this._LastModifiedOnDate; - } - set - { - if ((this._LastModifiedOnDate != value)) - { - this.OnLastModifiedOnDateChanging(value); - this.SendPropertyChanging(); - this._LastModifiedOnDate = value; - this.SendPropertyChanged("LastModifiedOnDate"); - this.OnLastModifiedOnDateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PasswordResetToken", DbType="UniqueIdentifier")] - public System.Nullable PasswordResetToken - { - get - { - return this._PasswordResetToken; - } - set - { - if ((this._PasswordResetToken != value)) - { - this.OnPasswordResetTokenChanging(value); - this.SendPropertyChanging(); - this._PasswordResetToken = value; - this.SendPropertyChanged("PasswordResetToken"); - this.OnPasswordResetTokenChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PasswordResetExpiration", DbType="DateTime")] - public System.Nullable PasswordResetExpiration - { - get - { - return this._PasswordResetExpiration; - } - set - { - if ((this._PasswordResetExpiration != value)) - { - this.OnPasswordResetExpirationChanging(value); - this.SendPropertyChanging(); - this._PasswordResetExpiration = value; - this.SendPropertyChanged("PasswordResetExpiration"); - this.OnPasswordResetExpirationChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="User_Visitor", Storage="_Visitors", ThisKey="UserID", OtherKey="user_id")] - public EntitySet Visitors - { - get - { - return this._Visitors; - } - set - { - this._Visitors.Assign(value); - } - } - - public event PropertyChangingEventHandler PropertyChanging; - - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void SendPropertyChanging() - { - if ((this.PropertyChanging != null)) - { - this.PropertyChanging(this, emptyChangingEventArgs); - } - } - - protected virtual void SendPropertyChanged(String propertyName) - { - if ((this.PropertyChanged != null)) - { - this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - - private void attach_Visitors(Visitor entity) - { - this.SendPropertyChanging(); - entity.User = this; - } - - private void detach_Visitors(Visitor entity) - { - this.SendPropertyChanging(); - entity.User = null; - } - } - - [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Visits")] - public partial class Visit : INotifyPropertyChanging, INotifyPropertyChanged - { - - private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); - - private long _id; - - private System.DateTime _date; - - private int _visitor_id; - - private int _tab_id; - - private string _ip; - - private string _country; - - private string _region; - - private string _city; - - private string _latitude; - - private string _longitude; - - private string _language; - - private string _domain; - - private string _url; - - private string _user_agent; - - private string _device_type; - - private string _device; - - private string _platform; - - private string _browser; - - private string _referrer_domain; - - private string _referrer_url; - - private string _server; - - private string _campaign; - - private System.Nullable _session_id; - - private System.Nullable _request_id; - - private System.Nullable _last_request_id; - - private EntityRef _Tab; - - private EntityRef _Visitor; - - #region Extensibility Method Definitions - partial void OnLoaded(); - partial void OnValidate(System.Data.Linq.ChangeAction action); - partial void OnCreated(); - partial void OnidChanging(long value); - partial void OnidChanged(); - partial void OndateChanging(System.DateTime value); - partial void OndateChanged(); - partial void Onvisitor_idChanging(int value); - partial void Onvisitor_idChanged(); - partial void Ontab_idChanging(int value); - partial void Ontab_idChanged(); - partial void OnipChanging(string value); - partial void OnipChanged(); - partial void OncountryChanging(string value); - partial void OncountryChanged(); - partial void OnregionChanging(string value); - partial void OnregionChanged(); - partial void OncityChanging(string value); - partial void OncityChanged(); - partial void OnlatitudeChanging(string value); - partial void OnlatitudeChanged(); - partial void OnlongitudeChanging(string value); - partial void OnlongitudeChanged(); - partial void OnlanguageChanging(string value); - partial void OnlanguageChanged(); - partial void OndomainChanging(string value); - partial void OndomainChanged(); - partial void OnurlChanging(string value); - partial void OnurlChanged(); - partial void Onuser_agentChanging(string value); - partial void Onuser_agentChanged(); - partial void Ondevice_typeChanging(string value); - partial void Ondevice_typeChanged(); - partial void OndeviceChanging(string value); - partial void OndeviceChanged(); - partial void OnplatformChanging(string value); - partial void OnplatformChanged(); - partial void OnbrowserChanging(string value); - partial void OnbrowserChanged(); - partial void Onreferrer_domainChanging(string value); - partial void Onreferrer_domainChanged(); - partial void Onreferrer_urlChanging(string value); - partial void Onreferrer_urlChanged(); - partial void OnserverChanging(string value); - partial void OnserverChanged(); - partial void OncampaignChanging(string value); - partial void OncampaignChanged(); - partial void Onsession_idChanging(System.Nullable value); - partial void Onsession_idChanged(); - partial void Onrequest_idChanging(System.Nullable value); - partial void Onrequest_idChanged(); - partial void Onlast_request_idChanging(System.Nullable value); - partial void Onlast_request_idChanged(); - #endregion - - public Visit() - { - this._Tab = default(EntityRef); - this._Visitor = default(EntityRef); - OnCreated(); - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_id", AutoSync=AutoSync.OnInsert, DbType="BigInt NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)] - public long id - { - get - { - return this._id; - } - set - { - if ((this._id != value)) - { - this.OnidChanging(value); - this.SendPropertyChanging(); - this._id = value; - this.SendPropertyChanged("id"); - this.OnidChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_date", DbType="DateTime NOT NULL")] - public System.DateTime date - { - get - { - return this._date; - } - set - { - if ((this._date != value)) - { - this.OndateChanging(value); - this.SendPropertyChanging(); - this._date = value; - this.SendPropertyChanged("date"); - this.OndateChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_visitor_id", DbType="Int NOT NULL")] - public int visitor_id - { - get - { - return this._visitor_id; - } - set - { - if ((this._visitor_id != value)) - { - if (this._Visitor.HasLoadedOrAssignedValue) - { - throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); - } - this.Onvisitor_idChanging(value); - this.SendPropertyChanging(); - this._visitor_id = value; - this.SendPropertyChanged("visitor_id"); - this.Onvisitor_idChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_tab_id", DbType="Int NOT NULL")] - public int tab_id - { - get - { - return this._tab_id; - } - set - { - if ((this._tab_id != value)) - { - if (this._Tab.HasLoadedOrAssignedValue) - { - throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); - } - this.Ontab_idChanging(value); - this.SendPropertyChanging(); - this._tab_id = value; - this.SendPropertyChanged("tab_id"); - this.Ontab_idChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ip", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string ip - { - get - { - return this._ip; - } - set - { - if ((this._ip != value)) - { - this.OnipChanging(value); - this.SendPropertyChanging(); - this._ip = value; - this.SendPropertyChanged("ip"); - this.OnipChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_country", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string country - { - get - { - return this._country; - } - set - { - if ((this._country != value)) - { - this.OncountryChanging(value); - this.SendPropertyChanging(); - this._country = value; - this.SendPropertyChanged("country"); - this.OncountryChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_region", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string region - { - get - { - return this._region; - } - set - { - if ((this._region != value)) - { - this.OnregionChanging(value); - this.SendPropertyChanging(); - this._region = value; - this.SendPropertyChanged("region"); - this.OnregionChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_city", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string city - { - get - { - return this._city; - } - set - { - if ((this._city != value)) - { - this.OncityChanging(value); - this.SendPropertyChanging(); - this._city = value; - this.SendPropertyChanged("city"); - this.OncityChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_latitude", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string latitude - { - get - { - return this._latitude; - } - set - { - if ((this._latitude != value)) - { - this.OnlatitudeChanging(value); - this.SendPropertyChanging(); - this._latitude = value; - this.SendPropertyChanged("latitude"); - this.OnlatitudeChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_longitude", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string longitude - { - get - { - return this._longitude; - } - set - { - if ((this._longitude != value)) - { - this.OnlongitudeChanging(value); - this.SendPropertyChanging(); - this._longitude = value; - this.SendPropertyChanged("longitude"); - this.OnlongitudeChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_language", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string language - { - get - { - return this._language; - } - set - { - if ((this._language != value)) - { - this.OnlanguageChanging(value); - this.SendPropertyChanging(); - this._language = value; - this.SendPropertyChanged("language"); - this.OnlanguageChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_domain", DbType="NVarChar(255) NOT NULL", CanBeNull=false)] - public string domain - { - get - { - return this._domain; - } - set - { - if ((this._domain != value)) - { - this.OndomainChanging(value); - this.SendPropertyChanging(); - this._domain = value; - this.SendPropertyChanged("domain"); - this.OndomainChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_url", DbType="NVarChar(2048) NOT NULL", CanBeNull=false)] - public string url - { - get - { - return this._url; - } - set - { - if ((this._url != value)) - { - this.OnurlChanging(value); - this.SendPropertyChanging(); - this._url = value; - this.SendPropertyChanged("url"); - this.OnurlChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_user_agent", DbType="NVarChar(512) NOT NULL", CanBeNull=false)] - public string user_agent - { - get - { - return this._user_agent; - } - set - { - if ((this._user_agent != value)) - { - this.Onuser_agentChanging(value); - this.SendPropertyChanging(); - this._user_agent = value; - this.SendPropertyChanged("user_agent"); - this.Onuser_agentChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_device_type", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string device_type - { - get - { - return this._device_type; - } - set - { - if ((this._device_type != value)) - { - this.Ondevice_typeChanging(value); - this.SendPropertyChanging(); - this._device_type = value; - this.SendPropertyChanged("device_type"); - this.Ondevice_typeChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_device", DbType="NVarChar(255) NOT NULL", CanBeNull=false)] - public string device - { - get - { - return this._device; - } - set - { - if ((this._device != value)) - { - this.OndeviceChanging(value); - this.SendPropertyChanging(); - this._device = value; - this.SendPropertyChanged("device"); - this.OndeviceChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_platform", DbType="NVarChar(255) NOT NULL", CanBeNull=false)] - public string platform - { - get - { - return this._platform; - } - set - { - if ((this._platform != value)) - { - this.OnplatformChanging(value); - this.SendPropertyChanging(); - this._platform = value; - this.SendPropertyChanged("platform"); - this.OnplatformChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_browser", DbType="NVarChar(255) NOT NULL", CanBeNull=false)] - public string browser - { - get - { - return this._browser; - } - set - { - if ((this._browser != value)) - { - this.OnbrowserChanging(value); - this.SendPropertyChanging(); - this._browser = value; - this.SendPropertyChanged("browser"); - this.OnbrowserChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_referrer_domain", DbType="NVarChar(255) NOT NULL", CanBeNull=false)] - public string referrer_domain - { - get - { - return this._referrer_domain; - } - set - { - if ((this._referrer_domain != value)) - { - this.Onreferrer_domainChanging(value); - this.SendPropertyChanging(); - this._referrer_domain = value; - this.SendPropertyChanged("referrer_domain"); - this.Onreferrer_domainChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_referrer_url", DbType="NVarChar(2048) NOT NULL", CanBeNull=false)] - public string referrer_url - { - get - { - return this._referrer_url; - } - set - { - if ((this._referrer_url != value)) - { - this.Onreferrer_urlChanging(value); - this.SendPropertyChanging(); - this._referrer_url = value; - this.SendPropertyChanged("referrer_url"); - this.Onreferrer_urlChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_server", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string server - { - get - { - return this._server; - } - set - { - if ((this._server != value)) - { - this.OnserverChanging(value); - this.SendPropertyChanging(); - this._server = value; - this.SendPropertyChanged("server"); - this.OnserverChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_campaign", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] - public string campaign - { - get - { - return this._campaign; - } - set - { - if ((this._campaign != value)) - { - this.OncampaignChanging(value); - this.SendPropertyChanging(); - this._campaign = value; - this.SendPropertyChanged("campaign"); - this.OncampaignChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_session_id", DbType="UniqueIdentifier")] - public System.Nullable session_id - { - get - { - return this._session_id; - } - set - { - if ((this._session_id != value)) - { - this.Onsession_idChanging(value); - this.SendPropertyChanging(); - this._session_id = value; - this.SendPropertyChanged("session_id"); - this.Onsession_idChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_request_id", DbType="UniqueIdentifier")] - public System.Nullable request_id - { - get - { - return this._request_id; - } - set - { - if ((this._request_id != value)) - { - this.Onrequest_idChanging(value); - this.SendPropertyChanging(); - this._request_id = value; - this.SendPropertyChanged("request_id"); - this.Onrequest_idChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_last_request_id", DbType="UniqueIdentifier")] - public System.Nullable last_request_id - { - get - { - return this._last_request_id; - } - set - { - if ((this._last_request_id != value)) - { - this.Onlast_request_idChanging(value); - this.SendPropertyChanging(); - this._last_request_id = value; - this.SendPropertyChanged("last_request_id"); - this.Onlast_request_idChanged(); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Tab_Visit", Storage="_Tab", ThisKey="tab_id", OtherKey="TabID", IsForeignKey=true)] - public Tab Tab - { - get - { - return this._Tab.Entity; - } - set - { - Tab previousValue = this._Tab.Entity; - if (((previousValue != value) - || (this._Tab.HasLoadedOrAssignedValue == false))) - { - this.SendPropertyChanging(); - if ((previousValue != null)) - { - this._Tab.Entity = null; - previousValue.Visits.Remove(this); - } - this._Tab.Entity = value; - if ((value != null)) - { - value.Visits.Add(this); - this._tab_id = value.TabID; - } - else - { - this._tab_id = default(int); - } - this.SendPropertyChanged("Tab"); - } - } - } - - [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Visitor_Visit", Storage="_Visitor", ThisKey="visitor_id", OtherKey="id", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")] - public Visitor Visitor - { - get - { - return this._Visitor.Entity; - } - set - { - Visitor previousValue = this._Visitor.Entity; - if (((previousValue != value) - || (this._Visitor.HasLoadedOrAssignedValue == false))) - { - this.SendPropertyChanging(); - if ((previousValue != null)) - { - this._Visitor.Entity = null; - previousValue.Visits.Remove(this); - } - this._Visitor.Entity = value; - if ((value != null)) - { - value.Visits.Add(this); - this._visitor_id = value.id; - } - else - { - this._visitor_id = default(int); - } - this.SendPropertyChanged("Visitor"); - } - } - } - - public event PropertyChangingEventHandler PropertyChanging; - - public event PropertyChangedEventHandler PropertyChanged; - - protected virtual void SendPropertyChanging() - { - if ((this.PropertyChanging != null)) - { - this.PropertyChanging(this, emptyChangingEventArgs); - } - } - - protected virtual void SendPropertyChanged(String propertyName) - { - if ((this.PropertyChanged != null)) - { - this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); - } - } - } -} -#pragma warning restore 1591 diff --git a/Dnn.VisitorsOnline.dnn b/Dnn.VisitorsOnline.dnn index b528c90..d2b00d1 100644 --- a/Dnn.VisitorsOnline.dnn +++ b/Dnn.VisitorsOnline.dnn @@ -1,152 +1,172 @@  - - Dnn.VisitorsOnline - - /Images/icon_extensions_32px.png - - - - - - - - - - - - Dnn.VisitorsOnline - Dnn.WebAnalytics - - - Supported - - - Dnn.VisitorsOnline - Dnn.VisitorsOnline - 0 - - - - DesktopModules/Dnn.WebAnalytics/Map.ascx - False - - Anonymous - - - False - - - - - - - - - bin - - Dnn.WebAnalytics.dll - - - - - - DesktopModules\Dnn.WebAnalytics - - app - app.js - - - app\controllers - map.js - - - app\controllers - view.js - - - app\directives - map.js - - - app\directives - view.js - - - app\services - map.js - - - app\services - visitor.js - - - app\services - visit.js - - - app\views - map.html - - - app\views - view.html - - - Map.ascx - - - plugins\angular-chart - angular-chart.js - - - plugins\angular-chart - angular-chart.min.js - - - plugins\angular-google-maps - angular-google-maps.min.js - - - plugins\lodash - lodash.js - - - View.ascx - - - plugins\angular-toastr - angular-toastr.min.css - - - plugins\angular-toastr - angular-toastr.tpls.min.js - - - plugins\datetime-picker - datetime-picker.js - - - plugins\datetime-picker - datetime-picker.min.js - - - plugins\datetime-picker - datetime-picker.tpls.js - - - plugins\ui.bootstrap - ui-bootstrap-tpls-2.0.2.min.js - - - plugins\ui.bootstrap - ui-bootstrap-tpls-2.5.0.min.js - - - plugins\ui.bootstrap - ui-bootstrap-tpls.js - - - - - + + + Dnn.VisitorsOnline + + /Images/icon_extensions_32px.png + + DNN Association + DNN Association + https://dnncommunity.org + no-reply@dnncommunity.org + + + + + 09.03.02 + + true + + + + Dnn.VisitorsOnline + Dnn.WebAnalytics + + + Supported + + + Dnn.VisitorsOnline + Dnn.VisitorsOnline + 0 + + + + DesktopModules/Dnn.WebAnalytics/Map.ascx + False + + Anonymous + + + False + + + + + + + DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke + UpgradeModule + + Dnn.WebAnalytics.Components.FeaturesController, Dnn.WebAnalytics + [DESKTOPMODULEID] + 01.00.00,01.01.00 + + + + + + bin + + 01.01.00 + Dnn.WebAnalytics.dll + + + 11.00.00 + Newtonsoft.Json.dll + + + + + + DesktopModules\Dnn.WebAnalytics + + app + app.js + + + app\controllers + map.js + + + app\controllers + view.js + + + app\directives + map.js + + + app\directives + view.js + + + app\services + map.js + + + app\services + visitor.js + + + app\services + visit.js + + + app\views + map.html + + + app\views + view.html + + + Map.ascx + + + plugins\angular-chart + angular-chart.js + + + plugins\angular-chart + angular-chart.min.js + + + plugins\angular-google-maps + angular-google-maps.min.js + + + plugins\lodash + lodash.js + + + View.ascx + + + plugins\angular-toastr + angular-toastr.min.css + + + plugins\angular-toastr + angular-toastr.tpls.min.js + + + plugins\datetime-picker + datetime-picker.js + + + plugins\datetime-picker + datetime-picker.min.js + + + plugins\datetime-picker + datetime-picker.tpls.js + + + plugins\ui.bootstrap + ui-bootstrap-tpls-2.0.2.min.js + + + plugins\ui.bootstrap + ui-bootstrap-tpls-2.5.0.min.js + + + plugins\ui.bootstrap + ui-bootstrap-tpls.js + + + + + + \ No newline at end of file diff --git a/Dnn.WebAnalytics.csproj b/Dnn.WebAnalytics.csproj index e053af6..ca3bfac 100644 --- a/Dnn.WebAnalytics.csproj +++ b/Dnn.WebAnalytics.csproj @@ -48,6 +48,11 @@ ..\..\bin\DotNetNuke.dll False + + False + ..\..\bin\DotNetNuke.Instrumentation.dll + False + False ..\..\bin\DotNetNuke.Web.dll @@ -80,6 +85,7 @@ packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + True @@ -92,23 +98,29 @@ - + False ..\..\bin\System.Web.Http.dll + False - + False ..\..\bin\Telerik.Web.UI.dll False + + + + + Map.ascx ASPXCodeBehind @@ -133,11 +145,6 @@ - - True - True - WebAnalytics.dbml - @@ -158,6 +165,8 @@ + + @@ -173,14 +182,6 @@ - - MSLinqToSQLGenerator - WebAnalytics.designer.cs - Designer - - - WebAnalytics.dbml - diff --git a/Dnn.WebAnalytics.dnn b/Dnn.WebAnalytics.dnn index 44211f4..8b88a16 100644 --- a/Dnn.WebAnalytics.dnn +++ b/Dnn.WebAnalytics.dnn @@ -1,152 +1,222 @@  - - Dnn.WebAnalytics - - /Images/icon_extensions_32px.png - - - - - - - - - - - - Dnn.WebAnalytics - Dnn.WebAnalytics - - - Supported - - - Dnn.WebAnalytics - Dnn.WebAnalytics - 0 - - - - DesktopModules/Dnn.WebAnalytics/View.ascx - False - - Anonymous - - - False - - - - - - - - - bin - - Dnn.WebAnalytics.dll - - - - - - DesktopModules\Dnn.WebAnalytics - - app - app.js - - - app\controllers - map.js - - - app\controllers - view.js - - - app\directives - map.js - - - app\directives - view.js - - - app\services - map.js - - - app\services - visitor.js - - - app\services - visit.js - - - app\views - map.html - - - app\views - view.html - - - Map.ascx - - - plugins\angular-chart - angular-chart.js - - - plugins\angular-chart - angular-chart.min.js - - - plugins\angular-google-maps - angular-google-maps.min.js - - - plugins\lodash - lodash.js - - - View.ascx - - - plugins\angular-toastr - angular-toastr.min.css - - - plugins\angular-toastr - angular-toastr.tpls.min.js - - - plugins\datetime-picker - datetime-picker.js - - - plugins\datetime-picker - datetime-picker.min.js - - - plugins\datetime-picker - datetime-picker.tpls.js - - - plugins\ui.bootstrap - ui-bootstrap-tpls-2.0.2.min.js - - - plugins\ui.bootstrap - ui-bootstrap-tpls-2.5.0.min.js - - - plugins\ui.bootstrap - ui-bootstrap-tpls.js - - - - - + + + Dnn.WebAnalytics + + /Images/icon_extensions_32px.png + + DNN Association + DNN Association + https://dnncommunity.org + no-reply@dnncommunity.org + + + + + 09.03.02 + + true + + + + Dnn.WebAnalytics + Dnn.WebAnalytics + + + Supported + + + Dnn.WebAnalytics + Dnn.WebAnalytics + 0 + + + + DesktopModules/Dnn.WebAnalytics/View.ascx + False + + Anonymous + + + False + + + + + + + DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke + UpgradeModule + + Dnn.WebAnalytics.Components.FeaturesController, Dnn.WebAnalytics + [DESKTOPMODULEID] + 01.00.00,01.01.00 + + + + + + bin + + 01.01.00 + Dnn.WebAnalytics.dll + + + 11.00.00 + Newtonsoft.Json.dll + + + + + + + DesktopModules\Dnn.WebAnalytics + + + + + + + + + web.config + + + + + + + + + + + + + + + + + + + + + + + + + + DesktopModules\Dnn.WebAnalytics + + app + app.js + + + app\controllers + map.js + + + app\controllers + view.js + + + app\directives + map.js + + + app\directives + view.js + + + app\services + map.js + + + app\services + visitor.js + + + app\services + visit.js + + + app\views + map.html + + + app\views + view.html + + + Map.ascx + + + plugins\angular-chart + angular-chart.js + + + plugins\angular-chart + angular-chart.min.js + + + plugins\angular-google-maps + angular-google-maps.min.js + + + plugins\lodash + lodash.js + + + View.ascx + + + plugins\angular-toastr + angular-toastr.min.css + + + plugins\angular-toastr + angular-toastr.tpls.min.js + + + plugins\datetime-picker + datetime-picker.js + + + plugins\datetime-picker + datetime-picker.min.js + + + plugins\datetime-picker + datetime-picker.tpls.js + + + plugins\ui.bootstrap + ui-bootstrap-tpls-2.0.2.min.js + + + plugins\ui.bootstrap + ui-bootstrap-tpls-2.5.0.min.js + + + plugins\ui.bootstrap + ui-bootstrap-tpls.js + + + + + + \ No newline at end of file diff --git a/Entities/VisitInfo.cs b/Entities/VisitInfo.cs new file mode 100644 index 0000000..01e1c3c --- /dev/null +++ b/Entities/VisitInfo.cs @@ -0,0 +1,54 @@ +using DotNetNuke.Entities.Tabs; +using DotNetNuke.ComponentModel.DataAnnotations; +using System; +using System.Web.Caching; + +namespace Dnn.WebAnalytics +{ + [TableName("Community_Visits")] + [PrimaryKey("id", AutoIncrement = true)] + [Cacheable("Community_Visits", CacheItemPriority.Default, 20)] + [Scope("tab_id")] + public class VisitInfo + { + // initialization + public VisitInfo() + { + } + + // public properties + public Int64 id { get; set; } + public DateTime date { get; set; } + public int visitor_id { get; set; } + public int tab_id { get; set; } + public string ip { get; set; } + public string country { get; set; } + public string region { get; set; } + public string city { get; set; } + public string latitude { get; set; } + public string longitude { get; set; } + public string language { get; set; } + public string domain { get; set; } + public string url { get; set; } + public string user_agent { get; set; } + public string device_type { get; set; } + public string device { get; set; } + public string platform { get; set; } + public string browser { get; set; } + public string referrer_domain { get; set; } + public string referrer_url { get; set; } + public string server { get; set; } + public string activity { get; set; } + public string campaign { get; set; } + public Guid? session_id { get; set; } + public Guid? request_id { get; set; } + public Guid? last_request_id { get; set; } + + [IgnoreColumn] + public VisitorInfo Visitor { get; set; } + [IgnoreColumn] + public int PortalId { get; set; } + [IgnoreColumn] + public TabInfo Tab { get; set; } + } +} \ No newline at end of file diff --git a/Entities/VisitRepo.cs b/Entities/VisitRepo.cs new file mode 100644 index 0000000..3afc889 --- /dev/null +++ b/Entities/VisitRepo.cs @@ -0,0 +1,185 @@ + +using System.Collections.Generic; +using System.Linq; +using DotNetNuke.Common.Utilities; +using DotNetNuke.Data; +using DotNetNuke.Entities.Tabs; + +namespace Dnn.WebAnalytics +{ + public class VisitInfoRepo + { + private VisitorInfoRepo visitorRepo = new VisitorInfoRepo(); + + public VisitInfo CreateItem(VisitInfo i) + { + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + rep.Insert(i); + } + + return i; + } + + public void DeleteItem(int itemId, int tabId) + { + var i = GetItem(itemId, tabId); + DeleteItem(i); + } + + public void DeleteItem(VisitInfo i) + { + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + rep.Delete(i); + } + } + + public void DeleteItems(IEnumerable visits) + { + if (visits != null && visits.Any()) + { + foreach(var visit in visits) + { + DeleteItem(visit); + } + } + } + + public IEnumerable GetItems(int tabId) + { + IEnumerable i; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.Get(tabId); + } + + if (i != null && i.Any()) + { + foreach (var visit in i) + { + visit.Visitor = GetVisitor(visit); + visit.Tab = GetTab(visit); + visit.PortalId = GetPortalId(visit); + } + } + + return i; + } + + public IEnumerable GetItemsAll () + { + IEnumerable i; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.Get(); + } + + if (i != null && i.Any()) + { + foreach(var visit in i) + { + visit.Visitor = GetVisitor(visit); + visit.Tab = GetTab(visit); + visit.PortalId = GetPortalId(visit); + } + } + + return i; + } + + public VisitInfo GetItem(int itemId, int tabId) + { + VisitInfo i = null; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.GetById(itemId, tabId); + } + + i.Visitor = GetVisitor(i); + i.Tab = GetTab(i); + i.PortalId = GetPortalId(i); + + return i; + } + + public VisitInfo GetItemById(int itemId) + { + VisitInfo i = null; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.GetById(itemId); + } + + i.Visitor = GetVisitor(i); + i.Tab = GetTab(i); + i.PortalId = GetPortalId(i); + + return i; + } + + public IEnumerable GetItemsByPortalId(int portalId) + { + var items = GetItemsAll().Where(i => i.PortalId == portalId); + return items; + } + + public void UpdateItem(VisitInfo i) + { + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + rep.Update(i); + } + } + + #region Private Helper Methods + private VisitorInfo GetVisitor(VisitInfo visit) + { + if (visit == null) return null; + + if (visit.visitor_id > -1) + { + var visitor = visitorRepo.GetItemById(visit.visitor_id); + if (visitor != null) + { + return visitor; + } + } + + return null; + } + + private TabInfo GetTab(VisitInfo visit) + { + if (visit == null) return null; + if (visit.Visitor == null) return null; + + if (visit.tab_id > -1) + { + var tab = TabController.Instance.GetTab(visit.tab_id, visit.Visitor.portal_id, false); + if (tab != null) + { + return tab; + } + } + + return null; + } + + private int GetPortalId(VisitInfo visit) + { + if (visit == null) return Null.NullInteger; + if (visit.Tab == null) return Null.NullInteger; + + return visit.Tab.PortalID; + } + #endregion + } +} \ No newline at end of file diff --git a/Entities/VisitorInfo.cs b/Entities/VisitorInfo.cs new file mode 100644 index 0000000..6c07450 --- /dev/null +++ b/Entities/VisitorInfo.cs @@ -0,0 +1,29 @@ +using DotNetNuke.ComponentModel.DataAnnotations; +using DotNetNuke.Entities.Users; +using System; +using System.Web.Caching; + +namespace Dnn.WebAnalytics +{ + [TableName("Community_Visitors")] + [PrimaryKey("id", AutoIncrement = true)] + [Cacheable("Community_Visitors", CacheItemPriority.Default, 20)] + [Scope("portal_id")] + public class VisitorInfo + { + // initialization + public VisitorInfo() + { + } + + // public properties + public int id { get; set; } + public int portal_id { get; set; } + public int? user_id { get; set; } + public DateTime created_on_date { get; set; } + public string user_username { get; set; } + public string user_displayname { get; set; } + [IgnoreColumn] + public UserInfo User { get; set; } + } +} \ No newline at end of file diff --git a/Entities/VisitorRepo.cs b/Entities/VisitorRepo.cs new file mode 100644 index 0000000..aaee74c --- /dev/null +++ b/Entities/VisitorRepo.cs @@ -0,0 +1,141 @@ + +using System.Collections.Generic; +using System.Linq; +using DotNetNuke.Data; +using DotNetNuke.Entities.Users; + +namespace Dnn.WebAnalytics +{ + public class VisitorInfoRepo + { + public VisitorInfo CreateItem(VisitorInfo i) + { + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + rep.Insert(i); + } + + return i; + } + + public void DeleteItem(int itemId, int portalId) + { + var i = GetItem(itemId, portalId); + DeleteItem(i); + } + + public void DeleteItem(VisitorInfo i) + { + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + rep.Delete(i); + } + } + + public void DeleteItems(IEnumerable visitors) + { + if (visitors != null && visitors.Any()) + { + foreach (var visitor in visitors) + { + DeleteItem(visitor); + } + } + } + + public IEnumerable GetItems(int portalId) + { + IEnumerable i; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.Get(portalId); + } + + if (i != null && i.Any()) + { + foreach (var visitor in i) + { + visitor.User = GetUser(visitor); + } + } + + return i; + } + + public IEnumerable GetItemsAll() + { + IEnumerable i; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.Get(); + } + + if (i != null && i.Any()) + { + foreach(var visitor in i) + { + visitor.User = GetUser(visitor); + } + } + + return i; + } + + public VisitorInfo GetItem(int itemId, int portalId) + { + VisitorInfo i = null; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.GetById(itemId, portalId); + } + + i.User = GetUser(i); + + return i; + } + + public VisitorInfo GetItemById(int itemId) + { + VisitorInfo i = null; + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + i = rep.GetById(itemId); + } + + i.User = GetUser(i); + + return i; + } + + public void UpdateItem(VisitorInfo i) + { + using (IDataContext ctx = DataContext.Instance()) + { + var rep = ctx.GetRepository(); + rep.Update(i); + } + } + + #region Private Helper Classes + private UserInfo GetUser(VisitorInfo visitor) + { + if (visitor == null) return null; + if (!visitor.user_id.HasValue) return null; + + var user = UserController.GetUserById(visitor.portal_id, visitor.user_id.Value); + if (user != null) + { + return user; + } + + return null; + } + #endregion + } +} \ No newline at end of file diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 8ec0421..acfba9d 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -31,6 +31,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyVersion("01.01.00")] +[assembly: AssemblyFileVersion("01.01.00")] diff --git a/SchedulerJobs/VisitorJob.cs b/SchedulerJobs/VisitorJob.cs index 3a7dc8a..563b6f2 100644 --- a/SchedulerJobs/VisitorJob.cs +++ b/SchedulerJobs/VisitorJob.cs @@ -1,37 +1,43 @@ +using DotNetNuke.Instrumentation; +using DotNetNuke.Services.Exceptions; +using DotNetNuke.Services.Scheduling; using System; namespace Dnn.WebAnalytics { - public class VisitorJob : DotNetNuke.Services.Scheduling.SchedulerClient + public class VisitorJob : SchedulerClient { - public VisitorJob(DotNetNuke.Services.Scheduling.ScheduleHistoryItem objScheduleHistoryItem) : base() + private static readonly ILog Logger = LoggerSource.Instance.GetLogger(typeof(VisitorJob)); + + public VisitorJob(ScheduleHistoryItem objScheduleHistoryItem) : base() { ScheduleHistoryItem = objScheduleHistoryItem; } public override void DoWork() { - try { + try + { string strMessage = Processing(); ScheduleHistoryItem.Succeeded = true; ScheduleHistoryItem.AddLogNote("Successful. " + strMessage); - } catch (Exception exc) { + } + catch (Exception exc) + { + Logger.Error(exc.Message, exc); ScheduleHistoryItem.Succeeded = false; ScheduleHistoryItem.AddLogNote("Failed. " + exc.Message); Errored(ref exc); - DotNetNuke.Services.Exceptions.Exceptions.LogException(exc); + Exceptions.LogException(exc); } } public string Processing() { - string Message = ""; - VisitController visitController = new VisitController(); - //visitController.WriteVisits(); visitController.PurgeVisits(); - return Message; + return string.Empty; } } diff --git a/Scripts/01.00.00.sql b/Scripts/01.00.00.sql index 09d5e73..caac543 100644 --- a/Scripts/01.00.00.sql +++ b/Scripts/01.00.00.sql @@ -1,21 +1,4 @@ - -IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Visitors]') IS NULL - DROP TABLE {databaseOwner}[{objectQualifier}Visitors]; -GO - -CREATE TABLE {databaseOwner}[{objectQualifier}Visitors]( - [id] [int] IDENTITY(1,1) NOT NULL, - [portal_id] [int] NOT NULL, - [user_id] [int] NULL, - [created_on_date] [datetime] NOT NULL, - CONSTRAINT [PK_{objectQualifier}Visitors] PRIMARY KEY CLUSTERED -( - [id] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -GO - -IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Visitors]') IS NULL +IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Visits]') IS NULL DROP TABLE {databaseOwner}[{objectQualifier}Visits]; GO @@ -52,6 +35,22 @@ CREATE TABLE {databaseOwner}[{objectQualifier}Visits]( ) GO +IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Visitors]') IS NULL + DROP TABLE {databaseOwner}[{objectQualifier}Visitors]; +GO + +CREATE TABLE {databaseOwner}[{objectQualifier}Visitors]( + [id] [int] IDENTITY(1,1) NOT NULL, + [portal_id] [int] NOT NULL, + [user_id] [int] NULL, + [created_on_date] [datetime] NOT NULL, + CONSTRAINT [PK_{objectQualifier}Visitors] PRIMARY KEY CLUSTERED +( + [id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) +GO + ALTER TABLE {databaseOwner}[{objectQualifier}Visitors] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Visitors_Portals] FOREIGN KEY([portal_id]) REFERENCES {databaseOwner}[{objectQualifier}Portals] ([PortalID]) ON DELETE CASCADE @@ -84,7 +83,7 @@ GO ALTER TABLE {databaseOwner}[{objectQualifier}Visits] CHECK CONSTRAINT [FK_{objectQualifier}Visits_Visitors] GO -IF (SELECT 1 FROM {databaseOwner}[{objectQualifier}Schedule] WHERE [TypeFullName] = N'Dnn.WebAnalytics.VisitorJob, Dnn.WebAnalytics') +IF EXISTS(SELECT 1 FROM {databaseOwner}[{objectQualifier}Schedule] WHERE [TypeFullName] = N'Dnn.WebAnalytics.VisitorJob, Dnn.WebAnalytics') BEGIN UPDATE {databaseOwner}[{objectQualifier}Schedule] SET diff --git a/Scripts/01.01.00.sql b/Scripts/01.01.00.sql new file mode 100644 index 0000000..753383b --- /dev/null +++ b/Scripts/01.01.00.sql @@ -0,0 +1,84 @@ + +/* + Remove constraints +*/ + +IF EXISTS (SELECT 1 + FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS + WHERE CONSTRAINT_NAME = N'FK_{objectQualifier}Visits_Visitors' + AND TABLE_NAME = N'{objectQualifier}Visits') + ALTER TABLE {databaseOwner}[{objectQualifier}Visits] DROP CONSTRAINT [FK_{objectQualifier}Visits_Visitors]; +GO + +IF EXISTS (SELECT 1 + FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS + WHERE CONSTRAINT_NAME = N'FK_{objectQualifier}Visits_Tabs' + AND TABLE_NAME = N'{objectQualifier}Visits') + ALTER TABLE {databaseOwner}[{objectQualifier}Visits] DROP CONSTRAINT [FK_{objectQualifier}Visits_Tabs]; +GO + +IF EXISTS (SELECT 1 + FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS + WHERE CONSTRAINT_NAME = N'FK_{objectQualifier}Visitors_Users' + AND TABLE_NAME = N'{objectQualifier}Visitors') + ALTER TABLE {databaseOwner}[{objectQualifier}Visitors] DROP CONSTRAINT [FK_{objectQualifier}Visitors_Users]; +GO + +IF EXISTS (SELECT 1 + FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS + WHERE CONSTRAINT_NAME = N'FK_{objectQualifier}Visitors_Portals' + AND TABLE_NAME = N'{objectQualifier}Visitors') + ALTER TABLE {databaseOwner}[{objectQualifier}Visitors] DROP CONSTRAINT [FK_{objectQualifier}Visitors_Portals]; +GO + +/* + Rename community tables & PK's to prevent conflicts and group the data together +*/ + +sp_rename N'{objectQualifier}Visitors', N'{objectQualifier}Community_Visitors'; +GO + +sp_rename @objname = N'[PK_{objectQualifier}Visitors]', @newname = N'PK_{objectQualifier}Community_Visitors'; +GO + +sp_rename N'{objectQualifier}Visits', N'{objectQualifier}Community_Visits'; +GO + +sp_rename @objname = N'[PK_{objectQualifier}Visits]', @newname = N'PK_{objectQualifier}Community_Visits'; +GO + +/* + Add constraints back +*/ + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visitors] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Community_Visitors_Portals] FOREIGN KEY([portal_id]) + REFERENCES {databaseOwner}[{objectQualifier}Portals] ([PortalID]) + ON DELETE CASCADE; +GO + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visitors] CHECK CONSTRAINT [FK_{objectQualifier}Community_Visitors_Portals]; +GO + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visitors] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Community_Visitors_Users] FOREIGN KEY([user_id]) + REFERENCES {databaseOwner}[{objectQualifier}Users] ([UserID]) + ON UPDATE CASCADE + ON DELETE CASCADE; +GO + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visitors] CHECK CONSTRAINT [FK_{objectQualifier}Community_Visitors_Users]; +GO + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visits] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Community_Visits_Tabs] FOREIGN KEY([tab_id]) + REFERENCES {databaseOwner}[{objectQualifier}Tabs] ([TabID]); +GO + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visits] CHECK CONSTRAINT [FK_{objectQualifier}Community_Visits_Tabs]; +GO + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visits] WITH CHECK ADD CONSTRAINT [FK_{objectQualifier}Community_Visits_Visitors] FOREIGN KEY([visitor_id]) + REFERENCES {databaseOwner}[{objectQualifier}Community_Visitors] ([id]) + ON DELETE CASCADE; +GO + +ALTER TABLE {databaseOwner}[{objectQualifier}Community_Visits] CHECK CONSTRAINT [FK_{objectQualifier}Community_Visits_Visitors]; +GO diff --git a/Scripts/Uninstall.sql b/Scripts/Uninstall.sql new file mode 100644 index 0000000..8f54482 --- /dev/null +++ b/Scripts/Uninstall.sql @@ -0,0 +1,10 @@ +IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Community_Visits]') IS NULL + DROP TABLE {databaseOwner}[{objectQualifier}Community_Visits]; +GO + +IF NOT OBJECT_ID('{databaseOwner}[{objectQualifier}Community_Visitors]') IS NULL + DROP TABLE {databaseOwner}[{objectQualifier}Community_Visitors]; +GO + +DELETE FROM {databaseOwner}[{objectQualifier}Schedule] WHERE [TypeFullName] = N'Dnn.WebAnalytics.VisitorJob, Dnn.WebAnalytics'; +GO \ No newline at end of file