public void CheckTriggerSMS(string messageContent, string mobileNumber, bool expected)
        {
            MessagingModel sendSms = new MessagingModel();
            bool           actual  = sendSms.TriggerSMS(messageContent, mobileNumber);

            Assert.Equal(expected, actual);
        }
Exemple #2
0
        private void Button_SendSingleMessage_Click(object sender, EventArgs e)
        {
            Label_ErrorSingleSMS.Text = "";

            MessagingController singleSmsCt = new MessagingController();
            MessagingModel      singleSmsMd = new MessagingModel();

            singleSmsMd.recipient = TextBox_SingleReciepient.Text;
            singleSmsMd.smsText   = RichText_SingleMessage.Text;

            if (singleSmsCt.checkForEmpty(singleSmsMd))
            {
                NotifySMS sms = new NotifySMS();
                if (sms.loginSMS())
                {
                    if (sms.singleSMS(singleSmsMd))
                    {
                        MessageBox.Show("SMS has been sent");
                        clearSingelSMSFeilds();
                    }
                    else
                    {
                        MessageBox.Show("SMS Not Sent. Somthing went wrong!");
                    }
                }
                else
                {
                    MessageBox.Show("SMS Login Failed");
                }
            }
            else
            {
                Label_ErrorSingleSMS.Text = singleSmsMd.errorMessage;
            }
        }
Exemple #3
0
        public ActionResult DeleteConfirmed(int id)
        {
            MessagingModel messagingModel = db.messagingModel.Find(id);

            db.messagingModel.Remove(messagingModel);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #4
0
        public void MessagingPageTest()
        {
            var           controller     = new HomeController(new TelemetryClient());
            var           messagingModel = new MessagingModel();
            IActionResult result         = controller.Messaging(messagingModel);

            Assert.AreEqual(null, controller.ViewData["Message"]);
        }
Exemple #5
0
        public void welcomeMessage(StudentModels student, ApplicationUser user)
        {
            MessagingModel message = new MessagingModel();

            message.subject      = "Welcome to Edulytics " + student.fName + "!";
            message.message      = "Welcome " + student.fName + "! This is your direct message section which allows you to privately message anyone in your school with just the click of a mouse. You're in the \"" + student.ClassModel.className + "\" class which is part of the " + student.ClassModel.ProgramModels.programName + " program. Have a great start to this new program and once again welcome from all of us here at Edulytics.";
            message.recieving_id = user.Id;
            message.sending_id   = this.User.Identity.GetUserId();
            message.dateSent     = DateTime.Now;
            db.messagingModel.Add(message);
        }
Exemple #6
0
        public HttpResponseMessage SendSms()
        {
            // create a logger placeholder
            Logger logger      = null;
            var    httpRequest = new HttpRequestMessage();

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

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

                    if (!string.IsNullOrEmpty(chatSmsObject.Text))
                    {
                        var message = new MessagingModel()
                        {
                            Sender = configuration["appSettings:Nexmo.Application.Number.From.UK"],
                            Number = chatSmsObject.To,
                            Text   = chatSmsObject.Text
                        };

                        var smsResults = NexmoApi.SendSMS(message, 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);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                logger.Log(Level.Exception, e);
                return(httpRequest.CreateResponse(HttpStatusCode.InternalServerError));
            }
            finally
            {
                logger.Close();
                logger.Deregister();
            }

            return(httpRequest.CreateResponse(HttpStatusCode.OK));
        }
Exemple #7
0
 public IActionResult Messaging(MessagingModel model)
 {
     try
     {
         model.telemetryClient = telemetry;
         model.SendMessage();
         return(View());
     }
     catch (Exception)
     {
         return(RedirectToAction("Error"));
     }
 }
Exemple #8
0
        // GET: Messaging/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MessagingModel message = db.messagingModel.Find(id);

            if (message == null)
            {
                return(HttpNotFound());
            }
            MessagingViewModel     viewModel   = new MessagingViewModel();
            List <StudentModels>   students    = db.studentModels.ToList();
            List <InstructorModel> instructors = db.instructorModel.ToList();
            string UserId = System.Web.HttpContext.Current.User.Identity.GetUserId();

            if (message.recieving_id == UserId)
            {
                message.read = true;
            }
            foreach (StudentModels student in students)
            {
                string name = student.fName + " " + student.lName;
                if (student.student_account_Id == message.recieving_id)
                {
                    viewModel.recip = name;
                }
                if (student.student_account_Id == message.sending_id)
                {
                    viewModel.sender = name;
                }
            }
            foreach (InstructorModel instructor in instructors)
            {
                string name = instructor.fName + " " + instructor.lName;
                if (instructor.instructor_account_Id == message.recieving_id)
                {
                    viewModel.recip = name;
                }
                if (instructor.instructor_account_Id == message.sending_id)
                {
                    viewModel.sender = name;
                }
            }
            message.receiving_User = db.Users.Find(message.recieving_id);
            message.sending_User   = db.Users.Find(message.sending_id);
            viewModel.Message      = message;
            db.SaveChanges();
            return(View(viewModel));
        }
