Example #1
0
        static void Main(string[] args)
        {
            int clienteId = 17;

            using (var contexto = new AluraTunesEntities())
            {
                var vendasPorCliente =
                    from v in contexto.ps_Itens_Por_Cliente(clienteId)
                    group v by new { v.DataNotaFiscal.Year, v.DataNotaFiscal.Month }
                into agrupado
                orderby agrupado.Key.Year, agrupado.Key.Month
                    select new
                {
                    Ano   = agrupado.Key.Year,
                    Mes   = agrupado.Key.Month,
                    Total = agrupado.Sum(a => a.Total)
                };

                foreach (var item in vendasPorCliente)
                {
                    Console.WriteLine("{0}\t{1}\t{2}", item.Ano, item.Mes, item.Total);
                }
            }

            Console.ReadKey();
        }
Example #2
0
        private static void ImprimirPagina(AluraTunesEntities contexto, int TAMANHO_PAGINA, int numeroPagina)
        {
            var query = from nf in contexto.NotaFiscais
                        orderby nf.NotaFiscalId
                        select new
            {
                Numero  = nf.NotaFiscalId,
                Data    = nf.DataNotaFiscal,
                Cliente = nf.Cliente.PrimeiroNome + " " + nf.Cliente.Sobrenome,
                Total   = nf.Total
            };
            int numeroDePulos = (numeroPagina - 1) * TAMANHO_PAGINA;

            query = query.Skip(numeroDePulos);

            query = query.Take(TAMANHO_PAGINA);

            Console.WriteLine();
            Console.WriteLine("Número da Página: {0}", numeroPagina);

            foreach (var item in query)
            {
                Console.WriteLine("{0}\t{1}\t{2}\t{3}", item.Numero, item.Data, item.Cliente.PadRight(20), item.Total);
            }
        }
Example #3
0
        protected AluraTunesEntities GetContextoComLog()
        {
            var contexto = new AluraTunesEntities();

            contexto.Database.Log = Console.WriteLine;
            return(contexto);
        }
Example #4
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var querymedia = contexto.NotasFiscais.Average(n => n.Total);

                var query = from nf in contexto.NotasFiscais
                            where nf.Total > querymedia //subconsulta
                            orderby nf.Total descending
                            select new
                {
                    Numero  = nf.NotaFiscalId,
                    Data    = nf.DataNotaFiscal,
                    Cliente = nf.Cliente.PrimeiroNome + "" + nf.Cliente.Sobrenome,
                    Valor   = nf.Total
                };

                foreach (var notafiscal in query)
                {
                    Console.WriteLine("{0}\t{1}\t{2}\t{3}", notafiscal.Numero, notafiscal.Data, notafiscal.Cliente, notafiscal.Valor);
                }

                Console.WriteLine("A média é {0}", querymedia);
            }

            Console.ReadKey();
        }
Example #5
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var faixasQuery = from f in contexto.Faixas
                                  where f.ItemNotaFiscals.Count() > 0
                                  let TotalVendas = f.ItemNotaFiscals.Sum(inf => inf.Quantidade * inf.PrecoUnitario)
                                                    orderby TotalVendas descending
                                                    select new
                {
                    f.FaixaId,
                    f.Nome,
                    Total = TotalVendas
                };

                var produtoMaisVendido = faixasQuery.First();

                Console.WriteLine("{0}\t{1}\t{2}", produtoMaisVendido.FaixaId, produtoMaisVendido.Nome, produtoMaisVendido.Total);

                var query = from inf in contexto.ItemsNotaFiscal
                            where inf.FaixaId == produtoMaisVendido.FaixaId
                            select new
                {
                    NomeCliente = inf.NotaFiscal.Cliente.PrimeiroNome + "-" + inf.NotaFiscal.Cliente.Sobrenome
                };

                foreach (var cliente in query)
                {
                    Console.WriteLine(cliente.NomeCliente);
                }

                Console.ReadKey();
            }
        }
Example #6
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var query = from g in contexto.Generos
                            select g;

                foreach (var genero in query)
                {
                    Console.WriteLine("{0}\t{1}", genero.GeneroId, genero.Nome);
                }

                var faixaEgenero = from g in contexto.Generos
                                   join f in contexto.Faixas
                                   on g.GeneroId equals f.GeneroId
                                   select new { f, g };

                faixaEgenero = faixaEgenero.Take(10);

                contexto.Database.Log = Console.WriteLine;

                Console.WriteLine();
                foreach (var item in faixaEgenero)
                {
                    Console.WriteLine("{0}\t{1}", item.f.Nome, item.g.Nome);
                }
            }

            Console.ReadKey();
        }
Example #7
0
        private static void ImprimirPagina(AluraTunesEntities contexto, int pagina)
        {
            var query = from nf in contexto.NotasFiscais
                        orderby nf.NotaFiscalId
                        select new
            {
                Numero  = nf.NotaFiscalId,
                Data    = nf.DataNotaFiscal,
                Cliente = nf.Cliente.PrimeiroNome + " " + nf.Cliente.Sobrenome,
                Total   = nf.Total
            };

            var tamanhoDoPulo = (pagina - 1) * TAMANHO_PAGINA;

            query = query.Skip(tamanhoDoPulo);

            query = query.Take(TAMANHO_PAGINA);

            Console.WriteLine();
            Console.WriteLine("Página: {0}", pagina);
            Console.WriteLine();

            foreach (var nf in query)
            {
                Console.WriteLine("{0}\t{1}\t{2}\t{3}", nf.Numero, nf.Data, nf.Cliente, nf.Total);
            }
        }
