Esempio n. 1
0
        public static async Task <string> GetValidSenderEmail(MailjetClient client)
        {
            MailjetRequest request = new MailjetRequest
            {
                Resource = Sender.Resource
            };

            MailjetResponse response = await client.GetAsync(request);

            Assert.AreEqual(200, response.StatusCode);

            foreach (var emailObject in response.GetData())
            {
                if (emailObject.Type != JTokenType.Object)
                {
                    continue;
                }

                if (emailObject.Value <string>("Status") == "Active")
                {
                    return(emailObject.Value <string>("Email"));
                }
            }

            Assert.Fail("Cannot find Active sender address under given account");
            throw new AssertFailedException();
        }
        public void TestSmsStatisticsAsync()
        {
            var expectedData = new JArray();
            var mockHttp     = new MockHttpMessageHandler();
            var jsonResponse = GenerateJsonResponse(1, 1, expectedData);

            // Setup a respond for the user api (including a wildcard in the URL)
            mockHttp.When("https://api.mailjet.com/v4/*")
            .Respond(JsonMediaType, jsonResponse);         // Respond with JSON

            IMailjetClient client = new MailjetClient(API_TOKEN, mockHttp)
            {
                Version = ApiVersion.V4
            };

            MailjetRequest request = new MailjetRequest
            {
                Resource = sms.SMS.Resource
            }
            .Filter(sms.SMS.FromTS, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString())
            .Filter(sms.SMS.ToTS, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString());

            MailjetResponse response = client.GetAsync(request).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            Assert.IsTrue(JToken.DeepEquals(expectedData, response.GetData()));
        }
Esempio n. 3
0
 public List <MailJetSegment> GetSegments(string apiKey, string apiSecret)
 {
     try
     {
         MailjetClient  client  = new MailjetClient(apiKey, apiSecret);
         MailjetRequest request = new MailjetRequest
         {
             Resource = Contactfilter.Resource,
         }
         .Filter(Contact.ContactsList, "$ContactsListID");
         MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result;
         if (response.IsSuccessStatusCode)
         {
             List <MailJetSegment> segmentsList = JsonConvert.DeserializeObject <List <MailJetSegment> >(response.GetData().ToString());
             return(segmentsList);
         }
         else
         {
             telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
         }
     }
     catch (Exception ex)
     {
         var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
         telemetria.Critical(messageException);
     }
     return(null);
 }
Esempio n. 4
0
        public MailJetProfile GetMyProfile(MailjetClient client)
        {
            try
            {
                MailjetRequest request = new MailjetRequest
                {
                    Resource = Myprofile.Resource,
                };

                MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result;

                if (response.IsSuccessStatusCode)
                {
                    List <MailJetProfile> listSender = JsonConvert.DeserializeObject <List <MailJetProfile> >(response.GetData().ToString());
                    return(listSender.FirstOrDefault());
                }
                else
                {
                    telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
                }
            }
            catch (Exception ex)
            {
                var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }

            return(null);
        }
        public void TestTooManyRequestsStatus()
        {
            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When("https://api.mailjet.com/v3/*")
            .Respond(((HttpStatusCode)429));

            // Inject the handler into your application code
            IMailjetClient client = new MailjetClient(ApiKeyTest, ApiSecretTest, mockHttp);

            MailjetRequest request = new MailjetRequest
            {
                Resource = Apikey.Resource,
            };

            MailjetResponse response = client.GetAsync(request).Result;

            Assert.AreEqual(429, response.StatusCode);
            Assert.AreEqual("Too many requests", response.GetErrorInfo());
        }
Esempio n. 6
0
        public bool IsValidAsync(string apiKey, string apiSecret)
        {
            try
            {
                MailjetClient  client  = new MailjetClient(apiKey, apiSecret);
                MailjetRequest request = new MailjetRequest
                {
                    Resource = Sender.Resource,
                };

                MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result;
                return(response.IsSuccessStatusCode);
            }
            catch (Exception ex)
            {
                var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }

            return(false);
        }