Exemple #9
0
        // GET: Messaging/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MessagingModel messagingModel = db.messagingModel.Find(id);

            if (messagingModel == null)
            {
                return(HttpNotFound());
            }
            return(View(messagingModel));
        }
Exemple #10
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);
        }
Exemple #11
0
        public static string sendFeedback(string type, string description, string firstname, string lastname, string email)
        {
            MessagingModel msgModel = new MessagingModel();
            string         fullname = firstname + " " + lastname;
            UserModel      user     = new UserModel();

            user.emailId  = ConfigurationManager.AppSettings["SUPPORT_EMAIL"].ToString();
            user.userName = "******";

            string emailContent = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"></head><body><p> Dear Admin, </p><p><strong>Feedback Subject :</strong> <span>" + type + "</span></p><p style='text-indent:5em; text-align:justify;'>" + description + "</p><p>Regards,</p><p style='margin:0;'>" + fullname + "</p>" + email + "</body></html>";

            string retVal = msgModel.TriggerEmail(user, "ReacHelp Feedback", emailContent);

            //string retVal = msgModel.TriggerEmail("*****@*****.**", "Admin", "Welcome to ReacHelp", "<!DOCTYPE html><html><head><meta charset=\"utf-8\"></head><body><p> Dear Admin, </p><p><strong>Feedback Subject :</strong> <span>" + type + "</span></p><p style='text-indent:5em; text-align:justify;'>" + description + "</p><p>Regards,</p><p style='margin:0;'>" + fullname + "</p>" + email + "</body></html>");

            return(retVal);
        }
Exemple #12
0
        public ActionResult Create(MessagingViewModel viewModel)
        {
            MessagingModel message = new MessagingModel();
            string         UserId  = System.Web.HttpContext.Current.User.Identity.GetUserId();

            message.subject        = viewModel.Message.subject;
            message.message        = viewModel.Message.message;
            message.recieving_id   = viewModel.Message.recieving_id;
            message.receiving_User = db.Users.Find(message.recieving_id);
            message.sending_id     = UserId;
            message.sending_User   = db.Users.Find(message.sending_id);
            message.dateSent       = DateTime.Now;
            message.read           = false;

            if (ModelState.IsValid)
            {
                db.messagingModel.Add(message);
                db.SaveChanges();
                return(RedirectToAction("Inbox"));
            }
            viewModel.recipients = new List <SelectListItem>();
            var instructors = db.instructorModel.ToList();
            var students    = db.studentModels.ToList();

            foreach (InstructorModel instructor in instructors)
            {
                viewModel.recipients.Add(new SelectListItem()
                {
                    Text = "Instructor: " + instructor.lName + ", " + instructor.fName, Value = instructor.instructor_account_Id
                });
            }
            foreach (StudentModels student in students)
            {
                viewModel.recipients.Add(new SelectListItem()
                {
                    Text = "Student: " + student.lName + ", " + student.fName, Value = student.student_account_Id
                });
            }

            return(View(viewModel));
        }
