// Private methods

        private async Task LoadData(string filter = null, int limit = 0, int offset = 0)
        {
            var result = await _marvelService.GetCharacters(filter, limit, offset);

            if (result != null)
            {
                var characters = (from p in result.Results
                                  select new CharacterItemViewModel()
                {
                    Id = p.Id,
                    Name = p.Name,
                    Thumbnail = p.Thumbnail.Path + "." + p.Thumbnail.Extension,
                    Description = p.Description
                });

                //// Inform our collection
                if (characters.Any())
                {
                    // Solo añadimos los que no están en la collección
                    Characters = new ReactiveList <CharacterItemViewModel>(characters);
                }
                else
                {
                    Characters = new ReactiveList <CharacterItemViewModel>();
                }
            }
        }
        //bool CanExecuteSearchByNameCommand()
        //{
        //	// Condición para poder ejecutar el commando
        //	return SearchText?.Length > 0;
        //}

        #endregion

        #region LoadData

        private async Task LoadData(string filter = null, int limit = 0, int offset = 0)
        {
            IsBusy = true;

            var result = await _marvelService.GetCharacters(filter, limit, offset);


            if (result != null)
            {
                CharacterList = (from p in result.Results
                                 select new CharacterItemViewModel()
                {
                    Id = p.Id,
                    Name = p.Name,
                    Thumbnail = p.Thumbnail.Path + "." + p.Thumbnail.Extension,
                    Description = p.Description
                }).ToList();
            }

            IsBusy = false;
        }
        public async Task LoadData(string filter = null, int limit = 0, int offset = 0)
        {
            IsBusy = true;

            var cache            = Akavache.BlobCache.LocalMachine;
            var cachedCharacters = cache.GetAndFetchLatest("CharacterList" + filter, () => _marvelService.GetCharacters(filter, limit, offset),
                                                           ofset =>
            {
                TimeSpan elapsed = DateTimeOffset.Now - ofset;
                return(elapsed > new TimeSpan(hours: 0, minutes: 10, seconds: 0));
            });

            var result = await cachedCharacters.FirstOrDefaultAsync();

            //var result =  await _marvelService.GetCharacters(filter, limit, offset);


            if (result != null)
            {
                CharacterList = (from p in result.Results
                                 select new CharacterItemViewModel()
                {
                    Id = p.Id,
                    Name = p.Name,
                    Description = p.Description
                }).ToList();
            }

            IsBusy = false;
        }