예제 #1
0
        static void IncluiBebidasEPromocao()
        {
            using (var contexto = new LojaContext())
            {
                var produto1 = new Produto()
                {
                    Categoria     = "Bebida",
                    Nome          = "Refrigerante",
                    PrecoUnitario = 4.5,
                    Unidade       = 1
                };
                var produto2 = new Produto()
                {
                    Categoria     = "Enlatado",
                    Nome          = "Atum",
                    PrecoUnitario = 6,
                    Unidade       = 1
                };
                var produto3 = new Produto()
                {
                    Categoria     = "Bebida",
                    Nome          = "Suco",
                    PrecoUnitario = 4.3,
                    Unidade       = 1
                };
                var produto4 = new Produto()
                {
                    Categoria     = "Bebida",
                    Nome          = "Vodka",
                    PrecoUnitario = 13,
                    Unidade       = 1
                };

                contexto.Produtos.Add(produto1);
                contexto.Produtos.Add(produto2);
                contexto.Produtos.Add(produto3);
                contexto.Produtos.Add(produto4);

                contexto.SaveChanges();

                var promocao = new Promocao();
                promocao.Descricao   = "Qeima Total Janeiro 2017";
                promocao.DataInicio  = new DateTime(2021, 1, 1);
                promocao.DataTermino = new DateTime(2021, 1, 31);

                var produtos = contexto.Produtos.Where(p => p.Categoria == "Bebida").ToList();

                foreach (var produto in produtos)
                {
                    promocao.IncluiProduto(produto);
                }

                contexto.Promocoes.Add(promocao);

                contexto.SaveChanges();
            }
        }
예제 #2
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome = "Suco de Laranja", Categoria = "Bebidas", PrecoUnitario = 8.79, Unidade = "Litros"
            };
            var p2 = new Produto()
            {
                Nome = "Café", Categoria = "Bebidas", PrecoUnitario = 12.00, Unidade = "Gramas"
            };
            var p3 = new Produto()
            {
                Nome = "Macarrão", Categoria = "Alimentos", PrecoUnitario = 6.40, Unidade = "Kilos"
            };

            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            // compra de 6 pães franceses
            //var paoFrances = new Produto();
            //paoFrances.Nome = "Pão Francês";
            //paoFrances.PrecoUnitario = 0.40;
            //paoFrances.Unidade = "Unidade";
            //paoFrances.Categoria = "Alimento";

            //var compra = new Compra();
            //compra.Quantidade = 6;
            //compra.Produto = paoFrances;
            //compra.Preco = paoFrances.PrecoUnitario * compra.Quantidade;

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                //contexto.Compras.Add(compra);
                //contexto.Promocoes.Add(promocaoDePascoa);
                var promocao = contexto.Promocoes.Find(1); // id 1 na Promocoes table.
                contexto.Promocoes.Remove(promocao);

                //ExibeEntries(contexto.ChangeTracker.Entries());

                contexto.SaveChanges();
            }
        }
예제 #3
0
        public static void Main(string[] args)
        {
            //var paoFrances = new Produto();
            //paoFrances.Categoria = "Padaria";
            //paoFrances.Nome = "Pão Frances";
            //paoFrances.PrecoUnitario = 0.33;
            //paoFrances.Unidade = "Unidade";

            //var compra = new Compra();
            //compra.Quantidade = 6;
            //compra.Produto = paoFrances;
            //compra.Preco = paoFrances.PrecoUnitario * compra.Quantidade;

            var produto1 = new Produto()
            {
                Nome = "Batata", Categoria = "Vegetal", PrecoUnitario = 1.55, Unidade = "Kilo"
            };
            var produto2 = new Produto()
            {
                Nome = "Alho", Categoria = "Vegetal", PrecoUnitario = 1.25, Unidade = "gramas"
            };
            var produto3 = new Produto()
            {
                Nome = "Cebola", Categoria = "Vegetal", PrecoUnitario = 1.90, Unidade = "gramas"
            };

            var promocaoPascoa = new Promocao();

            promocaoPascoa.Descricao   = "Pascoa Feliz";
            promocaoPascoa.DataInicio  = DateTime.Now;
            promocaoPascoa.DataTermino = DateTime.Now.AddMonths(4);


            promocaoPascoa.IncluiProduto(produto1);



            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                contexto.Promocoes.Add(promocaoPascoa);
                contexto.SaveChanges();

                //contexto.Compras.Add(compra);
                ExibeEntries(contexto.ChangeTracker.Entries());
                contexto.SaveChanges();
                Console.ReadLine();
            }
        }
