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