public DetalhesProdutoDto ObterProdutoPorCodigo(string codigo, string corCodigo, string tamanho) { var query = from p in _context.QuironProdutos join c in _context.Cores on p.CorCodigo equals c.CorCodigo join t in _context.Tamanhos on p.TamanhoCodigo equals t.TamanhoCodigo join e in _context.Estoque on p.ProdutoCodigo equals e.ProdutoCodigo where p.ProdutoModeloCodigo == codigo && e.Quantidade > 0 select new { p.ProdutoModeloCodigo, p.ProdutoCodigo, p.ProdutoDescricao, p.ProdutoDescricaoResumida, p.MarcaDescricao, p.ModeloDescricao, c.CorCodigo, c.CorDescricao, t.TamanhoCodigo, t.TamanhoDescricaoResumida, e.Quantidade, p.Preco }; var cores = (from q in query select new { q.CorCodigo, q.CorDescricao, }).Distinct(); var cor = cores.First(); var tamanhos = (from q in query join c in cores on q.CorCodigo equals c.CorCodigo where q.CorCodigo == cor.CorCodigo select new { q.TamanhoCodigo, q.TamanhoDescricaoResumida }); var produto = (from q in query where q.CorCodigo == corCodigo && q.TamanhoCodigo == tamanho select q).First(); DetalhesProdutoDto dto = new DetalhesProdutoDto { Produto = Mapper.DynamicMap <QuironProduto>(produto), Cores = cores.Select(Mapper.DynamicMap <Cor>), Tamanhos = tamanhos.Select(Mapper.DynamicMap <Tamanho>) }; return(dto); }
public DetalhesProdutoDto ObterProdutoModelo(string codigo, string corCodigo) { var query = from p in _context.QuironProdutos join c in _context.Cores on p.CorCodigo equals c.CorCodigo join t in _context.Tamanhos on p.TamanhoCodigo equals t.TamanhoCodigo join e in _context.Estoque on p.ProdutoCodigo equals e.ProdutoCodigo where p.ProdutoModeloCodigo == codigo && e.Quantidade > 0 select new { p.ProdutoModeloCodigo, p.ProdutoCodigo, p.ProdutoDescricao, p.ProdutoDescricaoResumida, p.MarcaDescricao, p.ModeloDescricao, c.CorCodigo, c.CorDescricao, t.TamanhoCodigo, t.TamanhoDescricaoResumida, e.Quantidade, p.Preco }; var cores = (from q in query select new { q.CorCodigo, q.CorDescricao, }).Distinct(); var cor = cores.First(); var tamanhos = (from q in query join c in cores on q.CorCodigo equals c.CorCodigo where q.CorCodigo == cor.CorCodigo select new { q.TamanhoCodigo, q.TamanhoDescricaoResumida }); var produto = (from q in query where q.CorCodigo == corCodigo select q).First(); var config = new MapperConfiguration(cfg => { cfg.CreateMissingTypeMaps = true; cfg.CreateMap <QuironProduto, Produto>().ReverseMap(); }); var mapper = config.CreateMapper(); DetalhesProdutoDto dto = new DetalhesProdutoDto { Produto = mapper.Map <QuironProduto>(produto), Cores = cores.Select(Mapper.Map <Cor>), Tamanhos = tamanhos.Select(Mapper.Map <Tamanho>) }; return(dto); }