Example #8
0
        public override void Solve(string[] args)
        {
            using (var contexto = new AluraTunesEntities())// GetContextoComLog())
            {
                Console.BufferHeight = 1000;

                //var query = from art in contexto.Artistas
                //            orderby art.Nome
                //            select art;

                //foreach (var artista in query)
                //{
                //    Console.WriteLine(artista.Nome);
                //}

                //var query = from f in contexto.Faixas
                //            where f.Album.Artista.Nome == "Iron Maiden"
                //            orderby f.Nome, f.Album.Titulo
                //            select f;

                //foreach (var faixa in query)
                //{
                //    Console.WriteLine("{0}{1}", faixa.Nome.PadRight(30), faixa.Album.Titulo);
                //}

                //var query = from alb in contexto.Albums
                //            where alb.Artista.Nome == "Iron Maiden"
                //            orderby alb.Titulo
                //            select alb;

                //foreach (var album in query)
                //{
                //    Console.WriteLine(album.Titulo);
                //}

                //var query = from f in contexto.Faixas
                //            where f.Album.Artista.Nome == "Iron Maiden"
                //            //orderby f.Album.Titulo
                //            select f;

                //foreach (var faixa in query)
                //{
                //    Console.WriteLine("{0}\t{1}", faixa.Album.Titulo, faixa.Nome);
                //},

                var query = from nf in contexto.NotasFiscais
                            orderby nf.Total descending, nf.Cliente.PrimeiroNome + " " + nf.Cliente.Sobrenome
                    select new
                {
                    nf.DataNotaFiscal,
                    Cliente = nf.Cliente.PrimeiroNome + " " + nf.Cliente.Sobrenome,
                    Total   = nf.Total
                };

                foreach (var nf in query)
                {
                    Console.WriteLine("{0:dd/MM/yyyy}\t{1}\t{2}", nf.DataNotaFiscal, nf.Cliente, nf.Total);
                }
            }
        }
Example #9
0
        static void Main(string[] args)
        {
            var nomeDaMusica = "Smells Like Teen Spirit";

            using (var contexto = new AluraTunesEntities())
            {
                // Analise de Afinidade com auto relacionamento
                var faixaIds = contexto.Faixas.Where(f => f.Nome == nomeDaMusica)
                               .Select(f => f.FaixaId);

                var query = from comprouIten in contexto.ItemsNotaFiscal
                            join comprouTambem in contexto.ItemsNotaFiscal
                            on comprouIten.NotaFiscal equals comprouTambem.NotaFiscal       // self join
                            where faixaIds.Contains(comprouIten.FaixaId) &&
                            comprouIten.FaixaId != comprouTambem.FaixaId
                            select comprouTambem;

                foreach (var item in query)
                {
                    Console.WriteLine("{0}\t{1}", item.NotaFiscalId, item.Faixa.Nome);
                }
            }

            Console.ReadKey();
        }
Example #10
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var mesAniversario = 1;

                while (mesAniversario <= 12)
                {
                    Console.WriteLine("Mês: {0}", mesAniversario);

                    var lista = (from f in contexto.Funcionarios
                                 where f.DataNascimento.Value.Month == mesAniversario
                                 orderby f.DataNascimento.Value.Month, f.DataNascimento.Value.Day
                                 select f).ToList();

                    mesAniversario++;

                    foreach (var f in lista)
                    {
                        Console.WriteLine("{0:dd/MM}\t{1} {2}", f.DataNascimento, f.PrimeiroNome, f.Sobrenome);
                    }
                }
                Console.ReadKey();
            }
        }
Example #11
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                int faixaId = 1;

                Console.WriteLine("Quem comprou...");
                Console.WriteLine();

                var produtoProcurado = contexto.Faixas.Where(f => f.FaixaId == faixaId).Single();

                Console.WriteLine("{0}", produtoProcurado.Nome);
                Console.WriteLine();

                Console.WriteLine("...também comprou...");
                Console.WriteLine();

                var query =
                    from esteItem in contexto.ItemsNotaFiscal
                    join outroItem in contexto.ItemsNotaFiscal
                    on esteItem.NotaFiscalId equals outroItem.NotaFiscalId
                    where esteItem.ItemNotaFiscalId != outroItem.ItemNotaFiscalId &&
                    esteItem.FaixaId == faixaId
                    select new { esteItem, outroItem };

                Console.WriteLine("NF\tFaixa");
                foreach (var item in query)
                {
                    Console.WriteLine("{0}\t{1}", item.outroItem.NotaFiscalId, item.outroItem.Faixa.Nome);
                }
            }

            Console.ReadKey();
        }
