Beispiel #1
0
        public void Send_Get_Delete()
        {
            var sendResponse =
                _factory.ActionSend()
                .SetText("test message")
                .SetTo(_validTestNumber)
                .SetDateSent(DateTime.Now.AddHours(2))
                .Execute();

            Assert.AreEqual(1, sendResponse.Count);
            Assert.IsTrue(sendResponse.List[0].Points > 0, "Points must be greather then 0");
            Assert.IsNotNull(sendResponse.Message);
            Assert.IsNotNull(sendResponse.Parts);

            string[] ids = new string[sendResponse.Count];

            for (int i = 0, l = 0; i < sendResponse.List.Count; i++)
            {
                if (!sendResponse.List[i].isError())
                {
                    //Nie wystąpił błąd podczas wysyłki (numer|treść|parametry... prawidłowe)
                    if (!sendResponse.List[i].isFinal())
                    {
                        //Status nie jest koncowy, może ulec zmianie
                        ids[l] = sendResponse.List[i].ID;
                        l++;
                    }
                }
            }

            var getResponse =
                _factory.ActionGet()
                .Ids(ids)
                .Execute();

            Assert.AreEqual(sendResponse.Count, getResponse.Count);
            Assert.AreEqual(_validTestNumber, getResponse.List[0].Number);
            Assert.AreEqual(sendResponse.List[0].ID, getResponse.List[0].ID);
            Assert.AreEqual(sendResponse.List[0].IDx, getResponse.List[0].IDx);
            Assert.AreEqual(sendResponse.List[0].Points, getResponse.List[0].Points);
            Assert.AreEqual(sendResponse.List[0].Status, getResponse.List[0].Status);

            var deletedResponse =
                _factory
                .ActionDelete()
                .Id(ids[0])
                .Execute();

            Assert.AreEqual(sendResponse.Count, deletedResponse.Count);
        }
Beispiel #2
0
        private bool SendSms(ISmsNotificationModel message)
        {
            try
            {
                if (message.Valid)
                {
                    IClient client = new ClientOAuth(message.Config.Token);
                    var     api    = new SMSFactory(client);

                    var builder =
                        api.ActionSend()
                        .SetText(message.Text)
                        .SetTo(message.PhoneNumbers.ToArray());

                    if (message.Date.HasValue)
                    {
                        builder.SetDateSent(message.Date.Value);
                    }

                    builder.Execute();
                }
            }
            catch (System.Exception)
            {
                // log
            }

            return(false);
        }
Beispiel #3
0
        private static string SmsSender2(string messageText, string phoneNumber, string token)
        {
            string errors = string.Empty;

            try
            {
                IClient client = new ClientOAuth(token);
                var     smsApi = new SMSFactory(client);

                // .SetSender(_senderName) //Sender name
                var result =
                    smsApi.ActionSend()
                    .SetText(messageText)
                    .SetTo(phoneNumber)
                    .Execute();

                // System.Console.WriteLine("Send: " + result.Count);

                string[] ids = new string[result.Count];

                for (int i = 0, l = 0; i < result.List.Count; i++)
                {
                    if (!result.List[i].isError())
                    {
                        if (!result.List[i].isFinal())
                        {
                            ids[l] = result.List[i].ID;
                            l++;
                        }
                    }
                }
            }
            catch (SMSApi.Api.ActionException e)
            {
                errors += $"Action error: {e.Message}\n";
            }
            catch (SMSApi.Api.ClientException e)
            {
                /**
                 * Error codes (list available in smsapi docs). Example:
                 * 101  Invalid authorization info
                 * 102  Invalid username or password
                 * 103  Insufficient credits on Your account
                 * 104  No such template
                 * 105  Wrong IP address (for IP filter turned on)
                 * 110	Action not allowed for your account
                 */
                errors += $"Client error: {e.Message}\n";
            }
            catch (SMSApi.Api.HostException e)
            {
                /*
                 * Server errors
                 * SMSApi.Api.HostException.E_JSON_DECODE - problem with parsing data
                 */
                errors += $"Server error: {e.Message}\n";
            }
            catch (SMSApi.Api.ProxyException e)
            {
                // communication problem between client and sever
                errors += $"Proxy error: {e.Message}\n";
            }
            return(errors);
        }
Beispiel #4
0
        public void TestSms()
        {
            const string to = "46734195147";

            try
            {
                var client = new Client("*****@*****.**");
                //client.SetUsername("*****@*****.**");
                client.SetPasswordHash("07a0fbb4e40877cb77074eff3494b958");

                var smsApi = new SMSFactory(client);

                var result = smsApi.ActionSend()
                             .SetText("Test")
                             .SetTo(to)
                             .SetSender("QTransport")
                             .Execute();

                var ids = new string[result.Count];

                for (int i = 0, l = 0; i < result.List.Count; i++)
                {
                    if (result.List[i].isError())
                    {
                        continue;
                    }
                    if (result.List[i].isFinal())
                    {
                        continue;
                    }
                    ids[l] = result.List[i].ID;
                    l++;
                }

                result =
                    smsApi.ActionGet()
                    .Ids(ids)
                    .Execute();

                foreach (var status in result.List)
                {
                    System.Console.WriteLine("ID: " + status.ID + " NUmber: " + status.Number + " Points:" + status.Points + " Status:" + status.Status + " IDx: " + status.IDx);
                }

                foreach (var t in result.List)
                {
                    if (t.isError())
                    {
                        continue;
                    }

                    var deleted =
                        smsApi.ActionDelete()
                        .Id(t.ID)
                        .Execute();
                    System.Console.WriteLine("Deleted: " + deleted.Count);
                }
            }
            catch (Exception e)
            {
                ViewBag.Error = $"{e.Message}. {e.InnerException?.Message}";
            }
        }
Beispiel #5
0
        public static bool SendSms(string to, string message, out string resultStr)
        {
            resultStr = "Kundens telefonenummer saknas.";
            if (string.IsNullOrEmpty(to))
            {
                return(false);
            }

            try
            {
                to = "46" + to.TrimStart('0');

                var client = new Client("*****@*****.**");
                client.SetPasswordHash("07a0fbb4e40877cb77074eff3494b958");

                var smsApi = new SMSFactory(client);

                var result = smsApi.ActionSend()
                             .SetText(message)
                             .SetTo(to)
                             .SetSender("QTransport")
                             .Execute();

                var ids = new string[result.Count];

                for (int i = 0, l = 0; i < result.List.Count; i++)
                {
                    if (result.List[i].isError())
                    {
                        continue;
                    }
                    if (result.List[i].isFinal())
                    {
                        continue;
                    }
                    ids[l] = result.List[i].ID;
                    l++;
                }

                result = smsApi.ActionGet()
                         .Ids(ids)
                         .Execute();

                resultStr = result.List.Aggregate(resultStr,
                                                  (current, status) =>
                                                  current +
                                                  ("ID: " + status.ID + " NUmber: " + status.Number + " Points:" + status.Points + " Status:" +
                                                   status.Status + " IDx: " + status.IDx + ". "));

                return(true);
            }
            catch (ActionException e)
            {
                resultStr = $"{e.Message}. {e.InnerException?.Message}";
            }
            catch (ClientException e)
            {
                resultStr = $"{e.Message}. {e.InnerException?.Message}";
            }
            catch (HostException e)
            {
                resultStr = $"{e.Message}. {e.InnerException?.Message}";
            }
            catch (ProxyException e)
            {
                resultStr = $"{e.Message}. {e.InnerException?.Message}";
            }

            return(false);
        }