/// <summary>
        /// Obtiene los n primeros dispositivos.
        /// </summary>
        /// <param name="limit"> Numero de dispositivos a obtener.</param>
        /// <param name="tipo_dispositivo"> Tipo de dispositivo a obtener.</param>
        /// <returns>Regresa un objeto de la clase RespuestaBase con una coleccion con los n dispositivos especificado.</returns>
        internal RespuestaBase ObtenerDispositivosBase(TiposDispositivo tipo_dispositivo, int limit)
        {
            log.Info("Llamada al metodo");
            RespuestaBase            respuesta = new RespuestaBase();
            List <DispositivosModel> datos     = new List <DispositivosModel>();

            try
            {
                IEnumerable <DISPOSITIVO> dispositivos = DispositivosRepository.ObtenerDispositivos(tipo_dispositivo, limit);
                foreach (DISPOSITIVO dispositivo in dispositivos)
                {
                    DispositivosModel        dispositivo_temp = BaseModel.GetModel <DispositivosModel>(dispositivo, new DispositivosModel());
                    List <ComponentesModel>  componentes      = new List <ComponentesModel>();
                    List <RegistroUsosModel> registros        = new List <RegistroUsosModel>();

                    if (dispositivo_temp.id != 0)
                    {
                        if (dispositivo.COMPONENTES != null)
                        {
                            dispositivo_temp.Componentes = BaseModel.GetModelList <ComponentesModel>(dispositivo.COMPONENTES, new List <ComponentesModel>(), new ComponentesModel());
                            //foreach (COMPONENTE componente in dispositivo.COMPONENTES)
                            //{
                            //    ComponentesModel componente_temp = BaseModel.GetModel<ComponentesModel>(componente, new ComponentesModel());
                            //    if (componente_temp.id != 0)
                            //    {
                            //        componentes.Add(componente_temp);
                            //    }
                            //}
                        }
                        if (dispositivo.REGISROS_USOS != null)
                        {
                            dispositivo_temp.RegistroUsos = BaseModel.GetModelList <RegistroUsosModel>(dispositivo.REGISROS_USOS, new List <RegistroUsosModel>(), new RegistroUsosModel());
                            //foreach (REGISROS_USOS registro in dispositivo.REGISROS_USOS)
                            //{
                            //    RegistroUsosModel registro_temp = BaseModel.GetModel<RegistroUsosModel>(registro, new RegistroUsosModel());
                            //    if (registro_temp.id != 0)
                            //    {
                            //        registros.Add(registro_temp);
                            //    }
                            //}
                        }
                        datos.Add(dispositivo_temp);
                    }
                    else
                    {
                        string mensaje = String.Format("No fue posible procesar dispositivo con ID-->{0}.", dispositivo.id.ToString());
                        respuesta.Mensaje += " " + mensaje;
                        log.Error(mensaje);
                    }
                }
                respuesta.Datos = datos;
            }
            catch (Exception ex)
            {
                respuesta.Mensaje += " " + ex.Message;
                respuesta.Estatus  = false;
                log.Error(respuesta.Mensaje, ex);
            }
            return(respuesta);
        }
        /// <summary>
        /// Agregar nuevo dispositivo.
        /// </summary>
        /// <param name="dispositivo">Objeto dispositivo del modelo DispositivosModel.</param>
        /// <returns></returns>
        internal RespuestaBase AgregarDispositivo(DispositivosModel dispositivo)
        {
            log.Info("Llamada al metodo");
            RespuestaBase respuesta = new RespuestaBase();

            try
            {
                dispositivo.registro = dispositivo.registro != null ? dispositivo.registro : DateTime.Now;
                DISPOSITIVO new_dispositivo = BaseModel.GetModel <DISPOSITIVO>(dispositivo, new DISPOSITIVO());
                DispositivosRepository.AgregarDispositivo(new_dispositivo);
                if (new_dispositivo.id != 0)
                {
                    dispositivo.id  = new_dispositivo.id;
                    respuesta.Datos = dispositivo;

                    if (dispositivo.Componentes.Count > 0)
                    {
                        foreach (ComponentesModel componenete in dispositivo.Componentes)
                        {
                            COMPONENTE new_componenete = BaseModel.GetModel <COMPONENTE>(componenete, new COMPONENTE());
                            if (new_componenete.nombre != null)
                            {
                                try
                                {
                                    new_componenete.registro       = DateTime.Now;
                                    new_componenete.dispositivo_id = new_dispositivo.id;
                                    ComponentesRepository.AgregarComponente(new_componenete);
                                    componenete.registro       = new_componenete.registro;
                                    componenete.id             = new_componenete.id;
                                    componenete.dispositivo_id = new_dispositivo.id;
                                }
                                catch (Exception ex)
                                {
                                    respuesta.Mensaje += " " + ex.Message;
                                    log.Error(respuesta.Mensaje, ex);
                                }
                            }
                        }
                    }
                }
                else
                {
                    string mensaje = String.Format("No fue posible agregar nuevo dispositivo nombre-->{0}.", dispositivo.nombre);
                    respuesta.Estatus  = false;
                    respuesta.Mensaje += " " + mensaje;
                    log.Error(mensaje);
                }
            }
            catch (Exception ex)
            {
                respuesta.Mensaje += " " + ex.Message;
                respuesta.Estatus  = false;
                log.Error(respuesta.Mensaje, ex);
            }
            return(respuesta);
        }