185 lines
6.5 KiB
C#
185 lines
6.5 KiB
C#
using Microsoft.VisualBasic;
|
|
using System;
|
|
using System.Collections;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using System.Diagnostics;
|
|
using System.Drawing.Imaging;
|
|
using System.Linq;
|
|
using System.Net.Mail;
|
|
using System.Net.Mime;
|
|
using tsEFCore8.Extensiones;
|
|
using tsUtilidades.Extensiones;
|
|
|
|
namespace bdAsegasa.db
|
|
{
|
|
[NotMapped]
|
|
public partial class correos
|
|
{
|
|
[NotMapped]
|
|
public virtual string FicheroAdjunto
|
|
{
|
|
get
|
|
{
|
|
if (this.idFicheroAdjunto.HasValue)
|
|
{
|
|
return this.idFicheroAdjuntoNavigation.NombreFichero;
|
|
}
|
|
else
|
|
{
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
|
|
public static int GeneraRegistroCorreoConAdjunto(tscgestionasegasa bd, string Asunto, string Cuerpo, cuentascorreo cuenta, byte[] Fichero, string NombreFichero, string DescripcionFichero, string Destinatario, string Copia = "", string CopiaOculta = "", bool MarcarComoAnulado = false, string Remitente = "", int? idAplicacion = null, string CodigoAplicacion = "")
|
|
{
|
|
int resultado = 0;
|
|
try
|
|
{
|
|
if (bd == null) bd = tscgestionasegasa.NuevoContexto();
|
|
int idTipoAdjunto = bd.enumeraciones.First(x => x.Codigo == "TIPFIC.ADJCOR").idEnumeracion;
|
|
|
|
var f = new ficheros
|
|
{
|
|
idTipo = idTipoAdjunto,
|
|
Descripcion = DescripcionFichero,
|
|
Fichero = Fichero,
|
|
NombreFichero = NombreFichero,
|
|
Fecha = DateTime.Now
|
|
};
|
|
bd.ficheros.Add(f);
|
|
bd.SaveChanges();
|
|
|
|
var correo = new correos
|
|
{
|
|
Asunto = Asunto,
|
|
Cuerpo = Cuerpo,
|
|
Destinatario = Destinatario,
|
|
Copia = Copia,
|
|
CopiaOculta = CopiaOculta,
|
|
DireccionRespuesta = cuenta.ResponderA,
|
|
FechaCreacion = bd.AhoraMySql(),
|
|
idcuenta = cuenta.idCuenta,
|
|
idFicheroAdjunto = f.idFichero,
|
|
idAplicacion = idAplicacion,
|
|
CodigoAplicacion = CodigoAplicacion
|
|
};
|
|
|
|
if (string.IsNullOrEmpty(Remitente))
|
|
{
|
|
correo.Remitente = cuenta.Remitente;
|
|
}
|
|
else
|
|
{
|
|
correo.Remitente = Remitente;
|
|
}
|
|
|
|
if (MarcarComoAnulado)
|
|
{
|
|
correo.FechaAnulacion = DateTime.Now;
|
|
}
|
|
|
|
bd.correos.Add(correo);
|
|
bd.GuardarCambios();
|
|
return correo.idcorreo;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.Write(ex.Message);
|
|
throw;
|
|
}
|
|
}
|
|
|
|
public static int GeneraRegistroCorreo(tscgestionasegasa bd, string Asunto, string Cuerpo, bdAsegasa.db.cuentascorreo cuenta, string Destinatario, string Copia = "", string CopiaOculta = "", int? idfichero = null, bool MarcarComoAnulado = false, string Remitente = "", string ResponderA = "")
|
|
{
|
|
try
|
|
{
|
|
if (bd == null) bd = tscgestionasegasa.NuevoContexto();
|
|
var correo = new correos
|
|
{
|
|
Asunto = Asunto,
|
|
Cuerpo = Cuerpo,
|
|
Destinatario = Destinatario,
|
|
Copia = Copia,
|
|
CopiaOculta = CopiaOculta,
|
|
FechaCreacion = bd.AhoraMySql(),
|
|
idcuenta = cuenta.idCuenta,
|
|
idFicheroAdjunto = idfichero
|
|
};
|
|
|
|
if (!string.IsNullOrEmpty(ResponderA))
|
|
{
|
|
correo.DireccionRespuesta = ResponderA;
|
|
}
|
|
else
|
|
{
|
|
correo.DireccionRespuesta = cuenta.ResponderA;
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(Remitente))
|
|
{
|
|
correo.Remitente = Remitente;
|
|
}
|
|
else
|
|
{
|
|
correo.Remitente = cuenta.Remitente;
|
|
}
|
|
if (MarcarComoAnulado) correo.FechaAnulacion = DateTime.Now;
|
|
bd.correos.Add(correo);
|
|
bd.GuardarCambios();
|
|
return correo.idcorreo;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Debug.Write(ex.Message);
|
|
throw new Exception(ex.Message, ex);
|
|
}
|
|
}
|
|
|
|
public static int GeneraRegistroCorreoVariosFicheros(tscgestionasegasa bd, string Asunto, string Cuerpo, cuentascorreo cuenta, string Destinatario, System.Collections.Generic.List<int> idficheros = null, DateTime? FechaAnulacion = null)
|
|
{
|
|
try
|
|
{
|
|
var correo = new correos
|
|
{
|
|
Asunto = Asunto,
|
|
Cuerpo = Cuerpo,
|
|
Destinatario = Destinatario,
|
|
DireccionRespuesta = cuenta.Remitente,
|
|
FechaCreacion = bd.AhoraMySql(),
|
|
idcuenta = cuenta.idCuenta,
|
|
Remitente = cuenta.Remitente,
|
|
FechaAnulacion = FechaAnulacion
|
|
};
|
|
if (idficheros != null)
|
|
{
|
|
foreach (var f in idficheros)
|
|
{
|
|
var nf = new ficherosadjuntos { idFichero = f };
|
|
correo.ficherosadjuntos.Add(nf);
|
|
}
|
|
}
|
|
bd.correos.Add(correo);
|
|
bd.GuardarCambios();
|
|
return correo.idcorreo;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception("Error en GeneraRegistroCorreoVariosFicheros. Asunto:" + Asunto + " " + ex.Message, ex);
|
|
}
|
|
}
|
|
|
|
public class CorreoReducido
|
|
{
|
|
public int idCorreo { get; set; }
|
|
public string Destinatario { get; set; }
|
|
public string Asunto { get; set; }
|
|
public DateTime FechaCreacion { get; set; }
|
|
public DateTime? FechaAnulacion { get; set; }
|
|
public string MensajeError { get; set; }
|
|
public string Aplicacion { get; set; }
|
|
public string CodigoAplicacion { get; set; }
|
|
}
|
|
|
|
}
|
|
} |