예제 #4
0
        private static void NParaN()
        {
            var promocao = new Promocao();

            promocao.Descricao   = "Páscoa Feliz";
            promocao.DataInicial = DateTime.Now;
            promocao.DataFinal   = DateTime.Now.AddMonths(3);
            var p1 = new Produto()
            {
                Nome          = "Barra de Chocolate",
                Categoria     = "Alimento",
                PrecoUnitario = 5.0,
                Unidade       = "gramas"
            };

            var p2 = new Produto()
            {
                Nome          = "Boneca Bebê",
                Categoria     = "Brinquedo",
                PrecoUnitario = 89.90,
                Unidade       = "Unidade"
            };

            var p3 = new Produto()
            {
                Nome          = "Ovo de Páscoa",
                Categoria     = "Alimento",
                PrecoUnitario = 35.0,
                Unidade       = "gramas"
            };

            promocao.IncluiProduto(p1);
            promocao.IncluiProduto(p2);
            promocao.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                var entries = contexto.ChangeTracker.Entries();

                var promo = contexto.Promocoes.First();
                ImprimeEstados(entries);
                contexto.Remove(promo);
                ImprimeEstados(entries);
                contexto.SaveChanges();
                ImprimeEstados(entries);
            }
        }
예제 #5
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto
            {
                Nome          = "Suco de Laranja",
                Categoria     = "Bebidas",
                PrecoUnitario = 8.79,
                Unidade       = "Litros"
            };

            var p2 = new Produto
            {
                Nome          = "Café",
                Categoria     = "Bebidas",
                PrecoUnitario = 12.45,
                Unidade       = "Gramas"
            };

            var p3 = new Produto
            {
                Nome          = "Macarrão",
                Categoria     = "Alimentos",
                PrecoUnitario = 4.23,
                Unidade       = "Gramas"
            };

            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                // contexto.Promocoes.Add(promocaoDePascoa);

                var promocao = contexto.Promocoes.First();
                contexto.Promocoes.Remove(promocao);
                contexto.SaveChanges();
            }

            Console.ReadLine();
        }
예제 #6
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome          = "Suco de laranja",
                Categoria     = "Bebidas",
                PrecoUnitario = 8.5,
                Unidade       = "Litro"
            };
            var p2 = new Produto()
            {
                Nome          = "Cafe",
                Categoria     = "Bebidas",
                PrecoUnitario = 10.6,
                Unidade       = "Pacote"
            };
            var p3 = new Produto()
            {
                Nome          = "Macarrao",
                Categoria     = "Alimentos",
                PrecoUnitario = 3.2,
                Unidade       = "Pacote"
            };


            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                contexto.Promocoes.Add(promocaoDePascoa);

                //var promocao = contexto.Promocoes.Find(1);
                //contexto.Promocoes.Remove(promocao);

                ExibeEntries(contexto.ChangeTracker.Entries());
                contexto.SaveChanges();
            }
        }
