using System.Linq;
using Neo.Afx.ComponentModel;
namespace Neo.Afx.WinService.Messages
{
///
/// The Crm database.
///
public class MessageDatabase : Database
{
public MessageDatabase(string efConnectionString)
: base(new MessageContext(efConnectionString))
{
}
#region MessageEntityID
int _messageEntityID;
public int MessageEntityID
{
get
{
if(_messageEntityID == 0)
{
_messageEntityID = Context.Database.SqlQuery("SELECT [System].[GetEntityID]('message')").FirstOrDefault();
}
return _messageEntityID;
}
}
#endregion
#region GetMailSetting
public MailSetting GetMailSetting()
{
return GetByID(1);
}
#endregion
#region GetSmsSetting
public SmsSetting GetSmsSetting()
{
return GetByID(1);
}
#endregion
#region GetPendingMessages
///
/// Gets a list of pending .
///
/// The type of the message.
///
/// A list of pending .
///
public IQueryable GetPendingMessages(MessageTypeEnum messageType)
{
return from q in Context.Messages
where !q.IsCancelled && q.MessageTypeID == (byte)messageType && q.SentDate == null
orderby q.CreatedDate descending
select q;
}
#endregion
#region GetAttachments
///
/// Gets a list of .
///
/// The message for which attachments should be returned.
///
/// A list of .
///
public IQueryable GetAttachments(Message message)
{
return from d in Context.DocumentContents
where !d.Document.IsCancelled && d.Document.EntityID == MessageEntityID && d.Document.ItemID == message.MessageID
select d;
}
#endregion
#region CreateTemplatedEmails
public void CreateTemplatedEmails(int templateID)
{
Context.Pr_MessageCreateTemplatedEmails(templateID);
}
#endregion
}
}