Exemple #13
0
        public void Update(MessagingModel messagingParam)
        {
            var messaging = _context.Messaging.Find(messagingParam.Id);

            if (messaging == null)
            {
                throw new AppException("Message not found");
            }


            // update user properties
            messaging.Id          = messagingParam.Id;
            messaging.WilayatCode = messagingParam.WilayatCode;
            messaging.By          = messagingParam.By;
            messaging.CreatedAt   = messagingParam.CreatedAt;
            messaging.Message     = messagingParam.Message;
            messaging.To          = messagingParam.To;
            messaging.WilayatCode = messagingParam.WilayatCode;
            _context.Messaging.Update(messaging);
            _context.SaveChanges();
        }
        public bool singleSMS(MessagingModel singleSmsMd)
        {
            string singleMessage   = singleSmsMd.smsText;
            string singleRecipient = singleSmsMd.recipient;

            try
            {
                bool status5 = wts.SendSms(singleRecipient, singleMessage);
                if (status5)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Exemple #15
0
        public static List <MessagingModel> ListSMSOperators()
        {
            MessagingModel msgModel = new MessagingModel();

            return(msgModel.ListSMSOperators());
        }
        public IActionResult Index(RegistrationModel viewModel, string verifyAction)
        {
            if (ModelState.IsValid)
            {
                // create a logger
                Logger logger = NexmoLogger.GetLogger("RegistrationLogger");;

                try
                {
                    if (verifyAction == "Register")
                    {
                        if (logger == null)
                        {
                            logger = NexmoLogger.GetLogger("RegistrationLogger");
                        }
                        logger.Open();

                        if (string.IsNullOrEmpty(viewModel.PinCode) && viewModel.Workflow == "1")
                        {
                            var results = NexmoApi.SendVerifyRequest(viewModel, logger, configuration);
                            if (results.status == "0")
                            {
                                logger.Log("Verify request successfully created with requestId: " + results.request_id);
                                ViewData["feedback"]           = "Thanks " + viewModel.Name + ". We have sent a verification code to the number you provided.";
                                ViewData["requestId"]          = results.request_id;
                                ViewData["number"]             = viewModel.Number;
                                ViewData["model"]              = "0";
                                ViewData["RegistrationStatus"] = "started";
                            }
                            else if (results.status == "10")
                            {
                                ViewData["warning"] = "Please wait for the previous request to complete, then try again.";
                                logger.Log(Level.Warning, "Response code: " + results.status + " - Concurrent verifications to the same number are not allowed. Request ID: " + results.request_id);
                            }
                            else
                            {
                                ViewData["error"] = "Your request could not be created at this time. Please try again later.";
                                logger.Log(Level.Warning, "Response code: " + results.status + " - Request could not be completed. Request ID: " + results.request_id + " - Error Text: " + results.error_text);
                            }
                        }
                        else
                        {
                            // If a different workflow than the default has been selected but the PIN code is not generated in the UI
                            // then generate a random PIN
                            if (string.IsNullOrEmpty(viewModel.PinCode))
                            {
                                var    random = new Random();
                                string pin    = random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();
                                pin += random.Next(0, 9).ToString();

                                viewModel.PinCode = pin;
                            }

                            var results  = NexmoApi.VerifyRequest(viewModel, logger, configuration);
                            var response = JsonConvert.DeserializeObject <VerifyResponse>(results);

                            if (response.status == "0")
                            {
                                logger.Log("Verify request successfully created with requestId: " + response.request_id);
                                ViewData["feedback"]           = "Thanks " + viewModel.Name + ". We have sent a verification code to the number you provided.";
                                ViewData["requestId"]          = response.request_id;
                                ViewData["number"]             = viewModel.Number;
                                ViewData["model"]              = "2";
                                ViewData["RegistrationStatus"] = "started";
                            }
                            else if (response.status == "10")
                            {
                                ViewData["warning"] = "Please wait for the previous request to complete, then try again.";
                                logger.Log(Level.Warning, "Response code: " + response.status + " - Concurrent verifications to the same number are not allowed. Request ID: " + response.request_id);
                            }
                            else
                            {
                                ViewData["error"] = "Your request could not be created at this time. Please try again later.";
                                logger.Log(Level.Warning, "Response code: " + response.status + " - Request could not be completed. Request ID: " + response.request_id + " - Error Text: " + response.error_text);
                            }
                        }
                    }
                    else if (verifyAction == "Check")
                    {
                        if (logger == null)
                        {
                            logger = NexmoLogger.GetLogger("RegistrationLogger");
                        }
                        logger.Open();

                        string pinCode   = viewModel.PinCode;
                        string requestId = viewModel.RequestId;
                        string number    = viewModel.Recipient;
                        var    results   = new NumberVerify.CheckResponse();

                        if (viewModel.Model == "2") // pay per request pricing model
                        {
                            results = NexmoApi.CheckVerify(viewModel, logger, configuration, requestId);
                        }
                        else
                        {
                            results = NexmoApi.CheckVerifyRequest(viewModel, logger, configuration, requestId);
                        }

                        // log the request response for future debugging
                        string response = "Response returned with status code: " + results.status;
                        response += " and error text: " + results.error_text;
                        response += " and price: " + results.price + " " + results.currency;
                        response += " and eventId: " + results.event_id;
                        logger.Log(response);

                        if (results.status == "0")
                        {
                            // provide feedback on the page
                            ViewData["feedback"] = "Your code has been successfully verified.";
                            logger.Log("PIN code: " + pinCode + " successfully verified. We have sent an confirmation message to the number provided.");
                            ViewData["RegistrationStatus"] = "completed";

                            // send confirmation message
                            var messagingModel = new MessagingModel()
                            {
                                Sender = viewModel.Name,
                                Number = viewModel.Number,
                                Text   = "Your account has been created successfully. You can access it here: http://dashboard.nexmo.com"
                            };
                            var smsResults = NexmoApi.SendSMS(messagingModel, configuration, "60");
                            foreach (SMS.SMSResponseDetail responseDetail in smsResults.messages)
                            {
                                string messageDetails = "SMS sent successfully with messageId: " + responseDetail.message_id;
                                messageDetails += " for Verify requestId: " + requestId;
                                messageDetails += " to: " + responseDetail.to;
                                messageDetails += " at price: " + responseDetail.message_price;
                                messageDetails += " with status: " + responseDetail.status;
                                logger.Log(messageDetails);
                            }
                        }
                        else
                        {
                            ViewData["warning"] = "Your code could not be verified. Please try again.";
                            logger.Log(Level.Warning, "The code could not be verified with status: " + results.status + " and message: " + results.error_text);
                            ViewData["RegistrationStatus"] = "started";
                        }
                    }
                }
                catch (Exception e)
                {
                    logger.Log(Level.Exception, e);
                    ViewData["error"] = "There has been an issue dealing with your request. Please try again later.";
                }
                finally
                {
                    if (logger != null)
                    {
                        logger.Close();
                        logger.Deregister();
                    }
                }
            }

            return(View(viewModel));
        }
Exemple #17
0
 public MessagingModel Create(MessagingModel messaging)
 {
     _context.Messaging.Add(messaging);
     _context.SaveChanges();
     return(messaging);
 }
        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());
        }
Exemple #19
0
        public static bool AddSMSMaster(MessagingModel smsDetails)
        {
            MessagingModel msgModel = new MessagingModel();

            return(msgModel.AddSMSMaster(smsDetails));
        }