Example #12
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var query = from f in contexto.Faixas
                            where f.Album.Artista.Nome == "Led Zeppelin"
                            select f;

                var quantidade = contexto.Faixas
                                 .Count(f => f.Album.Artista.Nome == "Led Zeppelin");

                Console.WriteLine("Led Zeppelin tem {0} faixas de música.", quantidade);

                Console.WriteLine();



                var query2 = from inf in contexto.ItensNotaFiscal
                             where inf.Faixa.Album.Artista.Nome == "Led Zeppelin"
                             select new { totalDoItem = inf.Quantidade * inf.PrecoUnitario };

                var totalDoArtista = query2.Sum(q => q.totalDoItem);

                Console.WriteLine("Total do artista: R$ {0}", totalDoArtista);

                Console.WriteLine();



                var query3 = from inf in contexto.ItensNotaFiscal
                             where inf.Faixa.Album.Artista.Nome == "Led Zeppelin"
                             group inf by inf.Faixa.Album into agrupado
                             let vendasPorAlbum = agrupado.Sum(a => a.Quantidade * a.PrecoUnitario)
                                                  orderby vendasPorAlbum
                                                  descending
                                                  select new
                {
                    TituloDoAlbum = agrupado.Key.Titulo,
                    TotalPorAlbum = vendasPorAlbum
                };

                foreach (var agrupado in query3)
                {
                    Console.WriteLine("{0}\t{1}",
                                      agrupado.TituloDoAlbum.PadRight(40),
                                      agrupado.TotalPorAlbum);
                }

                Console.WriteLine();



                contexto.Database.Log = Console.WriteLine;
            }
        }
Example #13
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var query = from g in contexto.Generos
                            select g;

                foreach (var genero in query)
                {
                    Console.WriteLine("{0}\t{1}", genero.GeneroId, genero.Nome);
                }

                var faixaEgenero = from g in contexto.Generos
                                   join f in contexto.Faixas
                                   on g.GeneroId equals f.GeneroId
                                   select new { f, g };

                faixaEgenero = faixaEgenero.Take(10);

                contexto.Database.Log = Console.WriteLine;

                Console.WriteLine();
                foreach (var item in faixaEgenero)
                {
                    Console.WriteLine("{0}\t{1}", item.f.Nome, item.g.Nome);
                }

                Console.WriteLine();

                var textoBusca = "Led";

                var query2 = from a in contexto.Artistas
                             where a.Nome.Contains(textoBusca)
                             select a;

                foreach (var artista in query2)
                {
                    Console.WriteLine("{0}\t{1}", artista.ArtistaId, artista.Nome);
                }


                var query3 = contexto.Artistas.Where(a => a.Nome.Contains(textoBusca));

                Console.WriteLine();

                foreach (var artista in query3)
                {
                    Console.WriteLine("{0}\t{1}", artista.ArtistaId, artista.Nome);
                }
            }

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var vendaMediana = Mediana(contexto.NotasFiscais.Select(ag => ag.Total));
                Console.WriteLine("Venda Mediana: R$ {0}", vendaMediana);

                vendaMediana = contexto.NotasFiscais.Mediana(ag => ag.Total);
                Console.WriteLine("Venda Mediana: R$ {0}", vendaMediana);
            }

            Console.ReadKey();
        }
        private static void GetFaixas(AluraTunesEntities contexto, string buscaArtista, string buscaAlbum)
        {
            var query = from f in contexto.Faixas
                        where f.Album.Artista.Nome.Contains(buscaArtista) &&
                        (!string.IsNullOrEmpty(buscaAlbum) ? f.Album.Titulo.Contains(buscaAlbum) : true)
                        orderby f.Album.Titulo, f.Nome
            select f;

            foreach (var faixa in query)
            {
                Console.WriteLine("{0}\t{1}", faixa.Album.Titulo.PadRight(40), faixa.Nome);
            }
        }
Example #16
0
        static void Main(string[] args)
        {
            var barcodWriter = new BarcodeWriter();

            barcodWriter.Format  = BarcodeFormat.QR_CODE;
            barcodWriter.Options = new ZXing.Common.EncodingOptions
            {
                Width  = 100,
                Height = 100
            };

            if (!Directory.Exists(Imagens))
            {
                Directory.CreateDirectory(Imagens);
            }

            using (var contexto = new AluraTunesEntities())
            {
                var queryFaixas =
                    from f in contexto.Faixas
                    select f;

                var listaFaixas = queryFaixas.ToList();

                Stopwatch stopwatch = Stopwatch.StartNew();

                var queryCodigos =
                    listaFaixas
                    .AsParallel()
                    .Select(f => new
                {
                    Arquivo = string.Format("{0}\\{1}.jpg", Imagens, f.FaixaId),
                    Imagem  = barcodWriter.Write(string.Format("aluratunes.com/faixa/{0}", f.FaixaId))
                });

                int contagem = queryCodigos.Count();

                stopwatch.Stop();

                Console.WriteLine("Códigos gerados: {0} em {1} segundos.", contagem,
                                  stopwatch.ElapsedMilliseconds / 1000.0); //2.8s //1.563 segundos


                foreach (var item in queryCodigos)
                {
                    item.Imagem.Save(item.Arquivo, ImageFormat.Jpeg);
                }
            }
        }
Example #17
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                GetFaixas(contexto, "Led Zeppelin", "");

                Console.WriteLine();

                GetFaixas(contexto, "Led Zeppelin", "Graffiti");

                Console.WriteLine();

                Console.ReadKey();
            }
        }
Example #18
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var linhasRelatorio  = contexto.NotasFiscais.Count();
                var paginasRelatorio = Math.Ceiling((double)linhasRelatorio / TAMANHO_PAGINA);

                for (var p = 1; p <= paginasRelatorio; p++)
                {
                    ImprimirPagina(contexto, p);
                }

                Console.ReadKey();
            }
        }
