public void g_importar_usuario_do_excel()
        {
            string _conectionstring;
            _conectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;";
            _conectionstring += String.Format("Data Source={0};", "D:\\Hospital2.xls");
            _conectionstring += "Extended Properties='Excel 8.0;HDR=NO;'";

            OleDbConnection cn = new OleDbConnection(_conectionstring);
            OleDbCommand cmd = new OleDbCommand("Select * from [LISTAS - OUTRAS DESPESAS$]", cn);
            cn.Open();

            OleDbDataReader reader = cmd.ExecuteReader();

            List<UsuarioExcel> usuariosExcel = new List<UsuarioExcel>();

            int i = 0;

            while (reader.Read())
            {
                if (i > 1)
                {
                    if (reader[0] == DBNull.Value)
                        break;

                    UsuarioExcel usuarioExcel = new UsuarioExcel();

                    usuarioExcel.Usuario = (string)reader[0];
                    usuarioExcel.Login = (string)reader[1];
                    usuarioExcel.Hospital = (string)reader[3];

                    usuariosExcel.Add(usuarioExcel);
                }
                i++;
            }

            Hospitais hospitais = new Hospitais();

            TipoUsuarios tipoUsuarios = new TipoUsuarios();

            var tipoUsuario = tipoUsuarios.Obter<TipoUsuario>(2);

            var repositorioUsuarios = new Usuarios();

            foreach (var usuarioExcel in usuariosExcel)
            {
                Usuario usuario = repositorioUsuarios.ObterAcesso(usuarioExcel.Login, 123456.ToString());

                if (usuario == null)
                {
                    usuario = new Usuario();

                    usuario.TipoUsuario = tipoUsuario;

                    usuario.Nome = usuarioExcel.Usuario;

                    usuario.Login = usuarioExcel.Login;

                    usuario.Senha = "123456";
                }

                Hospital hospital = hospitais.ObterPor(usuarioExcel.Hospital);

                usuario.ParticiparDe(hospital);

                repositorioUsuarios.Salvar(usuario);
            }
        }
        public void DeletarCentrosDeCusto()
        {
            string _conectionstring;
            _conectionstring = @"Provider=Microsoft.Jet.OLEDB.4.0;";
            _conectionstring += String.Format("Data Source={0};", "D:\\Exclussao.xls");
            _conectionstring += "Extended Properties='Excel 8.0;HDR=NO;'";

            OleDbConnection cn = new OleDbConnection(_conectionstring);
            OleDbCommand cmd = new OleDbCommand("Select * from [exclusao$]", cn);
            cn.Open();

            OleDbDataReader reader = cmd.ExecuteReader();

            List<UsuarioExcel> usuariosExcel = new List<UsuarioExcel>();

            int i = 0;

            while (reader.Read())
            {
                if (i > 1)
                {
                    if (reader[5] == DBNull.Value)
                        break;

                    UsuarioExcel usuarioExcel = new UsuarioExcel();

                    if (reader[0] != DBNull.Value)
                        usuarioExcel.Usuario = (string)reader[0];
                    if (reader[1] != DBNull.Value)
                        usuarioExcel.Login = (string)reader[1];
                    if (reader[3] != DBNull.Value)
                        usuarioExcel.Hospital = (string)reader[3];

                    usuarioExcel.CodigoCentroDeCusto = (string)reader[5];

                    usuariosExcel.Add(usuarioExcel);
                }
                i++;
            }

            cn.Close();
            cn.Dispose();
            cmd.Dispose();

            var departamentos = usuariosExcel.Select(x => x.Hospital).Distinct();
            Departamentos repositorioDepartamento = new Departamentos();
            List<Departamento> listaDepartamentos = new List<Departamento>();

            foreach (var nome in departamentos.Where(d => d != null))
            {

                var departamento = repositorioDepartamento.ObterPor(nome);

                if (departamento == null)
                    Assert.Fail("Departamento não econtrado");

                listaDepartamentos.Add(departamento);

                //TicketsDeOrcamentoPessoal tickets = new TicketsDeOrcamentoPessoal();
                //var todosTickets = tickets.Todos(departamento);

                //TicketsDeProducao ticketis = new TicketsDeProducao();
                //var ticketsDeProducao = ticketis.Todos(departamento);

                //ticketis.Deletar(ticketsDeProducao);

                //var ticketsDeReceita = new TicketsDeReceita();
                //var listaTIcketsDeReceita = ticketsDeReceita.Todos(departamento);

                //ticketsDeReceita.Deletar(listaTIcketsDeReceita);

                //tickets.Deletar(todosTickets);

                Usuarios usuarios = new Usuarios();
                var ListaUsuarios = usuarios.Todos<Usuario>();

                foreach (var usuario in ListaUsuarios)
                {
                    if (usuario.Departamentos != null && usuario.Departamentos.Count > 0 && usuario.Departamentos.Any(d => d.Id == departamento.Id))
                    {
                        usuario.Departamentos.Remove(departamento);
                        usuarios.Salvar(usuario);
                    }

                }

                //Orcamentos orcamentos = new Orcamentos();
                //var listaOrcamentos = orcamentos.TodosPor(departamento);

                //orcamentos.Deletar(listaOrcamentos);

                //departamento.CentrosDeCusto = null;

                //repositorioDepartamento.Salvar(departamento);

                //DRES dres = new DRES();
                //var dre = dres.Obter(departamento);
                //dres.Deletar(dre);

                //AcordosDeConvencao acordos = new AcordosDeConvencao();
                //var acordoDeConvencao = acordos.ObterAcordoDeConvencao(departamento);
                //acordos.Deletar(acordoDeConvencao);

                //Insumos insumos = new Insumos();
                //var insumo = insumos.ObterInsumo(departamento);
                //insumos.Deletar(insumo);

                //NovosOrcamentosPessoais novosOrcamentos = new NovosOrcamentosPessoais();
                //var orcamentosPessoal = novosOrcamentos.Todos(departamento.Id);
                //novosOrcamentos.Deletar(orcamentosPessoal.ToList());

            }

            //var codigosDecentrosDeCusto = usuariosExcel.Select(x => x.CodigoCentroDeCusto).Distinct();
            //CentrosDeCusto centros = new CentrosDeCusto();
            //List<CentroDeCusto> centrosDeCusto = new List<CentroDeCusto>();
            //List<NovoOrcamentoPessoal> ListaNovosOrcamentos = new List<NovoOrcamentoPessoal>();
            //foreach (var codigoDeCentro in codigosDecentrosDeCusto)
            //{

            //    var centroDeCusto = centros.ObterPor(codigoDeCentro);
            //    if (centroDeCusto == null)
            //        Assert.Fail("Centro de Custo não encontrado");

            //    if (centroDeCusto.Funcionarios != null && centroDeCusto.Funcionarios.Count > 0 && centroDeCusto.Funcionarios.All(d => listaDepartamentos.Any(di => di.Id == d.Departamento.Id)))
            //    {
            //        centroDeCusto.Funcionarios = null;
            //        centros.Salvar(centroDeCusto);
            //    }

            //    if (centroDeCusto.Funcionarios != null && centroDeCusto.Funcionarios.Count > 0)
            //        Assert.Fail("Existe Funcionarios neste centro");

            //    centrosDeCusto.Add(centroDeCusto);

            //    NovosOrcamentosPessoais novosOrcamentos = new NovosOrcamentosPessoais();
            //    var orcamentosPessoal = novosOrcamentos.TodosPor(centroDeCusto.Id);

            //    ListaNovosOrcamentos.AddRange(orcamentosPessoal);

            //    //         centros.Deletar(centroDeCusto);

            //}

            //centros.Deletar(centrosDeCusto);
            repositorioDepartamento.Deletar(listaDepartamentos);
        }