public string SendMessage(MORZEMessage msg, IMORZEContact to) { string err = null; if (to.isHasConfirmEtx() == true) { try { ExtKey ext; byte [] netmsg = to.getMORZENetMessage(msg, out ext); MORZESendMessage m = new MORZESendMessage(); m.AddMessageBody(netmsg, ext.HashID, ext.Ext); m.Send(m_netStream); msg.Status = MORZEMessageStatus.sended; msg.AddHashInfo(ext.HashID, SMSCrypt.CalcHash(ext.HashID, netmsg)); } catch (Exception exp) { OnConnectChange(false, exp.Message); } } else { SendInitialMessage(to); } return(err); }
/// <summary> /// message send /// </summary> /// <param name="msg">mesage's plain text</param> /// <param name="to">reciver</param> /// <returns>error description</returns> public string SendMessage(string msg, IMORZEContact to) { string err = null; if (to.isHasConfirmEtx() == false) { try { SendInitialMessage(to); MORZEMessages msgs; msgs = m_account.GetMessages(to); if (msgs != null) { msgs.AddUnsendedNewMessages(msg); } } catch (Exception exp) { OnConnectChange(false, exp.Message); } } else { ExtKey ext; MORZEMessage mmsg = new MORZEMessage(msg.ToString()); byte[] netmsg = to.getMORZENetMessage(mmsg, out ext); MORZESendMessage m = new MORZESendMessage(); m.AddMessageBody(netmsg, ext.HashID, ext.Ext); m.Send(m_netStream); MORZEMessages msgs; msgs = m_account.GetMessages(to); if (msgs != null) { mmsg.AddHashInfo(ext.HashID, SMSCrypt.CalcHash(ext.HashID, netmsg)); msgs.AddSendedNewMessages(mmsg); } } return(err); }