예제 #7
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome = "Suco de laranja", Categoria = "Bebidas", PrecoUnitario = 8.79, Unidade = "Litros"
            };
            var p2 = new Produto()
            {
                Nome = "Cafe", Categoria = "Bebidas", PrecoUnitario = 12.45, Unidade = "Gramas"
            };
            var p3 = new Produto()
            {
                Nome = "Macarrao", Categoria = "Alimentos", PrecoUnitario = 4.25, Unidade = "Gramas"
            };


            var promocaoDePacoa = new Promocao();

            promocaoDePacoa.Descricao   = "Pascoa feliz";
            promocaoDePacoa.DataInicio  = DateTime.Now;
            promocaoDePacoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePacoa.IncluirProduto(p1);
            promocaoDePacoa.IncluirProduto(p2);
            promocaoDePacoa.IncluirProduto(p3);

            var paoFrances = new Produto()
            {
                Nome          = "Pão Frances",
                PrecoUnitario = 0.40,
                Unidade       = "Unidade",
                Categoria     = "Padaria"
            };

            //var compra = new Compra();
            //compra.Quantidade = 6;
            //compra.Produto = paoFrances;
            //compra.Preco = paoFrances.PrecoUnitario * compra.Quantidade;

            using (var contexto = new LojaContext())
            {
                //contexto.Produtos.Add(promocaoDePacoa);
                var promocao = contexto.Promocoes.Find(3);
                contexto.Promocoes.Remove(promocao);


                contexto.SaveChanges();
            }
        }
        // RELACIONAMENTO DE MUITOS PARA MUITOS.
        public static void Aula_06()
        {
            var p1 = new Produto()
            {
                Nome = "Suco de Laranja", Categoria = "Bebidas", PrecoUnitario = 8.79, Unidade = "Litros"
            };
            var p2 = new Produto()
            {
                Nome = "Café", Categoria = "Bebidas", PrecoUnitario = 12.45, Unidade = "Gramas"
            };
            var p3 = new Produto()
            {
                Nome = "Macarrão", Categoria = "Alimentos", PrecoUnitario = 4.23, Unidade = "Gramas"
            };


            var promocaoDePessoa = new Promocao();

            promocaoDePessoa.Descricao    = "Festival de Férias";
            promocaoDePessoa.DataInicio   = DateTime.Now;
            promocaoDePessoa.DataTerminio = DateTime.Now.AddMonths(3);
            promocaoDePessoa.IncluirProduto(p1);
            promocaoDePessoa.IncluirProduto(p2);
            promocaoDePessoa.IncluirProduto(p3);

            using (var contexto = new LojaContext())
            {
                // Procedimento para pegar o log de consulta do Entity Framework.
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                //contexto.Promocoes.Add(promocaoDePessoa);

                var promocao = contexto.Promocoes.Find(1);
                contexto.Promocoes.Remove(promocao);
                Console.WriteLine("***********************************\n\n");
                ExibeEntries(contexto.ChangeTracker.Entries());
                Console.WriteLine("***********************************\n\n");
                contexto.SaveChanges();
                Console.WriteLine("***********************************\n\n");
                ExibeEntries(contexto.ChangeTracker.Entries());


                Console.ReadLine();
            }
        }
예제 #9
0
파일: Program.cs 프로젝트: Graubera/Store2
        private static void ExibeProdutosDaPromocao()
        {
            using (var context = new LojaContext())
            {
                Promocao promocao = context
                                    .Promocoes
                                    .Include(p => p.Produtos)
                                    .ThenInclude(pp => pp.Produto)
                                    .FirstOrDefault();

                Debug.WriteLine("\nMostrando os produtos da promoção...");
                foreach (var item in promocao.Produtos)
                {
                    Debug.WriteLine(item.Produto);
                }
            }
        }
