public StringBuilder EnviarEmailBecario(NameValueCollection DiccEstadoBecarioPlantillaCorreo, NameValueCollection DiccConfiguracionServidorCorreo, int usuarioAplicacion)
        {
            _DiccConfiguracionServidorCorreo = DiccConfiguracionServidorCorreo;

            int           CentroId = 0;
            int           tipoMedioContactoEmail = GetTipoMedioContactoEmail();
            StringBuilder resultadoEnvio         = new StringBuilder();

            var IteradorEstadosEmails = DiccEstadoBecarioPlantillaCorreo.AllKeys.GetEnumerator();
            var response = _becarioService.GetBecariosEstadoDescartado();

            while (IteradorEstadosEmails.MoveNext())
            {
                if (response.IsValid)
                {
                    foreach (var becario in response.BecarioRowViewModel)
                    {
                        CentroId = _becarioService.GetCentroBecario(becario.BecarioId).CentroId;
                        var responsePlantilla = _correoPlantillaService.GetPlantillaIdByNombrePlantilla(DiccEstadoBecarioPlantillaCorreo[IteradorEstadosEmails.Current.ToString()], CentroId);

                        if (responsePlantilla.IsValid)
                        {
                            if (!ExisteCorreo(becario.BecarioId, responsePlantilla.PlantillaId))
                            {
                                var responseEmailBecario = _becarioService.GetEmailBecario(becario.BecarioId, tipoMedioContactoEmail);
                                var responseAsunto       = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(responsePlantilla.PlantillaId, NombresVariablesPlantillaCorreoEnum.Asunto.ToString());
                                var responseRemitente    = _correoPlantillaVariableService.GetValorDefectoNombreVariablePlantillaCorreo(responsePlantilla.PlantillaId, NombresVariablesPlantillaCorreoEnum.Remitente.ToString());

                                if (responseEmailBecario.IsValid && responseAsunto.IsValid && responseRemitente.IsValid)
                                {
                                    CorreoBecario correoBecario = new CorreoBecario()
                                    {
                                        PlantillaId   = responsePlantilla.PlantillaId,
                                        Enviado       = false,
                                        BecarioId     = becario.BecarioId,
                                        Asunto        = responseAsunto.VarlorDefecto,
                                        Remitente     = responseRemitente.VarlorDefecto,
                                        Destinatarios = responseEmailBecario.EmailBecario,
                                        TipoAviso     = null,
                                        IsActivo      = true
                                    };

                                    var model        = CorreoBecarioMapper.ConvertToCorreoBecarioRowViewModel(correoBecario);
                                    var responseSave = _correoBecarioService.SaveCorreo(model, usuarioAplicacion);
                                }
                            }
                        }
                    }
                }
            }
            resultadoEnvio = resultadoEnvio.Append(ExecuteSendMailsEstadosCandidatura(DiccEstadoBecarioPlantillaCorreo, usuarioAplicacion));
            return(resultadoEnvio);
        }
Beispiel #2
0
        public GetCorreosBecarioPendientesEnvioResponse GetCorreosPendientesEnvio()
        {
            var response = new GetCorreosBecarioPendientesEnvioResponse();

            try
            {
                var correos = _correoBecarioRepository.GetByCriteria(x => x.Enviado == false && x.IsActivo == true);

                response.Correos = CorreoBecarioMapper.ConvertToCorreoBecarioRowViewModel(correos);
                response.IsValid = true;
            }
            catch (Exception ex)
            {
                response.IsValid      = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }
Beispiel #3
0
        public GetCorreoByBecarioPlantillaResponse GetCorreoByBecarioPlantilla(int BecarioId, int PlantillaId)
        {
            var response = new GetCorreoByBecarioPlantillaResponse();

            try
            {
                IQueryable <CorreoBecario> correos;

                correos = _correoBecarioRepository.GetByCriteria(x => x.BecarioId == BecarioId && x.PlantillaId == PlantillaId);

                response.Correos        = CorreoBecarioMapper.ConvertToCorreoBecarioRowViewModel(correos);
                response.TotalElementos = response.Correos.Count();
                response.IsValid        = true;
            }
            catch (Exception ex)
            {
                response.IsValid      = false;
                response.ErrorMessage = ex.Message;
            }

            return(response);
        }