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 DocumentosModel GetDocumento(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name)
 {
     var servicePreferencias = new PreferenciasUsuarioService(_db);
     var doc = servicePreferencias.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto;
     var defectoName = doc != null ? doc.Name : string.Empty;
     var documento = _db.DocumentosUsuario.SingleOrDefault(f => (f.fkusuario == usuario || f.fkusuario == Guid.Empty) && f.tipo == (int)tipoDocumento && f.nombre == name);
     if (documento != null)
     {
         return new DocumentosModel()
         {
             Defecto = defectoName == documento.nombre,
             Tipo = tipoDocumento,
             CustomId = CreateCustomId(tipoDocumento, documento.fkusuario, documento.nombre),
             Nombre = documento.nombre,
             Usuario = documento.fkusuario == Guid.Empty ? "Admin" : _db.Usuarios.Single(j => j.id == documento.fkusuario).usuario,
             Datos = documento.datos,
             Tipoprivacidad = (TipoPrivacidadDocumento)documento.tipoprivacidad,
             Tiporeport = (TipoReport)documento.tiporeport
         };
     }
     return null;
 }
        public void RemovePreferencia(TipoDocumentoImpresion tipoDocumento, Guid usuario, string name)
        {
            var documento =
                _db.DocumentosUsuario.SingleOrDefault(
                    f => f.fkusuario == usuario && f.tipo == (int) tipoDocumento && f.nombre == name);

            var service = new PreferenciasUsuarioService(_db);
            var doc=service.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto");
            if (doc != null)
            {
                if (documento != null)
                {
                    var docObj = doc as PreferenciaDocumentoImpresionDefecto;
                    if (docObj.Name == documento.nombre)
                    {
                        throw new ValidationException("No se puede eliminar el documento por defecto");
                    }

                    _db.DocumentosUsuario.Remove(documento);
                    _db.SaveChanges();
                }
            }
            
        }
 public IEnumerable<DocumentosModel> GetDocumentos(TipoDocumentoImpresion tipoDocumento, Guid usuario)
 {
     var servicePreferencias = new PreferenciasUsuarioService(_db);
     var doc = servicePreferencias.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, usuario, tipoDocumento.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto;
     var defectoName = doc != null ? doc.Name : string.Empty;
     return _db.DocumentosUsuario.Where
         (f => ((f.fkusuario == usuario && f.tipo == (int)tipoDocumento) || (f.tipoprivacidad == 0 && f.tipo == (int)tipoDocumento)))
         .ToList().Select(f=>new DocumentosModel() { Defecto= defectoName == f.nombre,  Tipo = tipoDocumento,CustomId = CreateCustomId(tipoDocumento,f.fkusuario,f.nombre),Nombre=f.nombre,Usuario=f.fkusuario == Guid.Empty ? "Admin": _db.Usuarios.Single(j=>j.id==f.fkusuario).usuario,Tipoprivacidad = (TipoPrivacidadDocumento)f.tipoprivacidad,Tiporeport = (TipoReport)f.tiporeport}).ToList().OrderByDescending(f=>f.Defecto);
 }
예제 #5
0
        public static DocumentosBotonImprimirModel GetListFormatos(TipoDocumentoImpresion tipo, string referencia)
        {
            var user = HttpContext.Current.User as ICustomPrincipal;

            using (var db = MarfilEntities.ConnectToSqlServer(user.BaseDatos))
            {
                var servicePreferencias = new PreferenciasUsuarioService(db);
                var doc     = servicePreferencias.GePreferencia(TiposPreferencias.DocumentoImpresionDefecto, user.Id, tipo.ToString(), "Defecto") as PreferenciaDocumentoImpresionDefecto;
                var service = new DocumentosUsuarioService(db);
                {
                    var lst =
                        service.GetDocumentos(tipo, user.Id)
                        .Where(f => f.Tiporeport == TipoReport.Report);
                    return(new DocumentosBotonImprimirModel()
                    {
                        Tipo = tipo,
                        Lineas = lst.Select(f => f.Nombre),
                        Primarykey = referencia,
                        Defecto = doc?.Name
                    });
                }
            }
        }