예제 #10
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome = "Hambúrguer", Categoria = "Lanches", PrecoUnitario = 12.0, Unidade = "Unidade"
            };
            var p2 = new Produto()
            {
                Nome = "Refrigerante", Categoria = "Bebidas", PrecoUnitario = 10.0, Unidade = "Litros"
            };
            var p3 = new Produto()
            {
                Nome = "Batata Frita", Categoria = "Aperitivos", PrecoUnitario = 20.0, Unidade = "Kg"
            };

            //Promoção de Pascoa
            var promocaoPascoa = new Promocao();

            promocaoPascoa.Descricao   = "Páscoa Feliz";
            promocaoPascoa.DataInicio  = DateTime.Now;
            promocaoPascoa.DataTermino = DateTime.Now.AddMonths(3);


            promocaoPascoa.IncluiProduto(p1);
            promocaoPascoa.IncluiProduto(p2);
            promocaoPascoa.IncluiProduto(p3);


            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                //contexto.Promocoes.Add(promocaoDePascoa);
                var promocao = contexto.Promocoes.Find(3);
                contexto.Promocoes.Remove(promocao);
                contexto.SaveChanges();

                //contexto.Promocoes.Add(promocaoPascoa);
                //ExibeEntries(contexto.ChangeTracker.Entries());
                //contexto.SaveChanges();
            }
        }
예제 #11
0
파일: Program.cs 프로젝트: morderous/Alura
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Categoria = "Bebidas", Nome = "Guaraná Jesus", PrecoUnitario = 5.79, Unidade = "kg"
            };
            var p2 = new Produto()
            {
                Categoria = "Bebidas", Nome = "Coca-Cola", PrecoUnitario = 6.99, Unidade = "Litros"
            };
            var p3 = new Produto()
            {
                Categoria = "Enlatados", Nome = "Lata de Feijão", PrecoUnitario = 6.99, Unidade = "Litros"
            };



            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Pascoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                //contexto.Promocoes.Add(promocaoDePascoa);
                //ExibeEntries(contexto.ChangeTracker.Entries());
                //var promocao = contexto.Promocoes.Find(2);
                //contexto.Promocoes.Remove(promocao);
                //contexto.Produtos.Add(p1);
                //contexto.Produtos.Add(p2);

                ExibeEntries(contexto.ChangeTracker.Entries());
                contexto.SaveChanges();
            }
        }
예제 #12
0
        private static void BuscaProdutosPromocao()
        {
            using (var contexto = new LojaContext())
            {
                ChamaLogger(contexto);
                var promocao = new Promocao()
                {
                    Descricao   = "Criança Feliz 2018",
                    DataInicio  = new DateTime(2018, 10, 12),
                    DataTermino = new DateTime(2018, 10, 12)
                };

                var doces = contexto
                            .Produtos
                            .Where(p => p.Categoria == "Doce")
                            .ToList();

                foreach (var item in doces)
                {
                    promocao.IncluiProduto(item);
                }

                contexto.Promocoes.Add(promocao);

                ImprimeChangeTracker(contexto.ChangeTracker.Entries());

                contexto.SaveChanges();
            }

            using (var contexto2 = new LojaContext())
            {
                ChamaLogger(contexto2);
                var promo = contexto2
                            .Promocoes
                            .Include(p => p.Produtos)
                            .ThenInclude(pp => pp.Produto)
                            .FirstOrDefault();
                Console.WriteLine("\n" + promo.Descricao + " - Produtos:\n");
                foreach (var item in promo.Produtos)
                {
                    Console.WriteLine(item.Produto);
                }
            }
        }
예제 #13
0
        private static void MuitosParaMuitos()
        {
            Produto p1 = new Produto()
            {
                Nome = "Suco de Laranja", Categoria = "Bebidas", PrecoUnitario = 1.25, Unidade = "Litros"
            };
            Produto p2 = new Produto()
            {
                Nome = "Café", Categoria = "Bebidas", PrecoUnitario = 12.48, Unidade = "Gramas"
            };;
            Produto p3 = new Produto()
            {
                Nome = "Macarrão", Categoria = "Alimentos", PrecoUnitario = 3.79, Unidade = "Gramas"
            };;

            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);


            //Adicionando produtos
            promocaoDePascoa.IncluirProduto(p1);
            promocaoDePascoa.IncluirProduto(p2);
            promocaoDePascoa.IncluirProduto(p3);


            //Adicionando a classe de Logger
            using (var contexto = new LojaContext())
            {
                //*** Adicionando Log (para exibir as consultas realizadas pelo Entity) ***
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());
                //*** Fim do Log ***

                //contexto.Promocoes.Add(promocaoDePascoa);
                var promocao = contexto.Promocoes.Find(1);
                contexto.Promocoes.Remove(promocao);
                contexto.SaveChanges();
            }
        }
