Beispiel #1
0
        public void CreateUpdateLead(UserProfile profile)
        {
            if (string.IsNullOrEmpty(profile.Details.DealerID))
            {
                throw new ArgumentNullException("UserProfile.Details.DealerID cannot be empty");
            }

            var lead = BB_Lead.CreateFromProfile(profile);

            var createUpdateQuery = new RestRequest("stored_leads", Method.MERGE, DataFormat.Json);

            var bodyJSON = JsonConvert.SerializeObject(lead);

            createUpdateQuery.AddParameter("application/json", bodyJSON, ParameterType.RequestBody);

            var response = apiClient.Execute <JObject>(createUpdateQuery);

            Console.WriteLine($"Got response [{response.StatusCode}] {response.Content}");

            if (response.StatusCode == HttpStatusCode.OK)
            {
                //hooray!
                var newID = response.Data.Value <string>("id");
                profile.BB_CRM_ID = newID;
            }
            else
            {
                throw new Exception($"Invalid server response [{response.StatusCode}]. {response.Content}");
            }
        }
Beispiel #2
0
        public static BB_Lead CreateFromProfile(UserProfile profile)
        {
            var bbLead = new BB_Lead()
            {
                Dealer_ID     = profile.Details.DealerID,
                Lead_Platform = "API",
                Remote_ID     = profile.Details.UniqueID,
                Name          = profile.Details.Name,
                Email         = profile.Details.Email,
                Phone         = profile.Details.Phone,
                Data          = new BB_AdditionalDetails()
            };

            if (profile.Financing?.IsCompleted ?? false)
            {
                bbLead.Data.Field_Data = new List <BB_Field>();

                var lines = profile.Financing.GoodCredit ?
                            new string[]
                {
                    $"Credit Score: {profile.Financing.CreditScore}"
                } :
                new string[]
                {
                    $"Credit Score: {profile.Financing.CreditScore}",
                    $"Income: {profile.Financing.Income}",
                    $"Home Ownership: {profile.Financing.HomeOwnership}",
                    $"Employment History: {profile.Financing.Employment}",
                };

                bbLead.Data.Field_Data.Add(new BB_Field()
                {
                    Name   = "Financing",
                    Values = new List <string>(lines)
                });
            }

            if (profile.Inventory?.IsCompleted ?? false)
            {
                var inventory = profile.Inventory;

                var used = inventory.NewUsed == "Used";

                bbLead.Data.Purchase_Vehicle = new BB_PurchaseDetails()
                {
                    Used  = used,
                    Make  = inventory.Make,
                    Model = inventory.Model,
                    //Year = inventory.Year,
                    Condition = used ? "Used" : "New",
                };
            }

            if (profile.TradeDetails?.IsCompleted ?? false)
            {
                var tradein = profile.TradeDetails;

                bbLead.Data.TradeIn_Vehicle = new BB_VehicleDetails()
                {
                    Make      = tradein.Make,
                    Model     = tradein.Model,
                    Year      = tradein.Year,
                    Condition = tradein.Condition
                };

                if (!string.IsNullOrEmpty(tradein.Mileage))
                {
                    bbLead.Data.TradeIn_Vehicle.Odometer = new BB_Odometer()
                    {
                        Value = tradein.Mileage
                    };
                }
            }

            return(bbLead);
        }