public ThreadTO sendNewMessage(string pwd, string threadSubject, Int32 groupId, Int32 messageCategory, Int32 senderId, Int32 recipientId, string messageBody)
{
ThreadTO result = new ThreadTO();
if (String.IsNullOrEmpty(threadSubject))
{
result.fault = new FaultTO("Missing thread subject");
}
else if (messageCategory >= 0 && !Enum.IsDefined(typeof(gov.va.medora.mdo.domain.sm.enums.MessageCategoryTypeEnum), messageCategory))
{
result.fault = new FaultTO("That message category is not defined");
}
else if (senderId <= 0)
{
result.fault = new FaultTO("Missing sender ID");
}
else if (recipientId <= 0)
{
result.fault = new FaultTO("Missing recipient ID");
}
else if (String.IsNullOrEmpty(messageBody))
{
result.fault = new FaultTO("Must supply a message body");
}
if (result.fault != null)
{
return result;
}
try
{
gov.va.medora.mdo.domain.sm.Thread thread = new Thread()
{
MailGroup = new TriageGroup() { Id = groupId },
MessageCategoryType = (mdo.domain.sm.enums.MessageCategoryTypeEnum)messageCategory,
Subject = threadSubject
};
gov.va.medora.mdo.domain.sm.Message message = new Message()
{
Body = messageBody,
Checksum = StringUtils.getMD5Hash(messageBody),
MessageThread = thread,
RecipientId = recipientId,
SenderId = senderId,
SentDate = DateTime.Now
};
using (MdoOracleConnection cxn = new MdoOracleConnection(new mdo.DataSource() { ConnectionString = pwd }))
{
SecureMessageDao dao = new SecureMessageDao(cxn);
Message newMsg = dao.sendNewMessage(message);
result = new ThreadTO(newMsg.MessageThread);
result.messages = new MessageTO[] { new MessageTO(newMsg) };
}
}
catch (Exception exc)
{
result.fault = new FaultTO(exc);
}
return result;
}