예제 #14
0
        static void Main(string[] args)
        {
            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Pascoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);
            promocaoDePascoa.Produtos.Add(new Produto());
            promocaoDePascoa.Produtos.Add(new Produto());
            promocaoDePascoa.Produtos.Add(new Produto());

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfra structure <IServiceProvider>();

                var loggerFactory = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());
            }
        }
예제 #15
0
        private static void IncluirPromocao()
        {
            using (var contexto = new LojaContext())
            {
                var promocao = new Promocao();
                promocao.Descricao   = "Queima Total Janeiro 2017";
                promocao.DataInicio  = new DateTime(2017, 1, 1);
                promocao.DataTermino = new DateTime(2017, 1, 31);

                var produtos = contexto
                               .Produtos
                               .Where(p => p.Categoria == "Bebidas")
                               .ToList();

                produtos.ForEach(it => promocao.IncluiProduto(it));
                contexto.Promocoes.Add(promocao);
                contexto.SaveChanges();
            }
        }
예제 #16
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome = "Panettone", Categoria = "Comida", PrecoUnidade = 15.00, Unidade = "Gramas"
            };
            var p2 = new Produto()
            {
                Nome = "Refrigerante", Categoria = "Bebidas", PrecoUnidade = 5.00, Unidade = "Litros"
            };
            var p3 = new Produto()
            {
                Nome = "Arroz", Categoria = "Comida", PrecoUnidade = 35.00, Unidade = "Gramas"
            };

            var promocaoNatal = new Promocao();

            promocaoNatal.Descricao   = "Natal Mais Feliz";
            promocaoNatal.DataInicio  = DateTime.Now;
            promocaoNatal.DataTermino = DateTime.Now.AddMonths(2);

            promocaoNatal.IncluiProduto(p1);
            promocaoNatal.IncluiProduto(p2);
            promocaoNatal.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                //add produto na promocao

                //contexto.Promocaos.Add(promocaoNatal);
                //ExibeEntries(contexto.ChangeTracker.Entries());

                //remove promocao por cascata
                var promocao = contexto.Promocaos.Find(1);
                contexto.Promocaos.Remove(promocao);

                contexto.SaveChanges();
            }
        }
예제 #17
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome = "Suco de Laranja", Categoria = "Bebidas", PrecoUnitario = 8.89, Unidade = "Litros"
            };
            var p2 = new Produto()
            {
                Nome = "Suco de Uva", Categoria = "Bebidas", PrecoUnitario = 3.89, Unidade = "Litros"
            };
            var p3 = new Produto()
            {
                Nome = "Suco de Limão", Categoria = "Bebidas", PrecoUnitario = 5.89, Unidade = "Litros"
            };

            var promocaoDePascoa = new Promocao
            {
                Descricao   = "Pascoa",
                DataInicio  = DateTime.Now,
                DataTermino = DateTime.Now.AddMonths(3)
            };

            promocaoDePascoa.IncluirProduto(p1);
            promocaoDePascoa.IncluirProduto(p2);
            promocaoDePascoa.IncluirProduto(p3);



            using (var contexto = new LojaContext())
            {
                //log no console
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerFactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(SqlLoggerProvider.Create());

                //contexto.Promocoes.Add(promocaoDePascoa);
                var promocao = contexto.Promocoes.Find(1);
                contexto.Promocoes.Remove(promocao);
                contexto.SaveChanges();

                ExibeEntries(contexto.ChangeTracker.Entries());
            }
        }
        static void Main(string[] args)
        {
            //Relacionamento muitos para muitos e a classe de join
            //Um produto pode estar associado a N Promoções
            //Promocao(N) - Produtos(N)
            //PromocaoProduto (Join)
            //
            //
            //é necessário criar IList<PromocaoProduto> na Tabela Produto e Promocao
            //
            //Mapear Chave Primária composta:
            //Para a chave primária da tabela PromocaoProduto, é necessário criá-la em LojaContext

            var p1 = new Produto()
            {
                Nome = "Suco de Fruta", Categoria = "Bebida", PrecoUnitario = 8, Unidade = "Litros"
            };
            var p2 = new Produto()
            {
                Nome = "Café", Categoria = "Bebida", PrecoUnitario = 10, Unidade = "Gramas"
            };
            var p3 = new Produto()
            {
                Nome = "Macarrao", Categoria = "Alimentos", PrecoUnitario = 14, Unidade = "Gramas"
            };

            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Páscoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            //Inserindo objetos relacionados
            using (var contexto = new LojaContext())
            {
                contexto.Promocoes.Add(promocaoDePascoa);
                contexto.SaveChanges();
            }
        }
