/// <summary>
 /// Permite añadir un registro de auditoria de creación o eliminación de un registro.
 /// </summary>
 /// <param name="tipoTransaccion">Inserción o Eliminación</param>
 /// <param name="idRegistro">Id del registro afectado</param>
 /// <param name="type">Tipo de objeto</param>
 public void GuardarRegistro(TipoTransaccion tipoTransaccion, Guid idRegistro, string type)
 {
     try
     {
         var usuario = SesionUsuario.Usuario;
         var cadena  = tipoTransaccion == TipoTransaccion.Crear
                          ? "Ingreso de " + type + " con Id " + idRegistro
                          : "Eliminación de " + type + " con Id " + idRegistro;
         var auditoria = new Auditoria()
         {
             CadenaCambios = cadena,
             Fecha         = DateTime.Now,
             IdUsuario     = usuario.Id,
             IdRegistro    = idRegistro,
             TipoObjeto    = type,
             TipoAccion    = tipoTransaccion.ToString()
         };
         _db.Auditorias.AddObject(auditoria);
         _db.SaveChanges();
     }
     catch (Exception ex)
     {
         XmlConfigurator.Configure();
         Log.Error("Ha ocurrido un error al guardar el registro de " + tipoTransaccion + " del registro " +
                   idRegistro + " del tipo " + type + ". Error: " + ex.Message);
     }
 }
        public Auditoria ObtenerPorTipo(Guid idRegistro, Type type, TipoTransaccion tipoTransaccion)
        {
            var tipoT     = tipoTransaccion.ToString();
            var auditoria = (from a in _db.Auditorias
                             where
                             a.IdRegistro == idRegistro && a.TipoObjeto == type.Name &&
                             a.TipoAccion.Equals(tipoT)
                             select a).SingleOrDefault();

            return(auditoria);
        }