public TransitReferrerHost(DBlog.Data.ReferrerHost o) : base(o.Id) { LastUrl = o.LastUrl; LastSource = o.LastSource; Name = o.Name; RequestCount = o.RequestCount; }
public ReferrerHostTest() { mReferrerHost = new ReferrerHost(); mReferrerHost.LastSource = Guid.NewGuid().ToString(); mReferrerHost.LastUrl = Guid.NewGuid().ToString(); mReferrerHost.Name = Guid.NewGuid().ToString(); mReferrerHost.RequestCount = 10; mReferrerHost.Created = mReferrerHost.Updated = DateTime.UtcNow; }
public void RollupExistingReferrerHosts(ISession session) { // find a host that is exactly the target ReferrerHost targethost = session.CreateCriteria(typeof(ReferrerHost)) .Add(Expression.Eq("Name", mReferrerHostRollup.Rollup)) .UniqueResult<ReferrerHost>(); if (targethost == null) { targethost = new ReferrerHost(); targethost.Name = mReferrerHostRollup.Rollup; targethost.RequestCount = 0; targethost.LastSource = targethost.LastUrl = "http://localhost/"; targethost.Created = targethost.Updated = DateTime.UtcNow; session.Save(targethost); } IList<ReferrerHost> hosts = session.CreateSQLQuery( "SELECT {R.*} FROM ReferrerHost {R}" + " WHERE Name LIKE '" + Renderer.SqlEncode(mReferrerHostRollup.Name) + "'") .AddEntity("R", typeof(ReferrerHost)).List<ReferrerHost>(); foreach (ReferrerHost host in hosts) { if (host != targethost) { targethost.LastSource = host.LastSource; targethost.LastUrl = host.LastUrl; targethost.RequestCount += host.RequestCount; session.Delete(host); } } session.Save(targethost); session.Flush(); }
public ReferrerHost GetReferrerHost(ISession session) { ReferrerHost rh = null; if (Id == 0) { rh = session.CreateCriteria(typeof(ReferrerHost)) .Add(Expression.Eq("Name", Name)) .UniqueResult<ReferrerHost>(); if (rh == null) { // find whether this is a dup host ReferrerHostRollup duphost = session.CreateSQLQuery( "SELECT {R.*} FROM ReferrerHostRollup {R}" + " WHERE '" + Renderer.SqlEncode(Name) + "' LIKE Name") .AddEntity("R", typeof(ReferrerHostRollup)) .SetMaxResults(1) .UniqueResult<ReferrerHostRollup>(); if (duphost != null) { rh = session.CreateCriteria(typeof(ReferrerHost)) .Add(Expression.Eq("Name", duphost.Rollup)) .UniqueResult<ReferrerHost>(); } } if (rh != null) { // found an existing host rh.RequestCount += RequestCount; } else { rh = new ReferrerHost(); rh.RequestCount = RequestCount; rh.Name = Name; } } else { rh = session.Load<ReferrerHost>(Id); rh.RequestCount = RequestCount; } rh.LastUrl = LastUrl; rh.LastSource = LastSource; rh.Updated = DateTime.UtcNow; if (rh.Id == 0) rh.Created = rh.Updated; return rh; }