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);
        }
Beispiel #3
0
        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");
            }
        }