Exemple #1
0
        static void Main(string[] args)
        {
            Empresa empresa = GerarDados();

            //a.	Alterar o salário do empregado de código 3 para 28000
            Console.WriteLine("Letra A:");
            var exA = from empregado in empresa.Empregados
                      where empregado.IDEmp == 3
                      select empregado;

            foreach (var x in exA)
            {
                Console.WriteLine(x.Salario);
                x.Salario = 28000;
                Console.WriteLine(x.Salario);
            }

            //b.	Obter nomes de empregados com salario > 30000
            Console.WriteLine("\n\nLetra B:");
            var exB = from empregado in empresa.Empregados
                      orderby empregado.Salario
                      where empregado.Salario > 30000
                      select empregado;

            foreach (var x in exB)
            {
                Console.WriteLine(x.Nome + " - " + x.Salario);
            }

            //c.Obter nomes de empregados que trabalham no projeto 'Transmogrifador'
            Console.WriteLine("\n\nLetra C:");
            var exC = from trabalha in empresa.Trabalhos
                      where trabalha.Projeto.Titulo == "Transmogrifador"
                      select trabalha.Empregado.Nome;

            foreach (var x in exC)
            {
                Console.WriteLine(x);
            }


            //d.	Obter nomes e endereços de todos os empregados que trabalham no departamento de 'Pesquisa'.
            Console.WriteLine("\n\nLetra D:");
            var exD = from trabalhador in empresa.Empregados
                      where trabalhador.Departamento.Nome == "Pesquisa"
                      select new { Nome = trabalhador.Nome, Endereco = trabalhador.Endereco };

            foreach (var x in exD)
            {
                Console.WriteLine(x.Nome + " - " + x.Endereco);
            }

            //e.	Obter nomes de empregados que começam com a letra 'A'
            Console.WriteLine("\n\nLetra E:");
            var exE = from trabalhador in empresa.Empregados
                      where trabalhador.Nome.StartsWith("A")
                      select trabalhador.Nome;

            foreach (var x in exE)
            {
                Console.WriteLine(x);
            }

            //f.Obter os nomes e datas de nascimento dos empregados que fazem aniversário no mês de outubro.
            Console.WriteLine("\n\nLetra F:");
            var exF = from trabalhador in empresa.Empregados
                      where trabalhador.DataNasc.Month == 10
                      select new { Nome = trabalhador.Nome, DataNasc = trabalhador.DataNasc };

            foreach (var x in exF)
            {
                Console.WriteLine(x.Nome + " - " + x.DataNasc);
            }

            //g.	Obter os nomes dos empregados nascidos entre as datas 1950-01-01 e 1970-01-01.
            Console.WriteLine("\n\nLetra G:");
            DateTime start = new DateTime(1950, 01, 01);
            DateTime end   = new DateTime(1970, 01, 01);

            var exG = from trabalhador in empresa.Empregados
                      where trabalhador.DataNasc >= start && trabalhador.DataNasc <= end
                      select trabalhador;

            foreach (var x in exG)
            {
                Console.WriteLine(x.Nome + " - " + x.DataNasc);
            }

            //h.	Listar os títulos de projetos em ordem alfabética.
            Console.WriteLine("\n\nLetra H:");

            var exH = from projeto in empresa.Projetos
                      orderby projeto.Titulo
                      select projeto;

            foreach (var x in exH)
            {
                Console.WriteLine(x.Titulo);
            }


            //i.	Listar nomes e horas trabalhadas por empregados no projeto de código 3, em ordem decrescente de horas trabalhadas.
            Console.WriteLine("\n\nLetra I:");
            var exI = from trabalhaEm in empresa.Trabalhos
                      join projetos in empresa.Projetos on trabalhaEm.Projeto.IDProj equals projetos.IDProj
                      orderby trabalhaEm.Horas descending
                      where projetos.IDProj == 3
                      select new { Nome = trabalhaEm.Empregado.Nome, HorasTrabalhadas = trabalhaEm.Horas, ProjetoId = projetos.IDProj };

            foreach (var x in exI)
            {
                Console.WriteLine(x.HorasTrabalhadas + " - " + x.ProjetoId + " - " + x.Nome);
            }

            //j.	Obter códigos de empregados que trabalham mais de 10 horas em algum projeto. O resultado da consulta não deve ter repetições de códigos de empregados.
            Console.WriteLine("\n\nLetra J:");
            var exJ = (from trabalhaEm in empresa.Trabalhos
                       orderby trabalhaEm.Empregado.IDEmp
                       where trabalhaEm.Horas > 10
                       select trabalhaEm.Empregado.IDEmp).Distinct();

            foreach (var x in exJ)
            {
                Console.WriteLine("Código: " + x);
            }

            //k.Obter a quantidade de empregados pertencentes ao departamento 4.Dica: consulte funções agregadas do SQL.
            Console.WriteLine("\n\nLetra K:");
            var exK = from empregado in empresa.Empregados
                      where empregado.Departamento.IDDepto == 4
                      select empregado;

            Console.WriteLine("Quantidade: " + exK.Count());


            //l.	Obter, a partir da tabela TrabalhaEm, os números mínimo, máximo e médio de horas trabalhadas por empregados em cada projeto.
            //O resultado deve possuir 4 colunas nomeadas: projeto, minimo, maximo e media.
            Console.WriteLine("\n\nLetra L:");
            var exL = from trabalhaEm in empresa.Trabalhos
                      orderby trabalhaEm.Projeto.IDProj
                      group trabalhaEm by trabalhaEm.Projeto.IDProj into x
                      select new { projeto = x.Key, minimo = x.Select(c => c.Horas).Min(), maximo = x.Select(c => c.Horas).Max(), media = x.Select(c => c.Horas).Average() };

            foreach (var x in exL)
            {
                Console.WriteLine("Projeto: " + x.projeto + " Min: " + x.minimo + " Max: " + x.maximo + " Media: " + x.media);
            }

            //m.	Obter os códigos de projetos cuja média de horas trabalhadas seja maior que 20.
            Console.WriteLine("\n\nLetra M:");
            var exM = from trabalhaEm in empresa.Trabalhos
                      group trabalhaEm by trabalhaEm.Projeto.IDProj into x
                      where x.Select(c => c.Horas).Average() > 20
                      select x.Key;

            foreach (var x in exM)
            {
                Console.WriteLine("Projeto: " + x);
            }

            //n.Obter os nomes de projetos correspondentes à consulta anterior.
            Console.WriteLine("\n\nLetra N:");
            var exN = from trabalhaEm in empresa.Trabalhos
                      group trabalhaEm by trabalhaEm.Projeto.Titulo into x
                      where x.Select(c => c.Horas).Average() > 20
                      select x.Key;

            foreach (var x in exN)
            {
                Console.WriteLine("Projeto: " + x);
            }
        }