Example #19
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var numeroNotasFiscais = contexto.NotasFiscais.Count();
                var numeroPaginas      = Math.Ceiling((decimal)numeroNotasFiscais / TAMANHO_PAGINA);

                for (var pagina = 1; pagina <= numeroPaginas; pagina++)
                {
                    ImprimirPagina(TAMANHO_PAGINA, contexto, pagina);
                }

                Console.ReadKey();
            }
        }
Example #20
0
        public override void Solve(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                int    linhasRelatorio = contexto.NotasFiscais.Count();
                double numeroDePaginas =
                    Math.Ceiling((double)linhasRelatorio / TAMANHO_PAGINA);

                for (int p = 1; p <= numeroDePaginas; p++)
                {
                    ImprimirPagina(contexto, p);
                }

                Console.ReadKey();
            }
        }
Example #21
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var textoBusca = "Led";

                var query = from a in contexto.Artistas
                            join alb in contexto.Albums
                            on a.ArtistaId equals alb.ArtistaId
                            where a.Nome.Contains(textoBusca)
                            select new
                {
                    NomeArtista = a.Nome,
                    NomeAlbum   = alb.Titulo
                };

                foreach (var item in query)
                {
                    Console.WriteLine("{0}\t{1}", item.NomeArtista, item.NomeAlbum);
                }


                var query2 = from alb in contexto.Albums
                             where alb.Artista.Nome.Contains(textoBusca)
                             select new
                {
                    NomeArtista = alb.Artista.Nome,
                    NomeAlbum   = alb.Titulo
                };

                Console.WriteLine();

                foreach (var album in query2)
                {
                    Console.WriteLine("{0}\t{1}", album.NomeArtista, album.NomeAlbum);
                }

                GetFaixas(contexto, "Led Zeppelin", "");

                Console.WriteLine();

                GetFaixas(contexto, "Led Zeppelin", "Graffiti");

                Console.ReadKey();
            }
        }
Example #22
0
        private static void GetFaixas(AluraTunesEntities contexto, string buscarArtista, string buscaAlbum)
        {
            var queryLinqtoentitiesrefinandoconsultas = from f in contexto.Faixas
                                                        where f.Album.Artista.Nome.Contains(buscarArtista) &&
                                                        (!string.IsNullOrEmpty(buscaAlbum)
                                                        ?  f.Album.Artista.Nome.Contains(buscaAlbum)
                                                        : true)
                                                        orderby f.Album.Titulo, f.Nome
            select f;

            //if (!string.IsNullOrEmpty(buscaAlbum))
            //{
            //    queryLinqtoentitiesrefinandoconsultas = queryLinqtoentitiesrefinandoconsultas.Where(q => q.Album.Artista.Nome.Contains(buscaAlbum));
            //}

            //queryLinqtoentitiesrefinandoconsultas = queryLinqtoentitiesrefinandoconsultas.OrderBy(q => q.Album.Titulo).ThenBy(q => q.Nome);

            foreach (var faixa in queryLinqtoentitiesrefinandoconsultas)
            {
                Console.WriteLine("{0}\t{1}", faixa.Album.Titulo.PadRight(40), faixa.Nome);
            }

            Console.WriteLine();
            //1 - Linq to entities count
            Console.WriteLine("1 - Linq to entities count");

            var queryLinqtoentitiescount = from c in contexto.Faixas
                                           where c.Album.Artista.Nome == "Led Zeppelin"
                                           select c;

            // var quantidade = queryLinqtoentitiescount.Count();
            var quantidade = contexto.Faixas
                             .Count(c => c.Album.Artista.Nome == "Led Zeppelin");

            Console.WriteLine($"Led Zeppelin tem {quantidade} musicas na databse");

            Console.WriteLine();
            Console.WriteLine("Notas Fiscais");
            var queryItensNotaFiscal = from inf in contexto.ItemNotaFiscals
                                       where inf.Faixa.Album.Artista.Nome == "Led Zeppelin"
                                       select new { totaldoItem = inf.Quantidade * inf.PrecoUnitario };

            var totoalDoArtista = queryItensNotaFiscal.Sum(inf => inf.totaldoItem);

            Console.WriteLine($"Total do artista em R$ {totoalDoArtista}");
        }
Example #23
0
        public override void Solve(string[] args)
        {
            using (var contexto = new AluraTunesEntities())// GetContextoComLog())
            {
                Console.BufferHeight = 1000;

                var query = from f in contexto.Faixas
                            where f.Album.Artista.Nome == "Metallica"
                            select f;

                //Agora queremos mudar a consulta para filtrar pelos álbuns que contenham "Graffiti"
                query = query.Where(f => f.Album.Titulo.Contains("Black Album"));

                foreach (var f in query)
                {
                    Console.WriteLine("{0}\t{1}", f.Album.Titulo, f.Nome);
                }
            }
        }
Example #24
0
        public override void Solve(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                //A sintaxe de método para essa query é um pouco mais compacta que a versão anterior:
                var query = contexto.Artistas.Where(a => a.Nome.Contains("Led"));

                foreach (var artista in query)
                {
                    Console.WriteLine("{0}\t{1}", artista.ArtistaId, artista.Nome);
                }

                //P: Como sei quando usar a sintaxe de consulta ou sintaxe de método?
                //R: Ambos vão realizar a mesma tarefa. Em geral, a sintaxe de método é mais
                //apropriada para consultas pequenas, como no exemplo acima. Já em consultas complexas,
                //envolvendo múltiplas fontes de dados, a sintaxe de consulta é mais legível e deve ser
                //considerada.
            }
        }