예제 #19
0
        private static void IncluirPromocao()
        {
            using (var contexto = new LojaContext())
            {
                var serviceProvider = contexto.GetInfrastructure <IServiceProvider>();
                var loggerfactory   = serviceProvider.GetService <ILoggerFactory>();
                loggerfactory.AddProvider(SqlLoggerProvider.Create());

                //criar a promoção
                var promocao = new Promocao();
                promocao.Descricao   = "Queima total Pandemia 2020";
                promocao.DataInicio  = new DateTime(2020, 12, 1);
                promocao.DataTermino = new DateTime(2020, 12, 31);

                //pego produtos do banco
                var produtos = contexto
                               .Produtos
                               .Where(p => p.Categoria == "Bebidas")
                               .ToList();

                //adiciono na promoção
                foreach (var item in produtos)
                {
                    promocao.IncluiProduto(item);
                }

                //adiciono no contexto
                contexto.Promocoes.Add(promocao);

                contexto.SaveChanges();
            }

            using (var contexto2 = new LojaContext())
            {
                var promocao = contexto2.Promocoes.FirstOrDefault();
                Console.WriteLine("\nMostrando produtos da promoção...");
                foreach (var item in promocao.Produtos)
                {
                    Console.WriteLine(item.Produto);
                }
            }
        }
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto() { Nome = "Suco de Laranja", Categoria = "Bebidas", PrecoUnitario = 8.79, Unidade = "Litros" };
            var p2 = new Produto() { Nome = "Café", Categoria = "Bebidas", PrecoUnitario = 12.45, Unidade = "Gramas" };
            var p3 = new Produto() { Nome = "Macarrão", Categoria = "Alimentos", PrecoUnitario = 4.23, Unidade = "Gramas" };

            var promocaoPascoa = new Promocao();
            promocaoPascoa.Descricao = "Páscoa Feliz";
            promocaoPascoa.DataInicio = DateTime.Now;
            promocaoPascoa.DataTermino = DateTime.Now.AddMonths(3);

            promocaoPascoa.IncluiProduto(p1);
            promocaoPascoa.IncluiProduto(p2);
            promocaoPascoa.IncluiProduto(p3);

            var ctx = new LojaContext();
            ctx.Promocoes.Add(promocaoPascoa);
            ctx.SaveChanges();
            ctx.Dispose();
        }
예제 #21
0
        private static void SelectSimples()
        {
            using (var contexto = new LojaContext())
            {
                var promocao = new Promocao();
                promocao.Descricao   = "Queima total janeiro 2";
                promocao.DataInicio  = new DateTime(2017, 1, 1);
                promocao.DataTermino = new DateTime(2017, 1, 31);

                var produtos = contexto.Produtos.Where(p => p.Categoria == "bebidas").ToList();

                foreach (var item in produtos)
                {
                    promocao.IncluiProduto(item);
                }

                contexto.Promocoes.Add(promocao);
                contexto.SaveChanges();
            }
        }
