Exemplo n.º 1
0
        public BaseResponse <int> InsertMateria(Materias materia)
        {
            var  response   = new BaseResponse <int>();
            bool desconecta = false;

            List <Materias> horario = _MateriaDAL.GetMateriasHoras(materia.IdDocente, materia.IdDia);

            if (horario.Count > 0)
            {
                foreach (Materias hora in horario)
                {
                    if (materia.HoraEntrada >= hora.HoraEntrada && materia.HoraSalida <= hora.HoraSalida ||
                        materia.HoraEntrada >= hora.HoraEntrada && materia.HoraEntrada <= hora.HoraSalida)
                    {
                        response.SetErrorCode(16);
                        response.MessageError += " en el horario : " + hora.HoraEntrada + " - " + hora.HoraSalida;
                        return(response);
                    }
                }
            }



            try
            {
                if (_MateriaDAL.Dao.Conectado())
                {
                    desconecta = false;
                }
                else
                {
                    _MateriaDAL.Dao.Conectar();
                    desconecta = true;
                }

                _MateriaDAL.Dao.IniciaTransaccion();

                response.Results   = _MateriaDAL.InsertMaterias(materia);
                response.CodeError = 0;

                _MateriaDAL.Dao.ConfirmaTransaccion();
            }
            catch
            {
                response.SetErrorCode(8);
                _MateriaDAL.Dao.CancelarTransaccion();
                throw;
            }
            finally
            {
                if (desconecta)
                {
                    _MateriaDAL.Dao.Desconectar();
                }
            }
            return(response);
        }