public IEnumerable<SqlCeOfflineEntity> GetChanges(Guid state)
{
var changeList = new List<SqlCeOfflineEntity>();
using (GetSqlCeConnection())
{
SqlCeTransaction transaction = _connection.BeginTransaction();
try
{
using (var command = new SqlCeCommand(SELECT_ITEM_CHANGES, GetSqlCeConnection()))
{
var reader = command.ExecuteReader();
while (reader.Read())
{
var item = new Item
{
ID = (Guid)reader["ID"],
ListID = (Guid)reader["ListID"],
UserID = (Guid)reader["UserID"],
Name = reader["Name"] as string,
Description = reader["Description"] as string,
Priority = reader["Priority"] as int?,
Status = reader["Status"] as int?,
StartDate = reader["StartDate"] as DateTime?,
EndDate = reader["EndDate"] as DateTime?,
ServiceMetadata = new OfflineEntityMetadata()
{
IsTombstone = (bool)reader["IsTombstone"],
Id = reader["_MetadataID"] as string
}
};
changeList.Add(item);
}
}
using (var command = new SqlCeCommand(SELECT_LIST_CHANGES, GetSqlCeConnection()))
{
var reader = command.ExecuteReader();
while (reader.Read())
{
var listItem = new List
{
ID = (Guid)reader["ID"],
Name = reader["Name"] as string,
Description = reader["Description"] as string,
UserID = (Guid)reader["UserID"],
CreatedDate = (DateTime)reader["CreatedDate"],
ServiceMetadata = new OfflineEntityMetadata()
{
IsTombstone = (bool)reader["IsTombstone"],
Id = reader["_MetadataID"] as string
}
};
changeList.Add(listItem);
}
}
using (var command = new SqlCeCommand(SELECT_TAGITEMMAPPING_CHANGES, GetSqlCeConnection()))
{
var reader = command.ExecuteReader();
while (reader.Read())
{
var tagItemMapping = new TagItemMapping
{
TagID = (int)reader["TagID"],
ItemID = (Guid)reader["ItemID"],
UserID = (Guid)reader["UserID"],
ServiceMetadata = new OfflineEntityMetadata()
{
IsTombstone = (bool)reader["IsTombstone"],
Id = reader["_MetadataID"] as string
}
};
changeList.Add(tagItemMapping);
}
}
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
return changeList;
}