public void SetPreferencia(TipoDocumentoImpresion tipoDocumento, Guid usuario,TipoPrivacidadDocumento tipoprivacidad,TipoReport tiporeport, string name, byte[] report,bool defecto=false)
        {

            using (var tran = Marfil.Inf.Genericos.Helper.TransactionScopeBuilder.CreateTransactionObject())
            {
                var item = _db.DocumentosUsuario.SingleOrDefault(f => f.fkusuario == usuario && f.tipo == (int)tipoDocumento && f.nombre == name) ??
                           _db.DocumentosUsuario.Create();

                item.fkusuario = usuario;
                item.tipo = (int)tipoDocumento;
                item.nombre = name;
                item.datos = report;
                item.tipoprivacidad = (int)tipoprivacidad;
                item.tiporeport = (int)tiporeport;
                

                _db.DocumentosUsuario.AddOrUpdate(item);
                _db.SaveChanges();

                if (defecto && tiporeport==TipoReport.Report)
                {
                    var service = new PreferenciasUsuarioService(_db);
                    service.SetPreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto", new PreferenciaDocumentoImpresionDefecto() { Name = name, Tipodocumento = tipoDocumento, Usuario = usuario });
                }
                

                tran.Complete();
            }


        }
 public bool ExisteDocumento(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name, TipoPrivacidadDocumento privacidad = TipoPrivacidadDocumento.Publico)
 {
     return                 _db.DocumentosUsuario.Any(f => f.fkusuario == usuario && f.tipo == (int) tipoDocumento && f.nombre == name && f.tipoprivacidad == (int)privacidad);
 }