Ejemplo n.º 1
0
        public async Task <IEnumerable <ProductViewModel> > GetProductsAsync(IProductCallback productCallback = null)
        {
            var productsDto = await _marketplaceApi.GetProductsAsync();

            var favorites = await _favoriteDAO.GetAllAsync();

            var viewModelCollection = productsDto.Select(p =>
                                                         ProductMappings.FromDtoToViewModel.ProjectWith((vm) => CustomProjection(vm, productCallback, favorites), p));

            return(viewModelCollection);
        }
Ejemplo n.º 2
0
        public async Task <IEnumerable <CategoryViewModel> > GetCategoriesAsync(IProductCallback productCallback = null)
        {
            var categoryDtoCollection = await _marketplaceApi.GetCategoriesAsync();

            var categoryCollection = categoryDtoCollection.Select(c => CategoryMappings.FromDtoToViewModel.Project(c));
            var productColletion   = await GetProductsAsync(productCallback);

            var offerDtoCollecion = await _marketplaceApi.GetOffersAsync();

            categoryCollection = categoryCollection.Foreach(c =>
                                                            ComplementViewModel(c, productColletion, offerDtoCollecion));

            return(categoryCollection);
        }
Ejemplo n.º 3
0
 private static ProductViewModel CustomProjection(ProductViewModel vm,
                                                  IProductCallback productCallback, IEnumerable <Favorite> favorites)
 {
     vm.IsFavorite = favorites.Any(f => f.Id == vm.Id);
     return(vm.RegisterCallback(productCallback));
 }