Example #25
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var maiorVenda = contexto.NotasFiscais.Max(nf => nf.Total);
                var menorVenda = contexto.NotasFiscais.Min(nf => nf.Total);
                var vendaMedia = contexto.NotasFiscais.Average(nf => nf.Total);

                Console.WriteLine("A maior venda é de R$ {0}", maiorVenda);
                Console.WriteLine("A menor venda é de R$ {0}", menorVenda);
                Console.WriteLine("A venda média é de R$ {0}", vendaMedia);

                var vendas = (from nf in contexto.NotasFiscais
                              group nf by 1 into agrupado
                              select new
                {
                    maiorVenda = agrupado.Max(nf => nf.Total),
                    menorVenda = agrupado.Min(nf => nf.Total),
                    vendaMedia = agrupado.Average(nf => nf.Total)
                }).Single();

                Console.WriteLine("A maior venda é de R$ {0}", vendas.maiorVenda);
                Console.WriteLine("A menor venda é de R$ {0}", vendas.menorVenda);
                Console.WriteLine("A venda média é de R$ {0}", vendas.vendaMedia);



                var vendaMediana = Mediana(contexto.NotasFiscais.Select(ag => ag.Total));
                Console.WriteLine("Venda Mediana: R$ {0}", vendaMediana);

                vendaMediana = contexto.NotasFiscais.Mediana(ag => ag.Total);
                Console.WriteLine("Venda Mediana: R$ {0}", vendaMediana);
            }

            Console.ReadKey();
        }
Example #26
0
        static void Main(string[] args)
        {
            // pacotes gerar QrCode
            //Install-Package ZXing.Net
            // Adcionar nas referencias system.Drawing
            var barcodWriter = new BarcodeWriter();

            barcodWriter.Format  = BarcodeFormat.QR_CODE;
            barcodWriter.Options = new ZXing.Common.EncodingOptions
            {
                Width  = 100,
                Height = 100
            };

            if (!Directory.Exists(Imagens))
            {
                Directory.CreateDirectory(Imagens);
            }


            using (var contexto = new AluraTunesEntities())
            {
                var queryfaixas =
                    from f in contexto.Faixas
                    select f;

                var listaFaixas = queryfaixas.ToList();

                //Cronometro
                Stopwatch stopwatch = Stopwatch.StartNew();

                var queryCodigos =
                    listaFaixas
                    .AsParallel()            //usar todos os nucleos do pc
                    .Select(f => new
                {
                    Arquivo = string.Format("{0}\\{1}.jpg", Imagens, f.FaixaId),
                    Imagem  = barcodWriter.Write(string.Format("aluratunes.com/faixa/{0}", f.FaixaId))
                });

                int contagem = queryCodigos.Count();

                stopwatch.Stop();

                Console.WriteLine("Codigos Gerados: {0} em {1} segundos.", contagem, stopwatch.ElapsedMilliseconds / 1000.0);

                stopwatch = Stopwatch.StartNew();

                //foreach (var item in queryCodigos)
                //{
                //    item.Imagem.Save(item.Arquivo, ImageFormat.Jpeg);
                //}

                queryCodigos.ForAll(item => item.Imagem.Save(item.Arquivo, ImageFormat.Jpeg)); // distribui em varias trades

                stopwatch.Stop();
                Console.WriteLine("Codigos Salvos em arquivos: {0} em {1} segundos.", contagem, stopwatch.ElapsedMilliseconds / 1000.0);
            }

            Console.ReadKey();
        }
