Пример #1
0
        private void ProcessInvalidRequest(KickFireModel model, string clientIp)
        {
            if (model == null)
            {
                Log.Debug("KickFire: Model null. IP is " + clientIp, this);
            }

            else
            {
                if (model.Status != "success")
                {
                    Log.Debug("KickFire: Model capture not successful. Is is " + clientIp, "KickFire");
                }

                if (model?.Data?.Count == 0)
                {
                    Log.Debug("KickFire: No data records. IP is " + clientIp, "KickFire");
                }

                if (model?.Data != null && model?.Data[0].IsIsp != 0)
                {
                    Log.Debug("KickFire: Is ISP, skipped. IP is " + clientIp, "KickFire");
                }
            }
        }
        private async Task <KickFireModel> CallApiService(string clientIp, string apiKey, string apiUrl)
        {
            var apiCall = GetApiUrl(clientIp, apiKey, apiUrl);

            Log.Debug($"KickFire: Calling url {apiCall}", "KickFire");

            KickFireModel company = null;

            try
            {
                var ct = new CancellationToken();
                company = await Task.Run(() => ApiSerializationRepository.DeserializeGetRequestAsync <KickFireModel>(apiCall, ct, GetTimeSpan()), ct);
            }
            catch (TaskCanceledException tce)
            {
                Log.Error($"The API call timed out before it could be completed. The time out is {GetTimeSpan().ToString()}", tce, this);
                return(null);
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e, this);
                return(null);
            }


            if (company == null)
            {
                Log.Debug("KickFire: API call for " + clientIp + " return nulled value in response.", "KickFire");
                return(null);
            }

            Log.Debug("KickFire: API call for " + clientIp + "|" + company.Jsonize(), "KickFire");
            return(company);
        }
Пример #3
0
 private static bool IsRequestValid(KickFireModel model)
 {
     return(model != null &&
            model.Status == "success" &&
            model.Data.Count > 0 &&
            ShouldProcessIsp(model));
 }
Пример #4
0
        private void ProcessGoals(KickFireModel model)
        {
            var identificationGoal = AnalyticsConfigurationHelper.IdentificationGoal();

            if (identificationGoal != null && model.Data[0].Confidence > 70)
            {
                //_eventTrackerService.TrackGoal(identificationGoal.ID.ToGuid());

                //var companyConnectService = new CompanyConnectService();

                //companyConnectService.AddXconnectGoal(identificationGoal.ID.ToGuid(), Tracker.Current.Interaction.UserAgent, new ID("{B418E4F2-1013-4B42-A053-B6D4DCA988BF}").ToGuid());
            }
        }
Пример #5
0
        private void ProcessValidRequest(KickFireModel model, string clientIp)
        {
            // add company data to xDB
            UpdateCompanyDataOnClient(model);

            Log.Debug("KickFire: Logged for " + clientIp, "KickFire");

            bool.TryParse(Sitecore.Configuration.Settings.GetSetting("Bonfire.Kickfire.ProcessSicCode"),
                          out var processSicCode);

            if (processSicCode)
            {
                ProcessSicCode(clientIp, model);
            }

            // lets kick off the Engagement Plan
        }
Пример #6
0
        private void ProcessSicCode(string clientIp, KickFireModel model)
        {
            // Lets put the user into the right pattern
            if (string.IsNullOrWhiteSpace(model.Data[0].SicCode))
            {
                Log.Debug("KickFire: No SicCode from Kickfire API call. IP is " + clientIp, "KickFire");
                return;
            }

            int.TryParse(model.Data[0].SicCode, out var sicId);

            var profileItem = _sicCodeGroupRepository.GetProfileItemBySicCode(model.Data[0].SicCode);

            if (profileItem != null)
            {
                ProcessProfile(profileItem);
            }
        }
Пример #7
0
        private static CompanyFacet HydrateCompanyModel(KickFireModel model)
        {
            var data = new CompanyFacet
            {
                Name         = model.Data[0].Name,
                Category     = model.Data[0].Category2,
                Category2    = model.Data[0].Category,
                City         = model.Data[0].City,
                Confidence   = model.Data[0].Confidence,
                Country      = model.Data[0].Country,
                CountryShort = model.Data[0].CountryShort,
                Employees    = model.Data[0].Employees,
                Facebook     = model.Data[0].Facebook,
                IsIsp        = model.Data[0].IsIsp,
                Latitude     = model.Data[0].Latitude,
                LinkedIn     = model.Data[0].LinkedIn,
                Longitude    = model.Data[0].Longitude,
                Phone        = model.Data[0].Phone,
                Postal       = model.Data[0].Postal,
                Region       = model.Data[0].Region,
                RegionShort  = model.Data[0].RegionShort,
                Revenue      = model.Data[0].Revenue,
                SicCode      = model.Data[0].SicCode,
                NaicsCode    = model.Data[0].NaicsCode,
                NaicsGroup   = model.Data[0].NaicsGroup,
                StockSymbol  = model.Data[0].StockSymbol,
                Street       = model.Data[0].Street,
                Twitter      = model.Data[0].Twitter,
                Website      = model.Data[0].Website,
                IsWifi       = model.Data[0].IsWifi
            };

            data.IsIsp      = model.Data[0].IsIsp;
            data.Confidence = model.Data[0].Confidence;
            return(data);
        }
Пример #8
0
 private static bool ShouldProcessIsp(KickFireModel model)
 {
     return(!AnalyticsConfigurationHelper.SkipIsp() ||
            AnalyticsConfigurationHelper.SkipIsp() && model.Data[0].IsIsp == 0);
 }
Пример #9
0
        private static void UpdateCompanyDataOnClient(KickFireModel model)
        {
            var service = new CompanyConnectService();

            service.UpdateCompanyDataOnClient(HydrateCompanyModel(model));
        }