public ActionResult Index() { var resultCategories = this.indexService.GetTopCategories().To<HomeCategoryDTO>().ToList(); var resultProducts = this.indexService.GetTopProducts().Select(p => new HomeProductDTO { Id = p.Id, CategoryName = p.Category.Name, FileName = p.Images.AsQueryable().Where(i => i.ProductId == p.Id).FirstOrDefault().FileName, Price = p.Price, Title = p.Title, Discount = p.Discount }); //this.indexService.GetTopProducts().To<HomeProductDTO>().ToList(); var resultDTO = new HomePageDTO { categories = resultCategories, products = resultProducts }; return View(resultDTO); }
public HomePageDTO GetHomePage() { IEnumerable <Product> products = _dbContext.Products.Include(p => p.Page).Include(p => p.MainImage).OrderByDescending(p => p.DateAdded).Take(8); IMapper mapper = new MapperConfiguration(cfg => { cfg.CreateMap <Product, ProductPageDTO>() .ForMember(prodDTO => prodDTO.Alias, opt => opt.MapFrom(p => p.Page.Alias)); cfg.CreateMap <Image, ImageDTO>(); }).CreateMapper(); IEnumerable <ProductPageDTO> productsDTO = mapper.Map <IEnumerable <ProductPageDTO> >(products); HomePageDTO homePage = new HomePageDTO { Products = productsDTO, Title = "Главная" }; return(homePage); }
public async Task <ActionResult <HomePageDTO> > Get() { var limite = 3; var peliculasEnCartelera = await context.Movies .Where(x => x.EnCartelera).Take(limite) .OrderByDescending(x => x.ReleaseDate) .ToListAsync(); var fechaActual = DateTime.Today; var proximosEstrenos = await context.Movies .Where(x => x.ReleaseDate > fechaActual) .OrderBy(x => x.ReleaseDate).Take(limite) .ToListAsync(); var response = new HomePageDTO() { PeliculasEnCartelera = peliculasEnCartelera, ProximosEstrenos = proximosEstrenos }; return(response); }
public async Task <IActionResult> Index() { var statisticsForHome = await statisticsService.GetStatisticsDetails(); var browserTable = await statisticsService.getBrowserTable(); var osTable = await statisticsService.GetOsTable(); var referrer = await statisticsService.GetReferrer(); var pageView = await statisticsService.GetPageViewDetails(); var homeDetails = new HomePageDTO { Statistics = statisticsForHome, BrowserTables = browserTable, osTables = osTable, pageViews = pageView, referrers = referrer, }; return(View(homeDetails)); }
public async Task <ActionResult <HomePageDTO> > Get() { var limit = 6; var today = DateTime.Today; var filmsOnBillboard = await _context.Films .Where(x => x.OnBillboard) .Take(limit) .OrderByDescending(x => x.ReleaseDate) .ToListAsync(); var upcomingReleases = await _context.Films .Where(x => x.ReleaseDate > today) .OrderBy(x => x.ReleaseDate) .Take(limit) .ToListAsync(); var response = new HomePageDTO() { FilmsOnBillboard = filmsOnBillboard, UpcomingReleases = upcomingReleases }; return(response); }
/// <summary> /// Return Main Page DTO from analytics to get trending products /// </summary> /// <returns></returns> public static HomePageDTO HomePageProducts() { try { HomePageDTO homePageDTO = new HomePageDTO(); var OrderedList = TopProductsData.GetTopProducts().Products.OrderBy(x => x.Category.Id).ThenByDescending(cat => cat.TotalQuantitySale).ToList(); for (int j = 0; j < Constants.TotalCategories; j++) { TrendingDTO category = new TrendingDTO() { Category = OrderedList[j * (5)].Category, Rank = j + 1 }; List <ProductDTO> temp = new List <ProductDTO>(); for (int i = 0; i < Constants.ProductsToDisplay; i++) { temp.Add(OrderedList[(j * 5) + i]); } var sortedProducts = temp.OrderByDescending(x => x.TotalQuantitySale).ToList(); ProductsDTO pt = new ProductsDTO(); for (int i = 0; i < Constants.ProductsToDisplay; i++) { pt.Products.Add(sortedProducts[i]); } category.TopProducts.Add(pt); homePageDTO.Trending.Add(category); } return(homePageDTO); } catch { return(null); } }
public ActionResult Index() { HomePageDTO td = TopProductsLogic.HomePageProducts(); return(View(td)); }
public async Task <ActionResult <HomePageDTO> > Get(bool entregarapida, bool entregaprogramada) { //usuario var user = await userManager.FindByEmailAsync(HttpContext.User.Identity.Name); //coordenadas del usuario double latitudusario = user.Latitude; double longitudsario = user.Longitude; //lista de productos inicial List <ProductoMercado> productosgenerales = new List <ProductoMercado>(); //valores de la lista var queryablemer = context.Mercados.AsQueryable(); var mercadoDB = await queryablemer.ToListAsync(); var queryablepromer = context.ProductosMercados.AsQueryable(); var productomercadoDB = await queryablepromer.ToListAsync(); var queryablepro = context.Productos.AsQueryable(); var productoDB = await queryablepromer.ToListAsync(); //metodo de seleccion foreach (var mer in mercadoDB) { var usuario = await userManager.FindByIdAsync(mer.UserId); double latitudmer = usuario.Latitude; double longitudmer = usuario.Longitude; //double latitudmer = mer.User.Latitude; //double longitudmer = mer.User.Longitude; double constante = Math.PI / 180; double radiotierra = 6371; double angulolatitud = (latitudusario - latitudmer) * constante / 2; double angulolongitud = (longitudsario - longitudmer) * constante / 2; //prueba de seno cuadrado //double sin2x = 0.5 - 0.5 * Math.Cos(angulolatitud*2); //double sin2y = 0.5 + 0.5 * Math.Cos(angulolatitud * 2); double cosu = Math.Cos(latitudusario * constante); double cosm = Math.Cos(latitudmer * constante); double sin2x = Math.Pow(angulolatitud, 2); double sin2y = Math.Pow(angulolongitud, 2); double distancia = Math.Sqrt(sin2x + cosu * cosm * sin2y); distancia = Math.Asin(distancia) * 2; distancia = distancia * radiotierra * 1000; if (distancia <= 700) //FIX!!! { foreach (var promer in productomercadoDB) { if (mer.Id == promer.MercadoId) { var producto = await context.Productos.FirstOrDefaultAsync(x => x.Id == promer.ProductoId); if (producto.estado == true) { if (promer.Stock > 0) { /*int idpro = promer.ProductoId; * var prod = await context.Productos.FirstAsync(x => x.Id == idpro);*/ productosgenerales.Add(promer); } } } } } } //lista especifica de productos segun la orden List <Producto> productosespecificos = new List <Producto>(); List <ProductoMercado> productosmercadosespecificos = new List <ProductoMercado>(); //clacificacion por orden foreach (var pro in productosgenerales) { var prod = await context.Productos.FirstOrDefaultAsync(x => x.Id == pro.ProductoId); pro.Producto = prod; if (Boolean.Equals(entregarapida, prod.EntregaRapida)) { productosespecificos.Add(prod); productosmercadosespecificos.Add(pro); } else if (Boolean.Equals(entregaprogramada, prod.EntregaProgramada)) { productosespecificos.Add(prod); productosmercadosespecificos.Add(pro); } } var response = new HomePageDTO() //Inicializamos el modelo { ProductosEnvioRapido = productosespecificos, //Asignamos los productos de Envio Rapido al modelo ProductosMercadoEnvioRapido = productosmercadosespecificos, ProductosEnvioProg = productosespecificos, //Asignamos los productos de Envio programado al modelo ProductosMercadoEnvioProg = productosmercadosespecificos }; return(response); }