public void SaveOutboxTest()
        {
            var outbox = new Outbox
            {
                DestinationNumber = "+6281381769915",
                UDH         = "",
                TextDecoded = "tesss",
                MultiPart   = "true"
            };

            var result = _repo.SaveOutbox(outbox);

            Assert.IsTrue(result != 0);

            if (outbox.MultiPart == "true")
            {
                var outboxMultipart = new OutboxMultipart
                {
                    Id               = outbox.Id,
                    UDH              = "",
                    TextDecoded      = "tess #2",
                    SequencePosition = 2
                };

                result = _repo.SaveOutboxMultipart(outboxMultipart);
                Assert.IsTrue(result != 0);
            }
        }
Exemplo n.º 2
0
        public int SaveOutboxMultipart(OutboxMultipart obj)
        {
            var result = 0;

            try
            {
                var sql = @"INSERT INTO outbox_multipart(ID, UDH, TextDecoded, SequencePosition)
                            VALUES (@ID, @UDH, @TextDecoded, SequencePosition)";
                result = _context.db.Execute(sql, obj);
            }
            catch (Exception ex)
            {
                _log.Error("Error:", ex);
            }

            return(result);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Method untuk menyimpan pesan yang akan dikirim ke tabel outbox
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="inbox"></param>
        /// <param name="gammuRepo"></param>
        private void SaveOutbox(string msg, Inbox inbox, IGammuRepository gammuRepo)
        {
            var result = 0;

            // insert ke tabel outbox
            var jumlahSMS = (int)Math.Ceiling((double)msg.Length / 160);

            if (jumlahSMS > 1) // balasan sms > 160 karakter, sms dipecah sebelum dikirim
            {
                var listSms = msg.SplitByLength(153)
                              .ToList();

                var smsKe    = 1;
                var outboxID = 0;
                foreach (var sms in listSms)
                {
                    var udh = inbox.UDH;

                    if (udh.Length == 0)
                    {
                        udh = string.Format("050003A7{0:00}{1:00}", listSms.Count, smsKe);
                    }
                    else
                    {
                        udh = inbox.UDH.Substring(0, inbox.UDH.Length - 4);
                        udh = string.Format("{0}{1:00}{2:00}", udh, listSms.Count, smsKe);
                    }

                    if (smsKe == 1)
                    {
                        var outbox = new Outbox
                        {
                            DestinationNumber = inbox.SenderNumber,
                            UDH         = udh,
                            TextDecoded = sms,
                            MultiPart   = "true"
                        };

                        result = gammuRepo.SaveOutbox(outbox);
                        if (result > 0)
                        {
                            outboxID = outbox.Id;
                        }
                    }
                    else // sms ke 2, 3, dst, simpan ke tabel outbox_multipart
                    {
                        var outboxMultipart = new OutboxMultipart
                        {
                            Id               = outboxID,
                            UDH              = udh,
                            TextDecoded      = sms,
                            SequencePosition = smsKe
                        };

                        result = gammuRepo.SaveOutboxMultipart(outboxMultipart);
                    }

                    smsKe++;
                }
            }
            else // balasan sms <= 160 karakter
            {
                var outbox = new Outbox
                {
                    DestinationNumber = inbox.SenderNumber,
                    UDH         = string.Empty,
                    TextDecoded = msg,
                    MultiPart   = "false"
                };

                result = gammuRepo.SaveOutbox(outbox);
            }

            if (result > 0)
            {
                // update status pesan di inbox menjadi sudah diproses
                result = gammuRepo.UpdateInbox(inbox.Id);
            }
        }