コード例 #1
0
        public async Task <HttpResponseMessage> EnviarMensajeAsync()
        {
            //if (data == null)
            //    return new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "POST body is null" };

            try
            {
                List <MensajeUsuarioModel> us = new List <MensajeUsuarioModel> {
                    new MensajeUsuarioModel {
                        id     = "DAVID",
                        nombre = "DAVID",
                        email  = "*****@*****.**",
                        canal  = "PUSH",
                    },
                };

                MensajeProveedorModel people = new MensajeProveedorModel {
                    cod_aplicacion = "CP",
                    desitinatarios = "",
                    formato        = "JSON",
                    listausuarios  = us,
                    asunto         = "Prueba de Mensaje con servicio",
                    mensaje        = "Mensaje de prueba a ver si llegaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                    prioridad      = 1
                };


                ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
                var url        = "http://localhost/ProveedorNotificacionBus/SendMessage";
                var webrequest = (HttpWebRequest)System.Net.WebRequest.Create(url);

                webrequest.Method      = WebRequestMethods.Http.Post;
                webrequest.ContentType = "application/json; charset=UTF-8";


                JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
                {
                    DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
                };

                var SendData = JsonConvert.SerializeObject(people, microsoftDateFormatSettings);
                var byteData = UTF8Encoding.UTF8.GetBytes(SendData.ToString());

                Stream       postStream = null;
                Stream       response   = null;
                StreamReader reader     = null;

                postStream = webrequest.GetRequestStream();


                postStream.Write(byteData, 0, byteData.Length);



                response = webrequest.GetResponse().GetResponseStream();
                reader   = new StreamReader(response);


                return(new HttpResponseMessage {
                    StatusCode = HttpStatusCode.OK, ReasonPhrase = "Sended"
                });
            }
            catch (Exception ex)
            {
                return(new HttpResponseMessage {
                    StatusCode = HttpStatusCode.InternalServerError, ReasonPhrase = $"Message could not be Sended: {ex.Message}"
                });
            }
            finally
            {
                //session.Dispose();
            }
        }
コード例 #2
0
        public async Task <HttpResponseMessage> PostAsync([FromBody] object mensajeProveedorModel)
        {
            string messageResponse = "";

            _log   = new TraceLog();
            _email = new EmailService(_configuration);
            String[] _canal = null;
            if (mensajeProveedorModel != null)
            {
                try
                {
                    MensajeProveedorModel mensajeProveedor = JsonConvert.DeserializeObject <MensajeProveedorModel>(mensajeProveedorModel.ToString());
                    try
                    {
                        //SE VALIDA QUE LA APLICACION ESTE REGISTRADA EN EL SONDAMQ
                        var appVal = aplicacion.Read(mensajeProveedor.cod_aplicacion);
                        if (((List <NOT_APLICACION>)appVal).Count > 0)
                        {
                            TraceLog.LogTrace("INFO", appLog, "APLICACION REGISTRADA");
                            if (mensajeProveedor.listausuarios.Count > 0)
                            {
                                NOT_MENSAJE mdMensaje = new NOT_MENSAJE
                                {
                                    id_aplicacion = ((List <NOT_APLICACION>)appVal)[0].id_not_aplicacion,
                                    prioridad     = mensajeProveedor.prioridad,
                                    formato       = mensajeProveedor.formato,
                                    mensaje       = mensajeProveedor.mensaje,
                                    fecha_envio   = DateTime.Now,
                                    asunto        = mensajeProveedor.asunto
                                };
                                try
                                {
                                    mdMensaje = mensaje.Create(mdMensaje);

                                    //SE RECORRE LOS USUARIOS A LOS CUALES SE LES VA A ENVIAR LOS MENSAJES
                                    for (int i = 0; i < mensajeProveedor.listausuarios.Count; i++)
                                    {
                                        _canal = null;
                                        if (mensajeProveedor.listausuarios[i].canal != "")
                                        {
                                            _canal = mensajeProveedor.listausuarios[i].canal.Split(",");
                                            NOT_MENSAJE_USUARIO mdUsuario = new NOT_MENSAJE_USUARIO
                                            {
                                                id_usuario     = mensajeProveedor.listausuarios[i].id,
                                                id_not_mensaje = mdMensaje.id_not_mensaje,
                                            };

                                            try
                                            {
                                                mdUsuario = usuario.Create(mdUsuario);
                                                try
                                                {
                                                    if (_canal[0] == "PUSH")
                                                    {
                                                        var endPointMessage = await Fabrica.MessageBusConfig.BusControl.GetSendEndpoint(new Uri(
                                                                                                                                            _configuration["BusMensage:host"] + mensajeProveedor.cod_aplicacion + _configuration["BusMensage:optionHost"] + mensajeProveedor.cod_aplicacion));

                                                        await endPointMessage.Send <ContratoSuscriptor>(new
                                                        {
                                                            Mensaje          = mensajeProveedor.mensaje,
                                                            Usuario          = mensajeProveedor.listausuarios[i].id,
                                                            Asunto           = mensajeProveedor.asunto,
                                                            IsOk             = true,
                                                            IdmensajeUsuario = mdUsuario.id_not_mensaje_usuario
                                                        });
                                                    }

                                                    if (_canal[1] == "EMAIL")
                                                    {
                                                        if (ValidatorCommon.ComprobarFormatoEmail(mensajeProveedor.listausuarios[i].email))
                                                        {
                                                            await _email.SendEmailAsync(mensajeProveedor.listausuarios[i].email, mensajeProveedor.mensaje, mensajeProveedor.asunto);
                                                        }
                                                        else
                                                        {
                                                            TraceLog.LogTrace("INFO", appLog, "EL EMAIL:" + mensajeProveedor.listausuarios[i].email + " NO ES VALIDO");
                                                        }
                                                    }
                                                }
                                                catch (Exception e)
                                                {
                                                    messageResponse = e.Message.ToString();
                                                    TraceLog.LogTrace("ERROR", appLog, messageResponse);
                                                }
                                            }
                                            catch (Exception e)
                                            {
                                                messageResponse = e.Message.ToString();
                                                TraceLog.LogTrace("ERROR", appLog, messageResponse);
                                            }
                                        }
                                        else
                                        {
                                            TraceLog.LogTrace("ERROR", appLog, "CANALES NO VALIDOS");
                                        }
                                    }
                                    TraceLog.LogTrace("INFO", appLog, "MENSAJES ENCOLADOS EN EL BUS:" + _configuration["BusMensage:host"] + " EN LA COLA:" + mensajeProveedor.cod_aplicacion);
                                }
                                catch (Exception exm)
                                {
                                    messageResponse = exm.Message.ToString();
                                    TraceLog.LogTrace("ERROR", appLog, messageResponse);
                                }
                            }
                            else
                            {
                                messageResponse = "NO HAY USUARIOS A LOS CUALES ENVIAR EL MENSAJE";
                                TraceLog.LogTrace("INFO", appLog, messageResponse);
                            }
                        }
                        else
                        {
                            messageResponse = "APLICACION NO SE ENCUENTRA REGISTRADA";
                            TraceLog.LogTrace("INFO", appLog, messageResponse);
                        }
                    }catch (Exception ex) {
                        messageResponse = ex.Message.ToString();
                        TraceLog.LogTrace("ERROR", appLog, messageResponse);
                    }
                }catch (Exception e) {
                    messageResponse = e.Message.ToString();
                    TraceLog.LogTrace("ERROR", appLog, messageResponse);
                }
                finally {
                }
            }
            return(new HttpResponseMessage {
                StatusCode = HttpStatusCode.OK, ReasonPhrase = messageResponse
            });
        }