Example #27
0
        static void Main(string[] args)
        {
            #region Introdução ao link utlizando banco

            using (var contexto = new AluraTunesEntities())
            {
                //definição consulta
                var query = from g in contexto.Generos select g;

                foreach (var sla in query)
                {
                    Console.WriteLine(sla.GeneroId.ToString() + " " + sla.Nome);
                }
                //acessando dados e imprimindÕ

                Console.WriteLine( );

                var faixaegenero = from g in contexto.Generos join f in contexto.Faixas on g.GeneroId equals f.GeneroId select new { g, f };

                faixaegenero = faixaegenero.Take(10);

                contexto.Database.Log = Console.WriteLine;

                foreach (var elemento in faixaegenero)
                {
                    Console.WriteLine(elemento.f.Nome + " " + elemento.g.Nome);
                }

                Console.ReadKey();
            }

            #endregion


            #region aula 05 Linq com where



            using (var contexto = new AluraTunesEntities())
            {
                var txtBusca = "Led";

                var artistas = from b in contexto.Artistas where b.Nome.Contains(txtBusca) select b;

                foreach (var artista in artistas)
                {
                    Console.WriteLine(artista.ArtistaId + " " + artista.Nome);
                }
            }

            #endregion


            #region aula 6 mesma coisa que a aula 5 porém usando Lambda expression(sintaxe de metodo para consulta)



            using (var contexto = new AluraTunesEntities())
            {
                var artistas = contexto.Artistas.Where(a => a.Nome.Contains("Led"));

                foreach (var artista in artistas)
                {
                    Console.WriteLine(artista.ArtistaId + " " + artista.Nome);
                }
            }

            #endregion


            #region aula 7 consulta com join

            using (var contexto = new AluraTunesEntities())
            {
                var query = from art in contexto.Artistas join alb in contexto.Albums on art.ArtistaId equals alb.ArtistaId where art.Nome.Contains("Led") select new { art, alb };


                foreach (var artista in query)
                {
                    Console.WriteLine(artista.art.ArtistaId + " " + artista.art.Nome + " " + artista.alb.Titulo);
                }
            }

            #endregion


            #region Aula 8 consulta sem join

            using (var contexto = new AluraTunesEntities())
            {
                var query = from alb in contexto.Albums where alb.Artista.Nome.Contains("Led") select new { NomeArtista = alb.Artista.Nome, NomeAlbum = alb.Titulo };

                foreach (var artista in query)
                {
                    Console.WriteLine(artista.NomeArtista + " " + artista.NomeAlbum);
                }
            }

            #endregion


            #region Aula 10 consulta com orderby

            using (var contexto = new AluraTunesEntities())
            {
                var query = from art in contexto.Artistas select art;

                query = query.OrderBy(q => q.Nome).ThenBy(p => p.ArtistaId);

                foreach (var artista in query)
                {
                    Console.WriteLine(artista.ArtistaId + " " + artista.Nome);
                }
            }

            #endregion

            #region Aula 11 Count


            using (var contexto = new AluraTunesEntities())
            {
                var query = from f in contexto.Faixas where f.Album.Artista.Nome == "Led Zeppelin" select f;

                var quantidade = query.Count();

                var metodo = contexto.Faixas.Where(p => p.Album.Artista.Nome == "Led Zeppelin").Count();

                Console.WriteLine($"Led Zeppelin tem {quantidade} músicas no banco de dados.");
                Console.WriteLine();
                Console.WriteLine($"Led Zeppelin tem {metodo} músicas no banco de dados.");
            }

            #endregion

            #region Aula 12 Sum

            using (var contexto = new AluraTunesEntities())
            {
                var query = from art in context
            }

            #endregion

            Console.ReadKey();
        }
