private static void AddCompanyData(KickFireModel.RootObject model) { var data = Tracker.Current.Contact.GetFacet <ICustomerLookup>("CompanyData"); data.name = model.data[0].name; data.CID = model.data[0].CID; data.category = model.data[0].category; data.city = model.data[0].city; data.confidence = model.data[0].confidence; data.country = model.data[0].country; data.countryShort = model.data[0].countryShort; data.employees = model.data[0].employees; data.facebook = model.data[0].facebook; data.isISP = model.data[0].isISP; data.latitude = model.data[0].latitude; data.linkedIn = model.data[0].linkedIn; data.linkedInID = model.data[0].linkedInID; data.longitude = model.data[0].longitude; data.phone = model.data[0].phone; data.postal = model.data[0].postal; data.region = model.data[0].region; data.regionShort = model.data[0].regionShort; data.revenue = model.data[0].revenue; data.sicCode = model.data[0].sicCode; data.stockSymbol = model.data[0].stockSymbol; data.street = model.data[0].street; data.twitter = model.data[0].twitter; data.website = model.data[0].website; data.isISP = model.data[0].isISP; data.confidence = model.data[0].confidence; }
public static void ProcessSicCode(string clientIp, KickFireModel.RootObject model) { // Lets put the user into the right pattern if (string.IsNullOrWhiteSpace(model.data[0].sicCode)) { Log.Info("KickFire: No SicCode from Kickfire API call. IP is " + clientIp, "KickFire"); return; } var profileItem = Items.GetProfileItemBySicCode(model.data[0].sicCode); if (profileItem != null) { Log.Info("KickFire: Override SicCode for " + model.data[0].sicCode, "KickFire"); } // convert the response to our object var sicCodeModel = AnalyticsHelper.GetKickfireSicCodeModel(model.data[0].sicCode); if (sicCodeModel == null) { Log.Info("KickFire: Could not decode API call for " + model.data[0].sicCode, "Kickfire"); return; } // get the group by group name var groupItem = Items.GetSicGroup(sicCodeModel.Grouping); if (groupItem?.Fields[IDs.Fields.GroupParent.Profile] != null && ((LookupField)groupItem.Fields[IDs.Fields.GroupParent.Profile]).TargetItem != null) { // get profile key from group item profileItem = ((LookupField)groupItem.Fields[IDs.Fields.GroupParent.Profile]).TargetItem; } else { Log.Info("KickFire: Could not find group in Sitecore for " + sicCodeModel.Grouping, "Kickfire"); } if (profileItem == null) { Log.Info( "Profile Item is null. This is the lookup to the profile item from the Grouping item in Sitecore. ", "KickFire"); return; } ProcessProfile(profileItem); }
public KickFireModel.RootObject GetRootObject(string clientIp) { var apiUrl = Sitecore.Configuration.Settings.GetSetting("Bonfire.ExtremeIp.ApiUrl"); Assert.IsNotNullOrEmpty(apiUrl, "Extreme API url cannot be empty. Please update the settings file."); var company = CacheBuilder.KickFireCache.Get(clientIp); if (string.IsNullOrWhiteSpace(company)) { company = CallApiService(clientIp, apiUrl); CacheBuilder.KickFireCache.Set(clientIp, company); } else { Log.Info("Extreme Ip: Got company from cache. " + clientIp, "ExtremeIp"); } var extremeData = JsonConvert.DeserializeObject <Models.ExtremeResponse>(company); var data = new KickFireModel.RootObject { data = new List <KickFireModel.Datum> { new KickFireModel.Datum { name = extremeData.businessName, website = extremeData.businessWebsite, country = extremeData.country, countryShort = extremeData.countryCode, latitude = extremeData.lat, longitude = extremeData.lon, city = extremeData.city, region = extremeData.region, isISP = string.IsNullOrEmpty(extremeData.businessName) ? 1 : 0 } }, status = "success" }; return(data); }
private void AddCompanyInformation(KickFireModel.RootObject model) { var companyInformationFacet = Tracker.Current.Contact.GetFacet <IContactCustomerLookups>("CompanyInformation"); if (!companyInformationFacet.Entries.Contains(CleanName(model.data[0].name))) { var customer = companyInformationFacet.Entries.Create(CleanName(model.data[0].name)); customer.name = model.data[0].name; customer.CID = model.data[0].CID; customer.category = model.data[0].category; customer.city = model.data[0].city; customer.confidence = model.data[0].confidence; customer.country = model.data[0].country; customer.countryShort = model.data[0].countryShort; customer.employees = model.data[0].employees; customer.facebook = model.data[0].facebook; customer.isISP = model.data[0].isISP; customer.latitude = model.data[0].latitude; customer.linkedIn = model.data[0].linkedIn; customer.linkedInID = model.data[0].linkedInID; customer.longitude = model.data[0].longitude; customer.phone = model.data[0].phone; customer.postal = model.data[0].postal; customer.region = model.data[0].region; customer.regionShort = model.data[0].regionShort; customer.revenue = model.data[0].revenue; customer.sicCode = model.data[0].sicCode; customer.stockSymbol = model.data[0].stockSymbol; customer.street = model.data[0].street; customer.twitter = model.data[0].twitter; customer.website = model.data[0].website; customer.isISP = model.data[0].isISP; customer.confidence = model.data[0].confidence; customer.modified = DateTime.Now; } else { Log.Info("KickFire: Error, could not create new companyInformationFacet", "KickFire"); } }