Ejemplo n.º 1
0
        async Task <ComicsItem> GetLatestComicFromFeedAsync(ComicsFeed comicsFeed)
        {
            var cachedItem = memoryCache.TryGetValue <ComicsItem>(comicsFeed.Name);

            if (cachedItem.hit)
            {
                return(cachedItem.value);
            }

            var feed = await feedReaderClient.ReadAsync(comicsFeed.URL);

            var firstItem = feed.Items.FirstOrDefault();

            if (firstItem == null)
            {
                return(new ComicsItem());
            }

            var comic = new ComicsItem(firstItem);

            comicsFeed.LastPublished = comic.PublicationDate;
            var cacheEntryOptions = new MemoryCacheEntryOptions()
                                    .SetAbsoluteExpiration(TimeSpan.FromHours(6));

            memoryCache.Set(comicsFeed.Name, comic, cacheEntryOptions);
            return(comic);
        }
Ejemplo n.º 2
0
        /**
         * 在resource文件夹下找到对应name的prefab并将其添加到对应的parent底下
         */
        private ComicsItem instaniateItem(Transform parent, Sprite sprite, int index)
        {
            var        temp = LoadManager.single.loadAndInstaniate(Constant.COMICS_ITEM_PATH, parent);
            ComicsItem item = temp.AddComponent <ComicsItem>();

            item.init(sprite, index);
            return(item);
        }
Ejemplo n.º 3
0
        private IEnumerable <ComicsItem> GerarComicsItem(Comics comics)
        {
            ComicsItem item = new ComicsItem
            {
                Comics      = comics,
                ComicsId    = comics.Id,
                Id          = GerarNumero(),
                Name        = GerarTexto(),
                ResourceURI = GerarTexto()
            };

            return(new List <ComicsItem> {
                item
            });
        }
Ejemplo n.º 4
0
        private ComicsItem moveStack(ComicsParentId id)
        {
            ComicsItem currentItem = getCurrentItem();
            ComicsItem returnItem  = null;

            switch (id)
            {
            case ComicsParentId.LeftComics:
                _leftStack.Push(currentItem);
                returnItem = _rightStack.Pop();
                break;

            case ComicsParentId.RightComics:
                _rightStack.Push(currentItem);
                returnItem = _leftStack.Pop();
                break;
            }

            currentItem.moveToParent(_parentDic[id]);
            returnItem.moveToParent(_parentDic[ComicsParentId.CurrentComics]);
            return(returnItem);
        }
Ejemplo n.º 5
0
 private void resetRightStack(ComicsItem temp)
 {
     temp.setParentAndPos(_parentDic[ComicsParentId.RightComics]);
     _rightStack.Push(temp);
 }