Example #28
0
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                // Definição de uma consulta
                var query = from g in contexto.Generos
                            select g;

                // imprimir no console
                ImprimirGenero(query);

                var faixaEGeneros = from g in contexto.Generos
                                    join f in contexto.Faixas
                                    on g.GeneroId equals f.GeneroId
                                    select new { f, g };

                Console.WriteLine();
                faixaEGeneros = faixaEGeneros.Take(10);
                Console.WriteLine();
                //contexto.Database.Log = Console.WriteLine; // Depurar Sql

                foreach (var faixaEGenero in faixaEGeneros)
                {
                    Console.WriteLine("{0}\t{1}", faixaEGenero.f.Nome, faixaEGenero.g.Nome);
                }


                Console.WriteLine();
                //1 - Linq to entities join

                Console.WriteLine("Linq to entities join");
                var textoBusca = "Led";

                var queryBuscar = from a in contexto.Artistas
                                  join alb in contexto.Albums
                                  on a.ArtistaId equals alb.ArtistaId
                                  where a.Nome.Contains(textoBusca)
                                  select new
                {
                    NomeArtista = a.Nome,
                    NomeAlbum   = alb.Titulo
                };

                foreach (var item in queryBuscar)
                {
                    Console.WriteLine("{0}\t{1}", item.NomeArtista, item.NomeAlbum);
                }

                Console.WriteLine();
                //2 - Linq to entities sem join

                Console.WriteLine("2 - Linq to entities sem join");

                var queryLinqtoentitiessemjoin = from alb in contexto.Albums
                                                 where alb.Artista.Nome.Contains(textoBusca)
                                                 select new
                {
                    NomeArtista = alb.Artista.Nome,
                    NomeAlbum   = alb.Titulo
                };

                foreach (var item in queryLinqtoentitiessemjoin)
                {
                    Console.WriteLine("{0}\t{1}", item.NomeArtista, item.NomeAlbum);
                }


                Console.WriteLine();
                //3 - Linq to entities refinando consultas
                Console.WriteLine("3 - Linq to entities refinando consultas");

                var buscarArtista = "Led Zeppelin";
                var buscaAlbum    = "Graffiti";

                GetFaixas(contexto, buscarArtista, buscarArtista);

                Console.WriteLine();

                Console.WriteLine("GroupBy");

                var queryGroupBy = from inf in contexto.ItemNotaFiscals
                                   where inf.Faixa.Album.Artista.Nome == "Led Zeppelin"
                                   group inf by inf.Faixa.Album into agrupado
                                   let vendasPorAlbum = agrupado.Sum(a => a.Quantidade * a.PrecoUnitario)
                                                        orderby vendasPorAlbum
                                                        descending
                                                        select new
                {
                    TituloDoAlbum = agrupado.Key.Titulo,
                    TotalPorAlbum = vendasPorAlbum
                };


                foreach (var agrupado in queryGroupBy)
                {
                    Console.WriteLine(
                        "{0}\t{1}",
                        agrupado.TituloDoAlbum.PadRight(40),
                        agrupado.TotalPorAlbum
                        );
                }

                Console.WriteLine();

                Console.WriteLine("Max");
                var contextoMax = new AluraTunesEntities();

                var maiorVenda = contextoMax.NotaFiscals.Max(nf => nf.Total);
                var menorVenda = contextoMax.NotaFiscals.Max(nf => nf.Total);
                var vendaMedia = contextoMax.NotaFiscals.Average(nf => nf.Total);

                Console.WriteLine("A menor venda é de R$ {0}", menorVenda);
                Console.WriteLine("A venda média é de R$ {0}", vendaMedia);

                Console.WriteLine("A maior venda é de R$ {0}", maiorVenda);


                Console.WriteLine("Mediana:");

                var mediana = from nf in contextoMax.NotaFiscals
                              select nf.Total;

                var contagem = mediana.Count();

                var queryordenada = mediana.OrderBy(Total => Total);

                var elementoCentral = queryordenada.Skip(contagem / 2).First();

                var medianaa = elementoCentral;

                Console.WriteLine("Mediana:{0}", medianaa);

                Console.ReadKey();
            }
        }
        static void Main(string[] args)
        {
            using (var contexto = new AluraTunesEntities())
            {
                var query = from f in contexto.Faixas
                            where f.Album.Artista.Nome == "Led Zeppelin"
                            select f;

                var quantidade = contexto.Faixas
                                 .Count(f => f.Album.Artista.Nome == "Led Zeppelin");

                Console.WriteLine("Led Zeppelin tem {0} faixas de música.", quantidade);

                Console.WriteLine();



                var query2 = from inf in contexto.ItemsNotaFiscal
                             where inf.Faixa.Album.Artista.Nome == "Led Zeppelin"
                             select new { totalDoItem = inf.Quantidade * inf.PrecoUnitario };

                var totalDoArtista = query2.Sum(q => q.totalDoItem);

                Console.WriteLine("Total do artista: R$ {0}", totalDoArtista);

                Console.WriteLine();



                var query3 = from inf in contexto.ItemsNotaFiscal
                             where inf.Faixa.Album.Artista.Nome == "Led Zeppelin"
                             group inf by inf.Faixa.Album into agrupado
                             let vendasPorAlbum = agrupado.Sum(a => a.Quantidade * a.PrecoUnitario)
                                                  orderby vendasPorAlbum
                                                  descending
                                                  select new
                {
                    TituloDoAlbum = agrupado.Key.Titulo,
                    TotalPorAlbum = vendasPorAlbum
                };

                foreach (var agrupado in query3)
                {
                    Console.WriteLine("{0}\t{1}",
                                      agrupado.TituloDoAlbum.PadRight(40),
                                      agrupado.TotalPorAlbum);
                }

                Console.WriteLine();



                contexto.Database.Log = Console.WriteLine;

                var maiorVenda = contexto.NotasFiscais.Max(nf => nf.Total);
                var menorVenda = contexto.NotasFiscais.Min(nf => nf.Total);
                var vendaMedia = contexto.NotasFiscais.Average(nf => nf.Total);

                Console.WriteLine("A maior venda é de R$ {0}", maiorVenda);
                Console.WriteLine("A menor venda é de R$ {0}", menorVenda);
                Console.WriteLine("A venda média é de R$ {0}", vendaMedia);

                var vendas = (from nf in contexto.NotasFiscais
                              group nf by 1 into agrupado
                              select new
                {
                    maiorVenda = agrupado.Max(nf => nf.Total),
                    menorVenda = agrupado.Min(nf => nf.Total),
                    vendaMedia = agrupado.Average(nf => nf.Total)
                }).Single();

                Console.WriteLine("A maior venda é de R$ {0} Total", vendas.maiorVenda);
                Console.WriteLine("A menor venda é de R$ {0} Total", vendas.menorVenda);
                Console.WriteLine("A venda média é de R$ {0} Total", vendas.vendaMedia);



                Console.ReadKey();
            }
        }
