public void Init()
 {
     _log     = LogManager.GetLogger(typeof(GammuRepositoryUnitTest));
     _context = new MySqlContext();
     _repo    = new GammuRepository(_context, _log);
 }
 public void CleanUp()
 {
     _repo = null;
     _context.Dispose();
 }
Exemple #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);
            }
        }