예제 #22
0
        private void CriaPromo()
        {
            using (var contexto = new LojaContext())
            {
                var promocao = new Promocao();
                promocao.Descricao = "Queima Total 2017";
                promocao.DtIni     = new DateTime(2017, 1, 1);
                promocao.DtFim     = new DateTime(2017, 1, 31);

                var produtos = contexto.Produtos.Where(p => p.Categoria == "Bebidas").ToList();

                foreach (var item in produtos)
                {
                    promocao.IncluiProduto(item);
                }

                contexto.Promocoes.Add(promocao);
                contexto.SaveChanges();
            }
        }
예제 #23
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto
            {
                Nome          = "Suco de Laranja",
                Categoria     = "Bebidas",
                PrecoUnitario = 8.79,
                Unidade       = "Litros"
            };
            var p2 = new Produto
            {
                Nome          = "Café",
                Categoria     = "Bebidas",
                PrecoUnitario = 12.45,
                Unidade       = "Gramas"
            };
            var p3 = new Produto
            {
                Nome          = "Macarrão",
                Categoria     = "Alimentos",
                PrecoUnitario = 4.23,
                Unidade       = "Gramas"
            };

            var promocaoDePascoa = new Promocao
            {
                Descricao   = "Páscoa Feliz",
                DataInicio  = DateTime.Now,
                DataTermino = DateTime.Now.AddMonths(3),
            };

            promocaoDePascoa.IncluirProduto(p1);
            promocaoDePascoa.IncluirProduto(p2);
            promocaoDePascoa.IncluirProduto(p3);

            using (var contexto = new LojaContext())
            {
                contexto.Promocoes.Add(promocaoDePascoa);
                contexto.SaveChanges();
            }
        }
예제 #24
0
        private static void AdicionarPromocao()
        {
            var farinha = new Produto {
                Nome = "Café", Categoria = "Alimentos", PrecoUnitario = 2.49, Unidade = "Gramas"
            };
            var cocaCola = new Produto {
                Nome = "Coca-Cola", Categoria = "Bebidas", PrecoUnitario = 7.99, Unidade = "Litros"
            };
            var caneta = new Produto {
                Nome = "Caneta Esferográfica", Categoria = "Material Escolar", PrecoUnitario = 1.49, Unidade = "Unidade"
            };
            var promocao = new Promocao {
                DataInicial = DateTime.Now.Date, DataFinal = DateTime.Now.Date.AddMonths(2), Descricao = "Promoção de Aniversário"
            };

            promocao.AdicionarProdutos(farinha, cocaCola, caneta);
            using (var promocaoRepository = new PromocaoRepository())
            {
                promocaoRepository.Save(promocao);
            }
        }
예제 #25
0
        private static void IncluirPromocao()
        {
            using (var contexto = new LojaContext())
            {
                var promocao = new Promocao();
                promocao.Descricao   = "Queima Total Segundo semestre 2017";
                promocao.DataInicio  = new DateTime(2017, 6, 1);
                promocao.DataTermino = new DateTime(2017, 10, 31);

                var produtos = contexto.Produtos.Where(p => p.Categoria == "Livros").ToList();
                foreach (var p in produtos)
                {
                    promocao.IncluirProduto(p);
                }

                contexto.Promocoes.Add(promocao);

                ExibeEntries(contexto.ChangeTracker.Entries());
                contexto.SaveChanges();
            }
        }