Example #30
0
        public override void Solve(string[] args)
        {
            //Já vimos Linq to Objects e Linq to XML. Vamos ver como acessar dados do Sql Server através
            //do Entity Framework.

            //Agora vamos criar um banco de dados SQL Server vazio e colocá-lo dentro da nossa aplicação.
            //No mundo real é aconselhável manter esse banco de dados num servidor SQL Server separado e dedicado, mas
            //para as nossas aulas vamos colocar o banco dentro do projeto.

            //Com esse banco SQL criado, vamos rodar agora um script que vai criar todo o modelo (tabelas, colunas,
            //chaves primárias, chaves estrangeiras, etc). Criamos uma nova query e copiamos o script. Agora rodamos
            //esse script no banco de dados: (BATER PALMA E PEDIR PRA ACELERAR)

            //Agora que o script rodou com sucesso, podemos ver que os objetos foram criados como esperado

            //MOSTRAR TABELAS E COLUNAS QUE FORAM CRIADAS

            //Apenas para conferir as informações, vamos ver quais os gêneros o nosso banco de dados contém

            //FAZER UMA QUERY E BUSCAR DADOS DE GENEROS

            //Veja como o script populou os dados de gêneros musicais...

            //FAZER UMA QUERY E BUSCAR DADOS DE FAIXAS DE MÚSICAS

            //Veja como o script populou os dados de faixas de músicas...

            //Agora que o nosso banco de dados está pronto pra ser usado, vamos criar o nosso modelo de entidades
            //com o Entity Framework.
            //  - Add > New Item > Data > EF 6.x DbContext Generator

            //PEDIR PRA ACELERAR

            //COMEÇAR UMA CLASSE VAZIA

            //É verdade que o Linq é muito poderoso, pelo que já vimos isso em Linq to Objects (Linq para Objetos) e o Linq to XML (Linq para XML).
            //Mas e quanto ao Entity Framework? Linq to Entities (ou Linq para Entidades) formam o casal perfeito. Não é possível utilizar
            //todo o potencial do Entity Framework sem conhecer o Linq to Entities.

            //Nosso cliente pediu para criarmos uma listagem com as faixas de música e os respectivos gêneros, como já
            //fizemos anteriormente com Linq to Objects e Linq to XML, mas dessa vez teremos que acessar o banco de dados através do EF.

            //Mas como utilizamos o Linq to Entities? Primeiro, precisamos instanciar o CONTEXTO do Entity Framework, como já sabemos:

            using (var contexto = new AluraTunesEntities())
            {
                //aqui vai a definição da query

                //aqui vai o código para exibir os dados
            }

            //Agora a ideia é encaixamos nosso código dentro do bloco using desse contexto, da seguinte forma:

            using (var contexto = new AluraTunesEntities())
            {
                //Cada entidade do Entity Framework é um objeto da classe DBSet<T>, que por sua vez implementa
                //a interface IEnumerable. Toda classe IEnumerable pode ser usada como fonte de dados do Linq.

                //Vamos começar nossa consulta de forma bem simples, listando apenas os gêneros.

                var generoQuery =
                    from g in contexto.Generos
                    select g;

                Console.WriteLine();
                foreach (var genero in generoQuery)
                {
                    Console.WriteLine("{0}\t{1}", genero.GeneroId, genero.Nome);
                }

                //Perceba que até agora tínhamos visto como usar o Linq para acessar objetos em memória
                //e dados de arquivos XML. Mas agora o resultado que estamos vendo é o retrato da tabela
                //Generos do banco de dados, só que acessada através da entidade Generos do Entity Framework. Mas
                //e se quisermos trazer também as faixas de música na nossa consulta?

                var query = from f in contexto.Faixas
                            join g in contexto.Generos
                            on f.GeneroId equals g.GeneroId
                            select new
                {
                    FaixaId = f.FaixaId,
                    Nome    = f.Nome,
                    Genero  = g.Nome
                };

                //Agora obtemos os valores da nossa query:
                foreach (var faixaEgenero in query)
                {
                    Console.WriteLine("{0}\t{1}\t{2}",
                                      faixaEgenero.FaixaId,
                                      faixaEgenero.Nome,
                                      faixaEgenero.Genero);
                }
                Console.WriteLine();

                //PALMAS - ACELERAR ESSA PARTE POR FAVOR

                //P: Essa consulta retornou um número enorme de linhas na tela. Eu só precisava de 10 linhas. O que faço?
                //R: Nesse caso precisamos utilizar o método Take, que irá exibir somente os 10 primeiros elementos da consulta:

                query = query.Take(10);
                foreach (var faixaGenero in query)
                {
                    Console.WriteLine("{0}\t{1}\t{2}",
                                      faixaGenero.FaixaId,
                                      faixaGenero.Nome,
                                      faixaGenero.Genero);
                }

                //P: Agora mostrou somente os 10 primeiros elementos, mas não é ineficiente o método Take trazer
                // do banco de dados milhares de linhas e filtrar em memória?
                //R: Mas não foi isso que aconteceu. O método Take não executou a consulta. Ele não acessou dados. Ele apenas a redefiniu.
                //  O que acontece é que criar uma definição de consulta é diferente de executar essa consulta. No final
                //  das contas, o Linq gera uma consulta SQL Server que diz ao banco de dados para trazer somente 10 elementos.

                //P: Mas o que estamos fazendo já não é um script de query SQL? Pensei que era pra isso que existia
                //  consulta em Linq to Entities.
                //R: Não. O que estamos fazendo é uma query em Linq, usando código C#, e não uma consulta SQL.
                //  Essa query Linq é TRADUZIDA internamente para uma consulta SQL Server, e enviada para o banco de
                //  dados.

                //É meio frustrante não saber exatamente o que está sendo enviado para o banco de dados. Nâo seria bom
                //se pudéssemos VER a consulta Sql Server que está sendo emitida?

                //Felizmente, existe uma maneira simples de fazer isso. Basta adicionar a sequinte linha após
                //a declaração da variável contexto. Mostrará não só a consulta SQL gerada, como também
                //logs de erros e alertas do banco de dados:

                contexto.Database.Log = Console.WriteLine;

                //Agora varremos novamente nossa consulta e vemos o script SQL que é gerado no console
                foreach (var faixaGenero in query)
                {
                    Console.WriteLine("{0}\t{1}\t{2}",
                                      faixaGenero.FaixaId,
                                      faixaGenero.Nome,
                                      faixaGenero.Genero);
                }

                //Então é isso.Nesse vídeo aprendemos a criar uma consulta simples
                //trazendo apenas os gêneros e uma consulta um pouco mais complexa
                //combinando dados de faixas de músicas e gêneros musicais, e a limitar
                //o número de linhas do resultado.

                //Aprendemos que todo objeto que implementa interface IEnumerable pode ser usado
                //como fonte de dados numa consulta Linq.Também aprendemos a diferenciar uma definição
                //de consulta da execução da consulta
                //No final, aprendemos também a visualizar a consulta SQL gerada a partir da consulta Linq.

                //A seguir, vamos aprender como consultar um artista pelo nome.
                //Espero que vocês tenham gostado do vídeo! Obrigado e até à próxima!
            }
        }