Ejemplo n.º 1
0
        static int ItemIDStateReducer(int state, object action)
        {
            if (action is AddItemAction)
            {
                AddItemAction addAction = (AddItemAction)action;
                state++;
                cacheItems.Add(new Item(state, addAction.item, false));
            }

            if (action is LoadedItemsAction)
            {
                LoadedItemsAction _action = (LoadedItemsAction)action;
                state = _action.nextId;
            }

            return(state);
        }
Ejemplo n.º 2
0
        static IList <Item> ItemsStateReducer(IList <Item> state, object action)
        {
            if (action is RemoveItemAction)
            {
                RemoveItemAction _action = (RemoveItemAction)action;
                cacheItems.Remove(_action.item);
                return(new ReadOnlyCollection <Item>(cacheItems));
            }

            if (action is RemoveItemsAction)
            {
                cacheItems.Clear();
                return(new ReadOnlyCollection <Item>(cacheItems));
            }

            if (action is LoadedItemsAction)
            {
                cacheItems.Clear();
                LoadedItemsAction _action = (LoadedItemsAction)action;
                cacheItems.AddRange(_action.items);
                return(new ReadOnlyCollection <Item>(cacheItems));
            }

            if (action is ItemCompletedAction)
            {
                ItemCompletedAction _action = (ItemCompletedAction)action;
                for (var i = 0; i < cacheItems.Count; i++)
                {
                    if (cacheItems[i].id == _action.item.id)
                    {
                        Item item = cacheItems[i];
                        cacheItems[i] = new Item(item.id, item.body, !item.completed);
                        break;
                    }
                }

                return(new ReadOnlyCollection <Item>(cacheItems));
            }

            return(state);
        }