Exemple #2
0
        static Empresa GerarDados()
        {
            //Criação de departamentos

            Departamento dep1 = new Departamento("Pesquisa");
            Departamento dep2 = new Departamento("Administração");
            Departamento dep3 = new Departamento("Direção");

            //Criação de empregados e colocando gerentes nos departamentos
            Empregado emp1 = new Empregado("Joao da Silva", new DateTime(1955, 01, 09), "Rua dos Camelos, 23", EnumSexo.Masculino, 30000, dep2);
            Empregado emp2 = new Empregado("Horacio Bagual", new DateTime(1953, 10, 10), "Av. dos Tapejaras, 90", EnumSexo.Masculino, 40000, dep1);
            Empregado emp3 = new Empregado("Ana Bacana", new DateTime(1980, 06, 20), "Av. Atacama, 10 apto 22", EnumSexo.Feminino, 25000, dep3);
            Empregado emp4 = new Empregado("Antonio Pestana", new DateTime(1990, 04, 13), "Rod. Imigrantes, 1940", EnumSexo.Masculino, 45000, dep2);
            Empregado emp5 = new Empregado("Maria Antonia Real", new DateTime(1982, 11, 14), "Rua Petropolis, 13", EnumSexo.Feminino, 38000, dep1);
            Empregado emp6 = new Empregado("Ada Maria Lovelace", new DateTime(1965, 10, 15), "Rua dos Ingleses, 1020", EnumSexo.Feminino, 25000, dep1);
            Empregado emp7 = new Empregado("Joaquina Pasqualini", new DateTime(1968, 08, 17), "Rua dos Ingleses, 1010", EnumSexo.Feminino, 25000, dep2);
            Empregado emp8 = new Empregado("Luiz Gustavo Silva", new DateTime(1982, 09, 13), "Rua Silva Jardim, 87", EnumSexo.Masculino, 50000, dep3);
            Empregado emp9 = new Empregado("Amanda Lima Costa", new DateTime(1979, 03, 01), "Av. Rio Branco, 1290, Ap. 207", EnumSexo.Feminino, 31000, dep2);

            //Criação de Projetos
            Projeto proj1 = new Projeto("Transmogrifador", dep1);
            Projeto proj2 = new Projeto("Cama Hiperbarica", dep1);
            Projeto proj3 = new Projeto("Emissor de Raios Z", dep1);
            Projeto proj4 = new Projeto("Gestao dos 80/20", dep2);
            Projeto proj5 = new Projeto("Business Inteligence", dep3);
            Projeto proj6 = new Projeto("Bonus para Inventores", dep2);

            //Criação trabalhos em projetos
            TrabalhaEm trab1  = new TrabalhaEm(emp1, proj1, 10);
            TrabalhaEm trab2  = new TrabalhaEm(emp5, proj3, 40);
            TrabalhaEm trab3  = new TrabalhaEm(emp6, proj1, 20);
            TrabalhaEm trab4  = new TrabalhaEm(emp6, proj2, 20);
            TrabalhaEm trab5  = new TrabalhaEm(emp2, proj2, 10);
            TrabalhaEm trab6  = new TrabalhaEm(emp2, proj3, 10);
            TrabalhaEm trab7  = new TrabalhaEm(emp4, proj4, 15);
            TrabalhaEm trab8  = new TrabalhaEm(emp4, proj5, 12);
            TrabalhaEm trab9  = new TrabalhaEm(emp8, proj6, 7);
            TrabalhaEm trab10 = new TrabalhaEm(emp8, proj4, 20);
            TrabalhaEm trab11 = new TrabalhaEm(emp9, proj4, 30);
            TrabalhaEm trab12 = new TrabalhaEm(emp3, proj3, 20);
            TrabalhaEm trab13 = new TrabalhaEm(emp3, proj5, 10);
            TrabalhaEm trab14 = new TrabalhaEm(emp1, proj2, 15);

            //Criação de Dependentes
            Dependente depend1 = new Dependente(emp2, "Joana Bagual", EnumSexo.Feminino, new DateTime(1986, 05, 05), EnumRelacao.Filho);
            Dependente depend2 = new Dependente(emp2, "Pedro Bagual", EnumSexo.Masculino, new DateTime(1983, 10, 25), EnumRelacao.Filho);
            Dependente depend3 = new Dependente(emp2, "Alice Bagual", EnumSexo.Feminino, new DateTime(1956, 05, 03), EnumRelacao.Conjuge);
            Dependente depend4 = new Dependente(emp3, "Maximo Bacana", EnumSexo.Masculino, new DateTime(1942, 02, 28), EnumRelacao.Pais);
            Dependente depend5 = new Dependente(emp1, "Jagunco da Silva", EnumSexo.Masculino, new DateTime(1978, 01, 01), EnumRelacao.Filho);
            Dependente depend6 = new Dependente(emp1, "Jaqueline da Silva", EnumSexo.Feminino, new DateTime(1978, 12, 31), EnumRelacao.Filho);
            Dependente depend7 = new Dependente(emp1, "Joana da Silva", EnumSexo.Feminino, new DateTime(1957, 05, 05), EnumRelacao.Conjuge);

            Empresa empresa = new Empresa();

            empresa.Departamentos.Add(dep1);
            empresa.Departamentos.Add(dep2);
            empresa.Departamentos.Add(dep3);

            empresa.Empregados.Add(emp1);
            empresa.Empregados.Add(emp2);
            empresa.Empregados.Add(emp3);
            empresa.Empregados.Add(emp4);
            empresa.Empregados.Add(emp5);
            empresa.Empregados.Add(emp6);
            empresa.Empregados.Add(emp7);
            empresa.Empregados.Add(emp8);
            empresa.Empregados.Add(emp9);

            //Definindo Gerentes
            //dep2.Gerente = emp1;
            dep1.Gerente = emp2;
            dep3.Gerente = emp8;

            empresa.Projetos.Add(proj1);
            empresa.Projetos.Add(proj2);
            empresa.Projetos.Add(proj3);
            empresa.Projetos.Add(proj4);
            empresa.Projetos.Add(proj5);
            empresa.Projetos.Add(proj6);

            empresa.Trabalhos.Add(trab1);
            empresa.Trabalhos.Add(trab2);
            empresa.Trabalhos.Add(trab3);
            empresa.Trabalhos.Add(trab4);
            empresa.Trabalhos.Add(trab5);
            empresa.Trabalhos.Add(trab6);
            empresa.Trabalhos.Add(trab7);
            empresa.Trabalhos.Add(trab8);
            empresa.Trabalhos.Add(trab9);
            empresa.Trabalhos.Add(trab10);
            empresa.Trabalhos.Add(trab11);
            empresa.Trabalhos.Add(trab12);
            empresa.Trabalhos.Add(trab13);
            empresa.Trabalhos.Add(trab14);

            empresa.Dependentes.Add(depend1);
            empresa.Dependentes.Add(depend2);
            empresa.Dependentes.Add(depend3);
            empresa.Dependentes.Add(depend4);
            empresa.Dependentes.Add(depend5);
            empresa.Dependentes.Add(depend6);
            empresa.Dependentes.Add(depend7);

            return(empresa);
        }