public void CheckTriggerSMS(string messageContent, string mobileNumber, bool expected) { MessagingModel sendSms = new MessagingModel(); bool actual = sendSms.TriggerSMS(messageContent, mobileNumber); Assert.Equal(expected, actual); }
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; } }
public ActionResult DeleteConfirmed(int id) { MessagingModel messagingModel = db.messagingModel.Find(id); db.messagingModel.Remove(messagingModel); db.SaveChanges(); return(RedirectToAction("Index")); }
public void MessagingPageTest() { var controller = new HomeController(new TelemetryClient()); var messagingModel = new MessagingModel(); IActionResult result = controller.Messaging(messagingModel); Assert.AreEqual(null, controller.ViewData["Message"]); }
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); }
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)); }
public IActionResult Messaging(MessagingModel model) { try { model.telemetryClient = telemetry; model.SendMessage(); return(View()); } catch (Exception) { return(RedirectToAction("Error")); } }
// 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)); }
// 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)); }
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 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); }
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)); }
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); } }
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)); }
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()); }
public static bool AddSMSMaster(MessagingModel smsDetails) { MessagingModel msgModel = new MessagingModel(); return(msgModel.AddSMSMaster(smsDetails)); }