예제 #26
0
        private static void TestePersistencaPromocao()
        {
            var promocao = new Promocao();

            promocao.Descricao   = "Queima estoque Janeiro 2017";
            promocao.DataInicio  = new DateTime(2017, 1, 1);
            promocao.DataTermino = new DateTime(2017, 1, 31);

            using (var context = new LojaContext())
            {
                var produtos = context.Produtos.Where(p => p.Categoria == "Bebidas").ToList();

                foreach (var produto in produtos)
                {
                    promocao.IncluirProduto(produto);
                }

                context.Promocoes.Add(promocao);
                context.SaveChanges();
            }
        }
        private static void IncluirPromocao()
        {
            using (var contexto = new LojaContext())
            {
                var promocao = new Promocao();
                promocao.Descricao   = "Queima Total Janeiro";
                promocao.DataInicio  = new DateTime(2017, 1, 1);
                promocao.DataTermino = new DateTime(2017, 1, 31);

                var produtos = contexto.Produtos.Where(X => X.Categoria == "Bebidas").ToList();

                foreach (var item in produtos)
                {
                    promocao.IncluirProdtuo(item);
                }

                contexto.Promocoes.Add(promocao);

                contexto.SaveChanges();
            }
        }
예제 #28
0
        private static void ConsultasComCondiçoes()
        {
            void IncluirPromocao()
            {
                using (var context = new LojaContext())
                {
                    var promocao = new Promocao();
                    promocao.DataInicio = new DateTime(2020, 1, 1);
                    promocao.DataFim    = new DateTime(2020, 5, 1);
                    promocao.Descricao  = "Fim de Loja";

                    var produtos = context.Produtos.Where(p => p.Categoria == "Bebidas").ToList();

                    foreach (var item in produtos)
                    {
                        promocao.IncluiProduto(item);
                    }

                    context.Promocoes.Add(promocao);
                    context.SaveChanges();
                }
            };
            IncluirPromocao();
            using (var contexto2 = new LojaContext())
            {
                //Para que a pesquisa busque nas tabelas aninhadas, devemos incluir no select(como se faz em um JOIN)
                //var promocao = contexto2.Promocoes.FirstOrDefault();

                //Para relacionamentos N para M, devemos navegar nos niveis utilizando o include e theninclude
                var promocao = contexto2.Promocoes
                               .Include(p => p.Produtos)
                               .ThenInclude(pp => pp.Produto)
                               .FirstOrDefault();

                foreach (var item in promocao.Produtos)
                {
                    Console.WriteLine(item.Produto);
                }
            }
        }
예제 #29
0
        private static void MuitosParaMuitos()
        {
            var p1 = new Produto()
            {
                Nome          = "Suco de Laranja",
                Categoria     = "Bebidas",
                PrecoUnitario = 8.99,
                Unidade       = "Litros"
            };
            var p2 = new Produto()
            {
                Nome          = "Cafe",
                Categoria     = "Bebidas",
                PrecoUnitario = 12.45,
                Unidade       = "Gramas",
            };
            var p3 = new Produto()
            {
                Nome          = "Macarrao",
                Categoria     = "Alimentos",
                PrecoUnitario = 4.23,
                Unidade       = "Gramas",
            };

            var promocaoDePascoa = new Promocao();

            promocaoDePascoa.Descricao   = "Pascoa Feliz";
            promocaoDePascoa.DataInicio  = DateTime.Now;
            promocaoDePascoa.DataTermino = DateTime.Now.AddMonths(3);
            promocaoDePascoa.IncluiProduto(p1);
            promocaoDePascoa.IncluiProduto(p2);
            promocaoDePascoa.IncluiProduto(p3);

            using (var contexto = new LojaContext())
            {
                ExibeCodigoSqlDoEntity(contexto);
                contexto.Promocoes.Add(promocaoDePascoa);
                contexto.SaveChanges();
            }
        }
예제 #30
0
파일: Program.cs 프로젝트: davidapdf/Loja
        private static void IncluiPromocao()
        {
            using (var contexto = new LojaContext())
            {
                var promocao = new Promocao();
                promocao.Descricao  = "Queima total";
                promocao.DataInicio = new DateTime(2019, 1, 1);
                promocao.DataFim    = new DateTime(2019, 1, 31);

                var produto = contexto
                              .Produtos
                              .Where(p => p.Categoria == "Bebidas")
                              .ToList();
                foreach (var item in produto)
                {
                    promocao.IncluirProduto(item);
                }

                contexto.Promocoes.Add(promocao);
                contexto.SaveChanges();
            }
        }