public async Task <IHttpActionResult> PostBloquear(string id, BloquearTarjetaViewModel bloquearTarjeta) { var tarjetasTitulares = await _tarjetaRepository.ObtenerTarjetasPorUsuarioAsync(User.ToDinersUser().IdUsuario); var tarjetasAdicionales = tarjetasTitulares.SelectMany(x => x.Adicionales).ToList(); var tarjeta = tarjetasTitulares.Concat(tarjetasAdicionales).FirstOrDefault(x => x.Id == id); if (tarjeta == null) { return(NotFound()); } var result = await _tarjetaRepository.BloquearAsync(tarjeta.Id, bloquearTarjeta.IdMotivo); var usuario = await _usuarioRepository.ObtenerUsuarioAsync(User.ToDinersUser().IdUsuario); if (!result) { return(NotFound()); } tarjeta.NumeroOperacion = tarjetasTitulares.Concat(tarjetasAdicionales).Count(x => x.NumeroOperacion != 0) + 1; tarjeta.FechaOperacion = DateTime.Now; EmailHelper.BloqueoTarjeta_ProcesarEnviarCorreo(bloquearTarjeta, usuario, tarjeta.NumeroOperacion.ToString(), tarjeta.FechaOperacion); return(Ok(new BloquearTarjetaResult { NumeroOperacion = tarjeta.NumeroOperacion, FechaOperacion = tarjeta.FechaOperacion })); }
public static void BloqueoTarjeta_ProcesarEnviarCorreo(BloquearTarjetaViewModel tarjeta, Usuario usuario, string numeroOperacion, DateTime fechaOperacion) { string correoUsuario = (usuario.EmailSeleccionado == "1" ? usuario.EmailPrincipal : usuario.EmailAlternativo); var datosCorreo = BloqueoTarjeta_ConstruirContenido(tarjeta, numeroOperacion, fechaOperacion); var nombreCompleto = tarjeta.NombreTarjetaHabiente + " " + tarjeta.ApellidoPaternoTarjetaHabiente; EnviaroCorreoSocio(datosCorreo, nombreCompleto, correoUsuario, "Canal Web – BLOQUEO TARJETA", numeroOperacion, fechaOperacion.ToString("dd/MM/yyyy HH:mm")); BloqueoTarjeta_EnviaroCorreoDiners(datosCorreo, nombreCompleto, numeroOperacion, fechaOperacion.ToString("dd/MM/yyyy HH:mm")); }
private static List <Diccionario> BloqueoTarjeta_ConstruirContenido(BloquearTarjetaViewModel model, string numeroOperacion, DateTime fechaOperacion) { var datosCorreo = new List <Diccionario>(); //datosCorreo.Add(new Diccionario { Key = "N° Operación", Value = numeroOperacion }); //datosCorreo.Add(new Diccionario { Key = "Fecha y hora", Value = fechaOperacion.ToString("dd/MM/yyyy HH:mm") }); datosCorreo.Add(new Diccionario { Key = "Tarjeta", Value = model.FormatoNombreTarjeta }); datosCorreo.Add(new Diccionario { Key = (model.EsTitular ? "Titular" : "Adicional"), Value = model.NombreTarjetaHabiente + " " + model.ApellidoPaternoTarjetaHabiente }); datosCorreo.Add(new Diccionario { Key = "Motivo", Value = (model.IdMotivo == "robo" ? "Robo" : "Pérdida") }); return(datosCorreo); }