public void Agregar(Model.Casos elNuevoCaso)
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();

            elNuevoCaso.Estado = (int)Estado.Registrado;
            gestor.Agregar(elNuevoCaso);
        }
        public Boolean PonerEnProceso(int idCaso, int idEmpleado)
        {
            AccesoAdatos.GestorDeCasos  gestor       = new AccesoAdatos.GestorDeCasos();
            CasoEmpleadoAsignado        casoAsignado = new CasoEmpleadoAsignado();
            CoordinadorDeCasosAsignados coordinadorDeCasosAsignados = new CoordinadorDeCasosAsignados();
            CoordinadorDeEmpleados      coordinadorDeEmpleados      = new CoordinadorDeEmpleados();

            Boolean   seHaPodidoPonerEnProcesoElCaso = false;
            Boolean   seHaPodidoAsignarElCaso        = false;
            Casos     elCaso     = ObtenerCasoPorId(idCaso);
            Empleados elEmpleado = coordinadorDeEmpleados.ObtenerEmpleadoPorId(idEmpleado);

            if (!ExcedeTiempoParaPonerEnProceso(elCaso))
            {
                if (elCaso.Estado == (int)Estado.Registrado)
                {
                    casoAsignado.IdCasos      = elCaso.Id;
                    casoAsignado.IdEmpleados  = elEmpleado.Id;
                    elCaso.Estado             = (int)Estado.EnProceso;
                    elCaso.FechaInicioProceso = DateTime.Now;

                    seHaPodidoAsignarElCaso = coordinadorDeCasosAsignados.Asignar(casoAsignado);

                    if (seHaPodidoAsignarElCaso)
                    {
                        gestor.Actualizar(elCaso);
                        seHaPodidoPonerEnProcesoElCaso = true;
                    }
                }
            }
            return(seHaPodidoAsignarElCaso && seHaPodidoPonerEnProcesoElCaso);
        }
        public void Editar(Model.Casos elCaso)
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();

            if (elCaso.Estado == (int)Estado.Registrado || elCaso.Estado == (int)Estado.EnProceso)
            {
                gestor.Actualizar(elCaso);
            }
        }
        public void Rechazar(Model.Casos caso)
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();

            if (caso.Estado == (int)Estado.EnProceso)
            {
                caso.Estado = (int)Estado.Rechazado;
                gestor.Actualizar(caso);
            }
        }
        public void Eliminar(int id)
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();
            Casos caso = ObtenerCasoPorId(id);

            if (caso.Estado == (int)Estado.Registrado)
            {
                caso.Estado = (int)Estado.Eliminado;
                gestor.Actualizar(caso);
            }
        }
        public void Terminar(Model.Casos elCaso)
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();

            if (elCaso.Estado == (int)Estado.EnProceso)
            {
                elCaso.FechaResolucion = DateTime.Now;
                elCaso.Estado          = (int)Estado.Terminado;
                gestor.Actualizar(elCaso);
            }
        }
        public void Reactivar(int id)
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();
            Casos caso = ObtenerCasoPorId(id);

            if (caso.Estado == (int)Estado.Eliminado)
            {
                caso.Estado        = (int)Estado.Registrado;
                caso.FechaCreacion = DateTime.Now;
                gestor.Actualizar(caso);
            }
        }
        public List <Model.Casos> ObtenerCasosQueExcedenTiempoParaPasarAenProceso()
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();

            List <Model.Casos> casosQueExcedenTiempoParaPasarAenProceso = new List <Model.Casos>();
            List <Model.Casos> laListaDeCasos = gestor.ObtenerTodosLosCasos();

            foreach (Casos caso in laListaDeCasos)
            {
                if (ExcedeTiempoParaPonerEnProceso(caso))
                {
                    if (caso.Estado == (int)Estado.Registrado)
                    {
                        casosQueExcedenTiempoParaPasarAenProceso.Add(caso);
                    }
                }
            }

            return(casosQueExcedenTiempoParaPasarAenProceso);
        }
        public List <Model.Casos> ObtenerCasosEnEstadoEliminado()
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();

            return(gestor.ObtenerCasosPorEstado((int)Estado.Eliminado));
        }
        public Model.Casos ObtenerCasoPorId(int id)
        {
            AccesoAdatos.GestorDeCasos gestor = new AccesoAdatos.GestorDeCasos();

            return(gestor.ObtenerCasoPorId(id));
        }