Exemple #1
0
        /// <summary>
        /// Gets all entities that were created/modified/deleted locally after the last sync.
        /// </summary>
        /// <param name="state">A unique identifier for the changes that are uploaded</param>
        /// <returns>The set of incremental changes to send to the service.</returns>
        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;
        }
Exemple #2
0
        public List<Tag> GetAllTags()
        {
            var tags = new List<Tag>();

            using (var command = new SqlCeCommand())
            {
                command.Connection = GetSqlCeConnection();
                command.CommandText = GET_ALL_TAGS;

                SqlCeDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    var t = new Tag
                                {
                                    ID = (int) reader["ID"],
                                    Name = reader["Name"] as string,
                                    ServiceMetadata = new OfflineEntityMetadata()
                                    {
                                        IsTombstone = false,
                                        Id = reader["_MetadataID"] as string
                                    }
                                };
                    tags.Add(t);
                }
            }

            return tags;
        }
Exemple #3
0
        public List<Status> GetAllStatus()
        {
            var statuses = new List<Status>();

            using (var command = new SqlCeCommand())
            {
                command.Connection = GetSqlCeConnection();
                command.CommandText = GET_ALL_STATUS;

                SqlCeDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    var p = new Status
                                {
                                    ID = (int) reader["ID"],
                                    Name = reader["Name"] as string,
                                    ServiceMetadata = new OfflineEntityMetadata()
                                    {
                                        IsTombstone = false,
                                        Id = reader["_MetadataID"] as string
                                    }
                                };

                    statuses.Add(p);
                }
            }

            return statuses;
        }
Exemple #4
0
        public List<Priority> GetAllPriority()
        {
            var priorities = new List<Priority>();

            using (var command = new SqlCeCommand())
            {
                command.Connection = GetSqlCeConnection();
                command.CommandText = GET_ALL_PRIORITY;

                SqlCeDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    var p = new Priority()
                    {
                        ID = (int)reader["ID"],
                        Name = reader["Name"] as string,
                        ServiceMetadata = new OfflineEntityMetadata()
                        {
                            IsTombstone = false,
                            Id = reader["_MetadataID"] as string
                        }
                    };

                    priorities.Add(p);
                }
            }

            return priorities;
        }
Exemple #5
0
        public object GetAllLists()
        {
            var lists = new List<List>();

            using (var command = new SqlCeCommand())
            {
                command.Connection = GetSqlCeConnection();
                command.CommandText = GET_ALL_LISTS;

                SqlCeDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    var l = new List
                                {
                                    ID = (Guid) reader["ID"],
                                    Name = reader["Name"] as string,
                                    Description = reader["Description"] as string,
                                    CreatedDate = (DateTime) reader["CreatedDate"],
                                    UserID = (Guid)reader["UserID"],
                                    ServiceMetadata = new OfflineEntityMetadata()
                                    {
                                        IsTombstone = (bool)reader["IsTombstone"],
                                        Id = reader["_MetadataID"] as string
                                    }
                                };

                    lists.Add(l);
                }
            }

            return lists;
        }
Exemple #6
0
        public List<Item> GetAllItems(Guid listId)
        {
            var items = new List<Item>();

            using (var command = new SqlCeCommand())
            {
                command.Connection = GetSqlCeConnection();
                command.CommandText = GET_ALL_ITEMS;
                command.Parameters.Add("@ListID", SqlDbType.UniqueIdentifier).Value = listId;

                SqlCeDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    var i = new Item
                    {
                        ID = (Guid)reader["ID"],
                        Name = reader["Name"] as string,
                        Description = reader["Description"] as string,
                        ListID = (Guid)reader["ListID"],
                        Priority = reader["Priority"] as int?,
                        Status = reader["Status"] as int?,
                        UserID = (Guid)reader["UserID"],
                        ServiceMetadata = new OfflineEntityMetadata()
                        {
                            IsTombstone = (bool)reader["IsTombstone"],
                            Id = reader["_MetadataID"] as string
                        }
                    };

                    items.Add(i);
                }
            }

            return items;
        }