/// <summary> /// Metodo que Notifica al Usuario Movil acerca del Lote de acuerdo a sus preferencias /// </summary> /// <param name="idLote"></param> /// <param name="idRemate"></param> public static string NotificarTest(int idLote, int idRemate) { string mensaje = string.Empty; try { getTransaccion(); co_rl_loteos lote = new bf_rl_loteos().GetData(idLote); co_re_remates remate = new bf_re_remates().GetData(idRemate); //valido que el remate no sea nulo if (remate != null) { //valido q el remate esta publicado if (remate.id_remateEstadoWeb.id == PUBLICADO) { //valido que el lote no sea nulo if (lote != null) { //valido q este marcado como activo if (lote.id_loteoestado.id == LOTE_ACTIVO) { //una vez validado los estados valido que este marcado como movil co_rl_loteoscanales canal = new bf_rl_loteoscanales().GetData(new co_rl_loteoscanales { id_loteo = { id = lote.id_loteo }, id_canal = { id = CANAL_MOVIL } }).FirstOrDefault(); if (canal != null) { getTransaccion(); //realizo la instancia del wsdl para la notificacion. WsNotificacion notificacion = new WsNotificacionClient(); //obtengo todos los lotes del remate con la opcion de canal movil var mvSubcategorias = new bf_mv_mosubcategorias_subcategorias().GetData(new co_mv_mosubcategorias_subcategorias { id_subcategoria = lote.id_subcategoria }); string subcategoriasMovil = mvSubcategorias.Aggregate(string.Empty, (current, sb) => current + sb.id_mosubcategoria.id + ","); if (subcategoriasMovil.Length > 0) { subcategoriasMovil = subcategoriasMovil.Substring(0, (subcategoriasMovil.Length - 1)); }else { subcategoriasMovil = @"0"; } var usuariosWeb = new bf_ca_usuariosweb().getUsuariosSubcategoriasMovil(subcategoriasMovil); //verifico si hay usuario a los que notificar de lo contrario no hago nada if (usuariosWeb.Any()) { Publicacion publicacion = new Publicacion { esRemate = EsRemate(remate), id = lote.id_loteo, titulo = lote.lo_titulo }; IList<Usuario> usuarios = new List<Usuario>(); string nombreCompleto = string.Empty; foreach (var usu in usuariosWeb) { int uuid = 1749; nombreCompleto = usu.pe_nombrecompleto; usuarios.Add(new Usuario { uuid = uuid.ToString(), nombre = nombreCompleto }); } publicacion.Usuarios = usuarios.ToArray(); NotificarRequest notificarRequest = new NotificarRequest { DatosTransaccion = _transaccion, Publicacion = publicacion }; NotificarResponse response = notificacion.Notificar(notificarRequest); //guardo la respuesta realizada por el WebService GuardarResponseMovil(response, lote.id_loteo, remate.id_remate, publicacion); mensaje = "Lote Notificado Exitosamente."; }else { mensaje = "No hay usuarios al cual Notificar."; } } else { mensaje = "Debe Seleccionar Canal Movil para poder notificar"; } } else { mensaje = "Lote debe estar con estado ACTIVO para poder notificar"; } } else { mensaje = "Lote Nulo"; } } else { mensaje = "Remate debe estar PUBLICADO para poder notificar."; } } else { mensaje = "Remate Nulo"; } } catch (Exception ex) { return "Error al notificar <br>" + ex.Message; } return mensaje; }
public static void NotificarMovilVentaDirecta(co_rl_loteos lote) { try { getTransaccion(); //1. valido si el remate a sido publicado if (lote.id_loteoestado.id == LOTE_ACTIVO) { //realizo la instancia del wsdl para la notificacion. WsNotificacion notificacion = new WsNotificacionClient(); //obtengo todos los lotes del remate con la opcion de canal movil var mvSubcategorias = new bf_mv_mosubcategorias_subcategorias().GetData(new co_mv_mosubcategorias_subcategorias { id_subcategoria = lote.id_subcategoria }); string subcategoriasMovil = mvSubcategorias.Aggregate(string.Empty, (current, sb) => current + sb.id_mosubcategoria.id + ","); subcategoriasMovil = subcategoriasMovil.Substring(0, (subcategoriasMovil.Length - 1)); var usuariosWeb = new bf_ca_usuariosweb().getUsuariosSubcategoriasMovil(subcategoriasMovil); //verifico si hay usuario a los que notificar de lo contrario no hago nada if (usuariosWeb.Any()) { Publicacion publicacion = new Publicacion { esRemate = false, id = lote.id_loteo, titulo = lote.lo_titulo }; IList<Usuario> usuarios = new List<Usuario>(); string nombreCompleto = string.Empty; foreach (var usu in usuariosWeb) { int uuid = usu.id_usuarioWeb; nombreCompleto = usu.pe_nombrecompleto; usuarios.Add(new Usuario { uuid = uuid.ToString(), nombre = nombreCompleto }); } publicacion.Usuarios = usuarios.ToArray(); NotificarRequest notificarRequest = new NotificarRequest { DatosTransaccion = _transaccion, Publicacion = publicacion }; NotificarResponse response = notificacion.Notificar(notificarRequest); GuardarResponseMovil(response, lote.id_loteo, lote.id_remate.id, publicacion); } } } catch (Exception) { //throw new Exception(ex.Message); } }