public static CorreoPlantillaVariableRowViewModel ConvertToCorreoPlantillaVariableRowViewModel(this CorreoPlantillaVariable correoPlantillaVariable, string asunto, string remitente, string nombreCandidato, string ImagenFirma, string logoCabecera, string lineaTituloPie, string lineaDireccion, string lineaProvincia, string lineaTelefono, string lineaEmail, string lineaWeb, string nombreEntrevistador = "", DateTime?fechaEntrevista = null, string tipoEntrevista = "", int candidaturaId = 0, string urlRecruiting = "", string MensajeSistema = "", string candidato = "") { var correoPlantillaVariableRowViewModel = new CorreoPlantillaVariableRowViewModel() { Asunto = asunto, Remitente = remitente, NombreCandidato = nombreCandidato, NombreEntrevistador = nombreEntrevistador, FechaEntrevista = fechaEntrevista, TipoEntrevista = tipoEntrevista, CandidaturaId = candidaturaId, LineaTituloPie = lineaTituloPie, LineaDireccion = lineaDireccion, LineaProvincia = lineaProvincia, LineaTelefono = lineaTelefono, LineaEmail = lineaEmail, LineaWeb = lineaWeb, UrlRecruiting = urlRecruiting, MensajeSistema = MensajeSistema, Candidato = candidato }; if (fechaEntrevista.HasValue) { correoPlantillaVariableRowViewModel.SoloFecha = fechaEntrevista.Value.Date.ToShortDateString(); correoPlantillaVariableRowViewModel.SoloHora = fechaEntrevista.Value.TimeOfDay; } if (HttpContext.Current != null) { correoPlantillaVariableRowViewModel.imagenFirma = string.Concat(HttpContext.Current.Server.MapPath("~/Content/images/"), ImagenFirma); correoPlantillaVariableRowViewModel.LogoCabecera = string.Concat(HttpContext.Current.Server.MapPath("~/Content/images/"), logoCabecera); } else { correoPlantillaVariableRowViewModel.imagenFirma = string.Concat(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "\\Content\\images\\", ImagenFirma); correoPlantillaVariableRowViewModel.imagenFirma = correoPlantillaVariableRowViewModel.imagenFirma.Replace("file:", "").Remove(0, 1); correoPlantillaVariableRowViewModel.LogoCabecera = string.Concat(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "\\Content\\images\\", logoCabecera); correoPlantillaVariableRowViewModel.LogoCabecera = correoPlantillaVariableRowViewModel.LogoCabecera.Replace("file:", "").Remove(0, 1); } return(correoPlantillaVariableRowViewModel); }
private StringBuilder ExecuteSendMailsEstadosCandidatura(NameValueCollection DiccEstadoCandidaturaPlantillaCorreo, int usuarioAplicacion) { var responseCorreos = _correoBecarioService.GetCorreosPendientesEnvio(); var resultadoEjecucion = new StringBuilder(); if (responseCorreos.IsValid) { foreach (var correo in responseCorreos.Correos) { var response = _correoPlantillaService.GetPlantillaCorreoById(correo.PlantillaId); if (response.IsValid) { ///para cada candidatura creo un correo de su tipo de plantilla que le corresponda var responseEmailBecario = correo.Destinatarios; var responseImagenCabecera = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, NombresVariablesPlantillaCorreoEnum.LogoCabecera.ToString()); var responseImagenFirma = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, NombresVariablesPlantillaCorreoEnum.imagenFirma.ToString()); var Becario = _becarioService.GetBecarioById(correo.BecarioId).BecarioViewModel; string nombreCandidato = Becario.BecarioDatosBasicos.NombreCandidato; CorreoPlantillaVariable cpv = new CorreoPlantillaVariable() { PlantillaId = correo.PlantillaId, }; CorreoPlantillaVariableRowViewModel cr = null; string lineaTituloPie = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, "LineaTituloPie").VarlorDefecto; string lineaDireccion = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, "LineaDireccion").VarlorDefecto; string lineaProvincia = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, "LineaProvincia").VarlorDefecto; string lineaTelefono = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, "LineaTelefono").VarlorDefecto; string lineaEmail = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, "LineaEmail").VarlorDefecto; string lineaWeb = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(correo.PlantillaId, "LineaWeb").VarlorDefecto; cr = CorreoPlantillaVariableMapper.ConvertToCorreoPlantillaVariableRowViewModel(cpv, correo.Asunto, correo.Remitente, nombreCandidato, responseImagenFirma.VarlorDefecto, responseImagenCabecera.VarlorDefecto, lineaTituloPie, lineaDireccion, lineaProvincia, lineaTelefono, lineaEmail, lineaWeb); string body = GetBodyMail(response.correoPlantilla.TextoPlantilla, cr); //se crea el correo en si y se envia if (SendEmail(correo.Remitente, correo.Destinatarios, correo.Asunto, body) == SchedulerExecutionResultEnum.Enviado_OK) { //se crea el mensaje para guaradarlo en el log resultadoEjecucion.AppendLine(DateTime.Now.ToString() + ":Enviado correo OK a destinatario " + correo.Destinatarios); //se actualiza a enviado=true y fecha Envio correo.Enviado = true; correo.FechaEnvio = ModifiableEntityHelper.GetCurrentDate(); _correoBecarioService.SaveCorreo(correo, usuarioAplicacion); //se crea la bitacora indicando que se ha realizado el envio de email PENDIENTE //var bitacoraResponse = _bitacoraService.GenerateBitacoraCorreo(correo.CandidaturaId, "Envio de correo realizado con exito."); //response.IsValid = response.IsValid && bitacoraResponse.IsValid; //if (!string.IsNullOrWhiteSpace(bitacoraResponse.ErrorMessage)) //{ // response.ErrorMessage = bitacoraResponse.ErrorMessage; //} } else { //se crea el mensaje para guaradarlo en el log resultadoEjecucion.AppendLine(DateTime.Now.ToString() + ":ERROR al enviar correo a destinatario " + correo.Destinatarios); } } else { //se crea el mensaje para guaradarlo en el log resultadoEjecucion.AppendLine(DateTime.Now.ToString() + ":Error al obtener la plantilla " + response.correoPlantilla.NombrePlantilla); } } } else { resultadoEjecucion.AppendLine(DateTime.Now.ToString() + ":Error al obtener los correos pendientes"); } return(resultadoEjecucion); }