Exemplo n.º 1
0
 public void SaveUtm()
 {
     var guest = Factory.CreateDao<Guest>();
     var utmParamWrapper = new UtmParamWrapper("src", "cmp","mdm", true);
     new UserProvider().SaveUtm(guest.ID, utmParamWrapper);
     Assert.AreEqual(1, UtmGuestReferrer.DataSource.Count());
     var utmEntity = UtmGuestReferrer.DataSource.First();
     Assert.AreEqual(guest.ID, utmEntity.GuestID);
     Assert.AreEqual(utmParamWrapper.UtmCampaign, utmEntity.Campaign);
     Assert.AreEqual(utmParamWrapper.UtmMedium, utmEntity.Medium);
     Assert.AreEqual(utmParamWrapper.UtmSource, utmEntity.Source);
 }
Exemplo n.º 2
0
 private UtmParamWrapper InitUtmCookies(HttpRequestBase request, HttpResponseBase response)
 {
     var domain = SiteConfiguration.ProductionHostName;
     var referrer = request.UrlReferrer != null ? request.UrlReferrer.ToString() : string.Empty;
     if (request.Cookies[UTM_COOKIE_NAME] == null) {
         UtmParam = new UtmParamWrapper(
             // если есть, берем из параметра урла
             request.Params.Get(UTM_SOURCE_PARAM_NAME) ??
                         // иначе ищем реферер
                         (request.UrlReferrer != null
                             // проверяем, внутренний ли переход
                             ? (referrer.IndexOf(domain, StringComparison.Ordinal) >= 0
                                 ? domain
                                 : referrer.GetDomain())
                             // если заход по прямому урлу
                             : string.Empty),
             request.Params.Get(UTM_CAMPAIGN_PARAM_NAME) ?? string.Empty,
             request.Params.Get(UTM_MEDIUM_PARAM_NAME) ?? string.Empty,
             true
         );
         var utmCookie = new HttpCookie(UTM_COOKIE_NAME, CryptoManager.EncryptString(UtmParam.SerializeStruct())) {
             Expires = DateTime.UtcNow.AddYears(5)
         };
         response.Cookies.Set(utmCookie);
     } else {
         UtmParam = UtmParamWrapper.DeserializeParamWrapper(CryptoManager.DecryptString(request.Cookies[UTM_COOKIE_NAME].Value));
     }
     return UtmParam;
 }
Exemplo n.º 3
0
 public void SaveUtm(int guestid, UtmParamWrapper utmParams) {
     InvokeSafe(() => {
         if (utmParams.IsNew && (guestid != UserAgentValidationPolicy.BOT_GUID || utmParams.Any())) {
             new UtmGuestReferrer {
                 Datecreated = DateTime.UtcNow,
                 GuestID = guestid,
                 Campaign = utmParams.UtmCampaign,
                 Medium = utmParams.UtmMedium,
                 Source = utmParams.UtmSource
             }.Save();
         }
     });
 }
Exemplo n.º 4
0
 private static void LogAdditionalUserInfo(int guestID, UtmParamWrapper utm, Uri urlReferrer, Uri url, HttpBrowserCapabilitiesBase httpBrowserCapabilitiesBase, string userAgent)
 {
     TaskRunner.Instance.AddAction(() => {
         BusinessLogic.UserProvider.SaveReferrer(guestID, urlReferrer?.ToString() ?? string.Empty, url?.ToString() ?? string.Empty);
         BusinessLogic.UserProvider.SaveUtm(guestID, utm);
         var browserInfo = new BrowserInfo(httpBrowserCapabilitiesBase, userAgent);
         BusinessLogic.UserProvider.SaveTechInfo(guestID, new GuestTechInfoTransport {
             Version = browserInfo.CurrentVersion(),
             BrowserType = browserInfo.Name,
             Os = browserInfo.Os,
             IsMobile = browserInfo.Mobile,
             UserAgent = browserInfo.UserAgent
         });
     });
 }