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); }
private static bool IsRequestValid(KickFireModel model) { return(model != null && model.Status == "success" && model.Data.Count > 0 && ShouldProcessIsp(model)); }
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()); } }
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 }
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); } }
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); }
private static bool ShouldProcessIsp(KickFireModel model) { return(!AnalyticsConfigurationHelper.SkipIsp() || AnalyticsConfigurationHelper.SkipIsp() && model.Data[0].IsIsp == 0); }
private static void UpdateCompanyDataOnClient(KickFireModel model) { var service = new CompanyConnectService(); service.UpdateCompanyDataOnClient(HydrateCompanyModel(model)); }