Ejemplo n.º 1
0
        public async Task InjectCats()
        {
            string body = await LoadCatsFromApi().ConfigureAwait(false);

            CatsEpResponse      catsFromEndPoint = JsonConvert.DeserializeObject <CatsEpResponse>(body);
            IEnumerable <CatEp> newCats          = FilterCatsInBase(catsFromEndPoint);

            await Context.AddRangeAsync(newCats.ToCatModels()).ConfigureAwait(false);

            await Context.SaveChangesAsync().ConfigureAwait(false);
        }
Ejemplo n.º 2
0
        private IEnumerable <CatEp> FilterCatsInBase(CatsEpResponse catsFromEndPoint)
        {
            IEnumerable <string> catUrls = catsFromEndPoint.Images.Select(e => e.Url);

            if (Context.Cats.Count() > 0)
            {
                IDictionary <string, int> exclusionMap = Context.Cats.Where(cat => catUrls.Contains(cat.ImageLink)).ToDictionary(c => c.ImageLink, c => c.Id);
                IEnumerable <CatEp>       newCats      = catsFromEndPoint.Images.Where(cat => !exclusionMap.ContainsKey(cat.Url));
                return(newCats);
            }
            else
            {
                return(catsFromEndPoint.Images);
            }
        }
Ejemplo n.º 3
0
 public static IEnumerable <Cat> ToCatModels(this CatsEpResponse response)
 {
     return(response.Images.ToCatModels());
 }