Exemplo n.º 1
0
        public virtual void Remove(string id)
        {
            storage.Delete(id);
            var index = ids.IndexOf(id);
            var item  = items[index];

            items.Remove(item);
            ids.Remove(id);
            storage.Put(idListKey, ids);
            Removed(index, item);
        }
Exemplo n.º 2
0
        public PersistentList(string editGroup, Func <T, string> serialize = null, Func <string, T> deserialize = null)
        {
            try {
                storage = SimpleStorage.EditGroup(editGroup);
                ids     = storage.Get <List <string> >(idListKey) ?? new List <string>();

                var broken = new List <string>();
                foreach (var i in ids)
                {
                    T item = default(T);
                    try {
                        item = deserialize == null?storage.Get <T>(i) : deserialize(storage.Get(i));
                    } catch (Exception e) {
                        Console.WriteLine(e.Message);
                    }

                    if (item == null)
                    {
                        broken.Add(i);
                        continue;
                    }
                    items.Add(item);
                }

                if (broken.Count > 0)
                {
                    foreach (var id in broken)
                    {
                        storage.Delete(id);
                        ids.Remove(id);
                        storage.Put(idListKey, ids);
                    }
                }

                CustomSerializer = serialize;
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }
        }
Exemplo n.º 3
0
 public virtual void Clear()
 {
     storage.Delete(key);
     list.Clear();
 }