Esempio n. 7
0
        public async Task <int?> GetContactId(string contactEmail)
        {
            try
            {
                var request = new MailjetRequest
                {
                    Resource = new ResourceInfo("contact/" + contactEmail),
                };
                var response = await _clientV3.GetAsync(request);

                if (!response.IsSuccessStatusCode)
                {
                    throw new MailjetApiClientException(response.FormatForLogs());
                }
                var responseData = response.GetData();
                return((int)responseData[0]["ID"]);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Esempio n. 8
0
        static async Task RunAsync()
        {
            //MailjetClientHandler clientHandler = new MailjetClientHandler()
            //{
            //    Proxy = new DefaultProxy("http://127.0.0.1:8888"),
            //    UseProxy = true,
            //};

            //MailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable("MJ_APIKEY_PUBLIC"), Environment.GetEnvironmentVariable("MJ_APIKEY_PRIVATE"), clientHandler)
            //{
            //    BaseAdress = "https://api.mailjet.com",
            //    Version = ApiVersion.V3,
            //};

            IMailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable("MJ_APIKEY_PUBLIC"), Environment.GetEnvironmentVariable("MJ_APIKEY_PRIVATE"));

            MailjetRequest request = new MailjetRequest
            {
                Resource = Apikey.Resource,
            };

            MailjetResponse response = await client.GetAsync(request);

            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine(string.Format("Total: {0}, Count: {1}\n", response.GetTotal(), response.GetCount()));
                Console.WriteLine(response.GetData());
            }
            else
            {
                Console.WriteLine(string.Format("StatusCode: {0}\n", response.StatusCode));
                Console.WriteLine(string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()));
                Console.WriteLine(string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
            }

            Console.ReadLine();
        }
        public void TestGetAsync()
        {
            int expectedTotal = 1;
            int expectedCount = 1;

            var expectedData = new JArray
            {
                new JObject
                {
                    { Apikey.APIKey, "ApiKeyTest" },
                },
            };

            var mockHttp = new MockHttpMessageHandler();

            string jsonResponse = GenerateJsonResponse(expectedTotal, expectedCount, expectedData);

            // Setup a respond for the user api (including a wildcard in the URL)
            mockHttp.When("https://api.mailjet.com/v3/*")
            .Respond(JsonMediaType, jsonResponse);         // Respond with JSON

            // Inject the handler into your application code
            IMailjetClient client = new MailjetClient(ApiKeyTest, ApiSecretTest, mockHttp);

            MailjetRequest request = new MailjetRequest
            {
                Resource = Apikey.Resource,
            };

            MailjetResponse response = client.GetAsync(request).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            Assert.AreEqual(expectedTotal, response.GetTotal());
            Assert.AreEqual(expectedCount, response.GetCount());
            Assert.IsTrue(JToken.DeepEquals(expectedData, response.GetData()));
        }
        private async Task AssertGetContact(long contactId)
        {
            // arrange
            MailjetRequest request = new MailjetRequest
            {
                Resource   = Contact.Resource,
                ResourceId = ResourceId.Numeric(contactId)
            };

            // act
            MailjetResponse response = await _client.GetAsync(request);

            // assert
            Assert.AreEqual(200, response.StatusCode);
            Assert.AreEqual(1, response.GetCount());
            Assert.AreEqual(1, response.GetTotal());

            var firstObject = response.GetData()[0];

            Assert.AreEqual(true, firstObject.Value <bool>("IsExcludedFromCampaigns"));
            Assert.AreEqual(_contactName, firstObject.Value <string>("Name"));
            Assert.AreEqual(_contactEmail, firstObject.Value <string>("Email"));
            Assert.AreEqual(contactId, firstObject.Value <long>("ID"));
        }
        private async Task <bool> AddUserToContactList(string email, string name)
        {
            var request = new MailjetRequest {
                Resource = Contact.Resource, ResourceId = ResourceId.Alphanumeric(email)
            };
            var response = await _client.GetAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                request = new MailjetRequest {
                    Resource = Contact.Resource
                }
                .Property(Contact.Name, name)
                .Property(Contact.Email, email);
                response = await _client.PostAsync(request);

                if (response.IsSuccessStatusCode)
                {
                    request = new MailjetRequest {
                        Resource = Contact.Resource, ResourceId = ResourceId.Alphanumeric(email)
                    };
                    response = await _client.GetAsync(request);
                }
            }

            if (response.IsSuccessStatusCode)
            {
                var contactId = response.GetData().First.Value <long>(Contact.ID);

                request = new MailjetRequest {
                    Resource = Contactdata.Resource, ResourceId = ResourceId.Numeric(contactId)
                }
                .Property(Contactdata.Data, new JArray {
                    new JObject {
                        { "Name", "country" }, { "Value", CultureInfo.CurrentUICulture.Name }
                    }
                });
                response = await _client.PutAsync(request);

                if (response.IsSuccessStatusCode)
                {
                    var contactListId = _mailSettings.Value.ContacListId.ContainsKey(CultureInfo.CurrentUICulture.Name) ?
                                        _mailSettings.Value.ContacListId[CultureInfo.CurrentUICulture.Name] :
                                        _mailSettings.Value.ContacListId["en-US"];
                    request = new MailjetRequest {
                        Resource = ContactManagecontactslists.Resource, ResourceId = ResourceId.Numeric(contactId)
                    }
                    .Property(ContactManagecontactslists.ContactsLists, new JArray {
                        new JObject {
                            { "ListId", contactListId.ToString() },
                            { "Action", "addnoforce" }
                        }
                    });
                    response = await _client.PostAsync(request);

                    if (response.IsSuccessStatusCode)
                    {
                        return(true);
                    }
                    else
                    {
                        _logger.LogError(response.GetErrorMessage());
                    }
                }
                else
                {
                    _logger.LogError(response.GetErrorMessage());
                }
            }
            else
            {
                _logger.LogError(response.GetErrorMessage());
            }

            return(false);
        }