Exemplo n.º 1
0
        public string SendWA()
        {
            // create a logger placeholder
            Logger logger          = null;
            var    responseContent = string.Empty;

            try
            {
                logger = NexmoLogger.GetLogger("MessagingSendWALogger");
                logger.Open();

                using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
                {
                    var value        = reader.ReadToEndAsync();
                    var chatWAObject = JsonConvert.DeserializeObject <ChatWAObject>(value.Result);
                    logger.Log("Messaging Send WA Chat body: " + JsonConvert.SerializeObject(chatWAObject, Formatting.Indented));
                    logger.Log("Messaging Send WA Chat - The text message entered is: " + chatWAObject.Text);
                    logger.Log("Messaging Send WA Chat - The text message recipient is: " + chatWAObject.To);

                    if (!string.IsNullOrEmpty(chatWAObject.Text))
                    {
                        var message = new MessagingModel()
                        {
                            Sender      = "447418342149",
                            Number      = chatWAObject.To,
                            Text        = chatWAObject.Text,
                            Type        = "WhatsApp",
                            ContentType = "text"
                        };

                        var response = NexmoApi.SendMessage(message, logger, configuration);
                        responseContent = response.Content.ReadAsStringAsync().Result;
                    }
                }
            }
            catch (Exception e)
            {
                logger.Log(Level.Exception, e);
            }
            finally
            {
                logger.Close();
                logger.Deregister();
            }

            return(responseContent);
        }
        public IActionResult Index(MessagingModel messagingModel)
        {
            if (ModelState.IsValid)
            {
                // create a logger placeholder
                Logger logger = null;

                try
                {
                    logger = NexmoLogger.GetLogger("MessagingLogger");
                    logger.Open();

                    // TODO: Update the content type based on content send (e.g. video, audio, text, etc...)
                    messagingModel.ContentType = "text";

                    switch (messagingModel.Type)
                    {
                    case "WhatsApp":
                        messagingModel.TemplateName = "whatsapp:hsm:technology:nexmo:simplewelcome";
                        if (NexmoApi.SendMessage(messagingModel, logger, configuration).IsSuccessStatusCode)
                        {
                            ViewData["feedback"] = "Your " + messagingModel.Type + " message was sent succesfully.";
                        }
                        else
                        {
                            ViewData["error"] = "We could not send your " + messagingModel.Type + " message. Please try again later.";
                        }
                        break;

                    case "Viber":
                        break;

                    case "Facebook Messenger":
                        break;

                    default:
                        var smsResults = NexmoApi.SendSMS(messagingModel, configuration, "");
                        foreach (SMS.SMSResponseDetail responseDetail in smsResults.messages)
                        {
                            string messageDetails = "SMS sent successfully with messageId: " + responseDetail.message_id;
                            messageDetails += " \n to: " + responseDetail.to;
                            messageDetails += " \n at price: " + responseDetail.message_price;
                            messageDetails += " \n with status: " + responseDetail.status;
                            logger.Log(messageDetails);
                            ViewData["feedback"] = messageDetails;
                        }

                        break;
                    }
                }
                catch (Exception e)
                {
                    logger.Log(Level.Exception, e);
                    ViewData["error"] = "There has been an issue dealing with your request. Please try again later.";
                }
                finally
                {
                    logger.Close();
                    logger.Deregister();
                }
            }

            return(View());
        }