|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace MessageBoard.DataAccess.Linq
{
public class LinqMessageProvider : IMessageProvider
{
#region IMessageSource Members
public IEnumerable<Message> GetRecentMessages(int lastId, int start, int count)
{
using (MessageBoardDataContext context = CreateDataContext())
{
var messages = from m in context.Messages
where m.Id > lastId
orderby m.DatePosted descending
select m.Freeze();
var messagesInRange = messages.Skip(start).Take(count);
return messagesInRange.ToList();
}
}
public int GetMessageCount()
{
using(MessageBoardDataContext context = CreateDataContext())
return context.Messages.Count();
}
private static MessageBoardDataContext CreateDataContext()
{
MessageBoardDataContext context = new MessageBoardDataContext();
context.ObjectTrackingEnabled = false;
return context;
}
public int AddMessage(string subject, string text, string postedBy, string postedById, DateTime datePosted)
{
using (MessageBoardDataContext context = CreateDataContext())
{
context.ObjectTrackingEnabled = true;
Message message = new Message();
message.Subject = subject;
message.Text = text;
message.PostedBy = postedBy;
message.PostedById = postedById;
message.DatePosted = datePosted;
context.Messages.InsertOnSubmit(message);
context.SubmitChanges();
//After calling submit changes the Id is automatically updated
return message.Id;
}
}
public IEnumerable<Message> GetMessageById(int id)
{
using (MessageBoardDataContext context = CreateDataContext())
{
return (from m in context.Messages
where m.Id == id
select m).ToList();
}
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.