public async Task <LeadCreateResponse> CreateOrUpdateLeads(LeadsRequest request)
        {
            var    token   = GetToken().Result;
            string url     = String.Format("{0}/rest/v1/leads.json?access_token={1}", Connection.RestApiUrl, token);
            var    fullUri = new Uri(url, UriKind.Absolute);

            LeadCreateResponse leadCreateResponse;

            using (var client = new HttpClient())
            {
                var response = await client.PostAsync(fullUri, request.AsJson()).ConfigureAwait(false);

                if (response.IsSuccessStatusCode)
                {
                    var stringResponse = await response.Content.ReadAsStringAsync();

                    var jsonObject = JObject.Parse(stringResponse);
                    leadCreateResponse = jsonObject.ToObject <LeadCreateResponse>();
                }
                else
                {
                    if (response.StatusCode == HttpStatusCode.Forbidden)
                    {
                        throw new AuthenticationException("Invalid username/password combination.");
                    }
                    else
                    {
                        throw new AuthenticationException("Not able to get token");
                    }
                }
            }

            return(leadCreateResponse);
        }
示例#2
0
 public static List <LeadsViewModel> GetLeads(LeadsRequest request, CookieCollection cookie)
 {
     try
     {
         var     _outputJson        = _getJsonByHttpGetRequset(Helpers.Paths[Helpers.PathsTypes.Leads], cookie, new string[] {});
         JObject _o                 = JObject.Parse(_outputJson);
         var     _contectJsonString = (string)_o["_embedded"]["items"].ToString();
         var     _pff               = _contectJsonString.Replace("\"custom_fields\": {},", "\"custom_fields\": [],");
         var     _obj               = JsonConvert.DeserializeObject <List <LeadsViewModel> >(_pff);
         return(_obj);
     }
     catch (Exception e)
     {
         return(null);
     }
 }
示例#3
0
        public void OnNext(MemberChangingEvent value)
        {
            if (value.ChangeState == EntryState.Added || value.ChangeState == EntryState.Modified)
            {
                var m       = value.Member;
                var address = m.Addresses?.Count > 0 ? m.Addresses[0] : null;
                var email   = m.Emails?.Count > 0 ? m.Emails[0] : string.Empty;

                if (m is Contact)
                {
                    var contact = m as Contact;

                    var request = new LeadsRequest
                    {
                        lookupField = "email",
                        input       = new[] {
                            new Lead {
                                postalCode = address?.PostalCode,
                                email      = email,
                                firstName  = contact.FirstName,
                                lastName   = contact.LastName,
                                leadScore  = 10,
                                address    = address?.Line1,
                                city       = address?.City,
                                country    = address?.CountryName,
                                phone      = address?.Phone,
                                state      = address?.RegionName
                            }
                        }
                    };

                    using (var result = Service.CreateOrUpdateLeads(request).Result)
                    {
                        // check for actual result success here
                    }
                }
            }
        }
        public void Can_create_leads_unauthorized()
        {
            var serviceName = Environment.GetEnvironmentVariable("MarketoUrl");
            var connection  = new MarketoConnectionInfo()
            {
                RestApiUrl   = Environment.GetEnvironmentVariable("MarketoUrl"),
                ClientId     = "fake",
                ClientSecret = "fakke"
            };

            var service = new MarketoService(connection);

            var request = new LeadsRequest
            {
                lookupField = "email",
                input       = new[] { new Lead {
                                          postalCode = "90069", email = "*****@*****.**", firstName = "John", lastName = "Doe", leadScore = 10, address = "sample address", city = "los angeles", country = "United States", phone = "234234234", state = "CA"
                                      } }
            };

            var exception = Record.Exception(() => service.CreateOrUpdateLeads(request).Result);

            Assert.IsType(typeof(AuthenticationException), exception.InnerException.InnerException);
        }
        public void Can_create_leads()
        {
            var serviceName = Environment.GetEnvironmentVariable("MarketoUrl");
            var connection  = new MarketoConnectionInfo()
            {
                RestApiUrl   = Environment.GetEnvironmentVariable("MarketoUrl"),
                ClientId     = Environment.GetEnvironmentVariable("MarketoClientId"),
                ClientSecret = Environment.GetEnvironmentVariable("MarketoClientSecret")
            };

            var service = new MarketoService(connection);

            var request = new LeadsRequest
            {
                lookupField = "email",
                input       = new[] { new Lead {
                                          postalCode = "90069", email = "*****@*****.**", firstName = "John", lastName = "Doe", leadScore = 10, address = "sample address", city = "los angeles", country = "United States", phone = "234234234", state = "CA"
                                      } }
            };

            var result = service.CreateOrUpdateLeads(request).Result;

            Assert.True(result.success);
        }