/// <summary> /// Send message(s) by adding Message object(s) to message queue and return server ack(s) /// </summary> public Task <GetMessageStatusResponse> SendMessage(SendMessageRequest request) { request.ValidateSendMessageRequest(_users); var response = new GetMessageStatusResponse { }; if (request.RecipientType == RecipientType.Single) { var message = new Message(request.SenderId, request.RecipientId, request.Content); var messageStatus = SendSingleMessage(message); response.MessageStatuses.Add(messageStatus); return(Task.FromResult(response)); } foreach (var user in _users) { if (request.SenderId != user) { var message = new Message(request.SenderId, user, request.Content); var messageStatus = SendSingleMessage(message); response.MessageStatuses.Add(messageStatus); } } return(Task.FromResult(response)); }
/// <summary> /// Return client acks if recipient received messages sent /// </summary> public Task <GetMessageStatusResponse> GetMessageStatus(GetMessageStatusRequest request) { var getMessageStatusResponse = new GetMessageStatusResponse { }; foreach (var message in _messages) { var messageWasDeliveredToRecipient = message.SenderId == request.SenderId && message.DeliveredToRecipient; if (messageWasDeliveredToRecipient) { _messages.Remove(message); var clientAck = new MessageStatus { Content = message.Content, DeliveredTo = DeliveredTo.Recipient, RecipientId = message.RecipientId }; getMessageStatusResponse.MessageStatuses.Add(clientAck); return(Task.FromResult(getMessageStatusResponse)); } } return(Task.FromResult(getMessageStatusResponse)); }
public tempuri.org.ArrayOfInt GetMessageStatus(string username, string password, tempuri.org.ArrayOfLong MessageIDs) { GetMessageStatusRequest inValue = new GetMessageStatusRequest(); inValue.Body = new GetMessageStatusRequestBody(); inValue.Body.username = username; inValue.Body.password = password; inValue.Body.MessageIDs = MessageIDs; GetMessageStatusResponse retVal = ((IV2Soap)(this)).GetMessageStatus(inValue); return(retVal.Body.GetMessageStatusResult); }
public MessageStatusResponse SendMessageMediaResponse(string MessageID) { try { Guid guidResult; bool isValid = Guid.TryParse(MessageID, out guidResult); if (isValid == true) { _log.Log(LogLevel.Information, "SendMessageMediaResponse Start"); var basicAuthUserName = _iconfiguration["basicAuthUserName"]; var basicAuthPassword = _iconfiguration["basicAuthPassword"]; bool useHmacAuthentication = false; MessageMediaMessagesClient client = new MessageMediaMessagesClient(basicAuthUserName, basicAuthPassword, useHmacAuthentication); MessagesController messages = client.Messages; GetMessageStatusResponse _getmessageresponse = messages.GetMessageStatus(MessageID); MessageStatusResponse messageStatusResponse = new MessageStatusResponse() { DeliveryStatus = _getmessageresponse.Status.ToString(), MessageId = _getmessageresponse.MessageId, CallbackUrl = _getmessageresponse.CallbackUrl, Content = _getmessageresponse.Content, DestinationNumber = _getmessageresponse.DestinationNumber, DeliveryReport = _getmessageresponse.DeliveryReport, Format = _getmessageresponse.Format, MessageExpiryTimestamp = _getmessageresponse.MessageExpiryTimestamp, Metadata = _getmessageresponse.Metadata, Scheduled = _getmessageresponse.Scheduled, SourceNumber = _getmessageresponse.SourceNumber, SourceNumberType = _getmessageresponse.SourceNumberType }; _log.Log(LogLevel.Information, "SendMessageMediaResponse End"); return(messageStatusResponse); } else { _log.Log(LogLevel.Information, "Invalid GUID"); return(null); } } catch (Exception ex) { _log.Log(LogLevel.Information, "SendMessageMediaResponse SMS reply error while sending." + ex.Message); return(null); } }
public async Task <string> SendMessagetoMedia([FromBody] SendMessage model) { string status = "success"; try { /// ///TODO : 1. Validate input. If blank reply false ///2. Set keys in appsettings for below two key ///3. Handle Log ///4. SEt from Name string s = JsonConvert.SerializeObject(model); _log.Log(LogLevel.Information, "SendMessagetoMedia XML object :: " + s.ToString()); string startTime = _iconfiguration["StartTime"]; string endTime = _iconfiguration["EndTime"]; if (model.Site != 67) { _log.Log(LogLevel.Information, "Site other than 67."); return(status = "Fail,Site other than 67 but it is " + model.Site.ToString()); } if (DateTime.Now.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.DayOfWeek != DayOfWeek.Sunday && DateTime.Now < Convert.ToDateTime(DateTime.Now.ToLongDateString() + startTime) || DateTime.Now > Convert.ToDateTime(DateTime.Now.ToLongDateString() + endTime)) { _log.Log(LogLevel.Information, "Current time is out of range."); return(status = "Fail,Current time is out of range. Current time is " + DateTime.Now.ToString()); } if (model.Phone.Length > 10 || model.Phone.Length < 10) { _log.Log(LogLevel.Information, "Error:Phone number length more then 10 character."); return(status = "Fail,Please Enter Valid Phone Number."); } _log.Log(LogLevel.Information, "Send SMS Process start."); var basicAuthUserName = _iconfiguration["basicAuthUserName"]; var basicAuthPassword = _iconfiguration["basicAuthPassword"]; var FromName = _iconfiguration["FromName"]; string _defaultMessage = _iconfiguration["defaultMessage"]; string _customMessage = _iconfiguration["customMessage"]; string default_to_mailer = _iconfiguration["default_to_mailer"]; string default_from_mailer = _iconfiguration["CountryCode"] + model.Phone + _iconfiguration["default_from_name"]; string default_email_body = _iconfiguration["default_email_body"]; var _messagetext = model.Message; if (string.IsNullOrEmpty(_messagetext)) { if (!string.IsNullOrEmpty(model.AppointmentDate) && !string.IsNullOrEmpty(model.AppointmentTime)) { _messagetext = _customMessage; } else { _messagetext = _defaultMessage; } } bool useHmacAuthentication = false; MessageMediaMessagesClient client = new MessageMediaMessagesClient(basicAuthUserName, basicAuthPassword, useHmacAuthentication); MessagesController messages = client.Messages; string bodyValue = "{"; bodyValue += "'messages':[";// bodyValue += "{"; bodyValue += "'content': '" + _messagetext + "',"; bodyValue += "'destination_number':'" + _iconfiguration["CountryCode"] + model.Phone + "',"; bodyValue += "'source_number': 'VGH',"; bodyValue += "'source_number_type': 'ALPHANUMERIC',"; bodyValue += "'delivery_report': 'true'"; bodyValue += "}"; bodyValue += "]"; bodyValue += "}"; var body = Newtonsoft.Json.JsonConvert.DeserializeObject <SendMessagesRequest>(bodyValue); SendMessagesResponse result = await messages.SendMessagesAsync(body); _log.Log(LogLevel.Information, "Send SMS Process end."); if (result.Messages.Count > 0) { GetMessageStatusResponse _getmessageresponse = messages.GetMessageStatus(result.Messages[0].MessageId.ToString()); _log.Log(LogLevel.Information, result.Messages[0].Status.Value.ToString()); _log.Log(LogLevel.Information, result.Messages[0].MessageId.ToString()); _log.Log(LogLevel.Information, result.Messages[0].DestinationNumber.ToString()); _log.Log(LogLevel.Information, "Delivery Status:" + _getmessageresponse.Status.ToString()); model.MessageID = result.Messages[0].MessageId.ToString(); model.DeliversyStatus = _getmessageresponse.Status.ToString(); // _body += model.Name + " " + default_email_body; model.CreatedBy = _iconfiguration["CreatedBy"]; OuputLogInformation(model); string emailbody = ""; emailbody += "<table >"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Name</strong></td><td>" + model.Name + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Email</strong></td><td>" + model.Email + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Phone</strong></td><td>" + model.Phone + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Age</strong></td><td>" + model.Age_Range + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>ZipCode</strong></td><td>" + model.ZipCode + "</td></tr>"; //emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Closest Center</strong></td><td>" + model.Closest_Center + "</td></tr>"; // emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Created Date</strong></td><td>" + model.Created_Date + "</td></tr>"; //emailbody += "<tr><td style='background-color: yellowgreen;'><strong>CreatedBy</strong></td><td>" + model.CreatedBy + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>AppointmentDate</strong></td><td>" + model.AppointmentDate + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>AppointmentTime</strong></td><td>" + model.AppointmentTime + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Location</strong></td><td>" + model.Location + "</td></tr>"; emailbody += "<tr><td style='background-color: yellowgreen;'><strong>Language</strong></td><td>" + model.Language + "</td></tr>"; emailbody += "</table>"; SendEmailMedia(default_to_mailer, FromName, "SMS Chat [" + model.Name + "-" + model.Phone + "]", emailbody, default_from_mailer); } } catch (Exception ex) { _log.Log(LogLevel.Information, "SMS error while sending." + ex.Message); return(status = "Something went wrong!"); } return(status); }
public async Task <string> SendSMSBookingConfirmation() { string status = "success"; try { _log.Log(LogLevel.Information, "Send SMS Process start."); var basicAuthUserName = _iconfiguration["basicAuthUserName"]; var basicAuthPassword = _iconfiguration["basicAuthPassword"]; var FromName = _iconfiguration["FromName"]; List <BookingConfirmationModel> _models = GetSMSBookingConfirmationDetails(); foreach (var model in _models) { try { bool useHmacAuthentication = false; MessageMediaMessagesClient client = new MessageMediaMessagesClient(basicAuthUserName, basicAuthPassword, useHmacAuthentication); MessagesController messages = client.Messages; string bodyValue = "{"; bodyValue += "'messages':["; bodyValue += "{"; bodyValue += "'content': '" + model.textMessage + "',"; bodyValue += "'destination_number':'" + _iconfiguration["CountryCode"] + model.primary_phone + "',"; bodyValue += "'source_number': 'VGH',"; bodyValue += "'source_number_type': 'ALPHANUMERIC'"; bodyValue += "}"; bodyValue += "]"; bodyValue += "}"; _log.Log(LogLevel.Information, "SendSMSBookingConfirmation object String :: " + bodyValue.ToString()); var body = Newtonsoft.Json.JsonConvert.DeserializeObject <SendMessagesRequest>(bodyValue); SendMessagesResponse result = await messages.SendMessagesAsync(body); _log.Log(LogLevel.Information, "Send SMS Process end."); if (result.Messages.Count > 0) { GetMessageStatusResponse _getmessageresponse = messages.GetMessageStatus(result.Messages[0].MessageId.ToString()); _log.Log(LogLevel.Information, "lKey value : " + model.lKey); _log.Log(LogLevel.Information, "Status value : " + result.Messages[0].Status.Value.ToString()); _log.Log(LogLevel.Information, "MessageResponseID value : " + result.Messages[0].MessageId.ToString()); //MessageResponseID _log.Log(LogLevel.Information, "DestinationNumber value : " + result.Messages[0].DestinationNumber.ToString()); _log.Log(LogLevel.Information, "Delivery Status:" + _getmessageresponse.Status.ToString()); //MessageSendSuccess NobleHistoryModel objmain = new NobleHistoryModel(); objmain.lKey = Convert.ToInt32(model.lKey); objmain.MessageResponseID = result.Messages[0].MessageId.ToString(); objmain.MessageSendSuccess = _getmessageresponse.Status.ToString(); string Res = UpdateNobleHistorySMSStatus(objmain); } } catch (Exception ex) { _log.Log(LogLevel.Information, "error occured while sending Confirmation SMS :" + ex.Message); } } } catch (Exception ex) { _log.Log(LogLevel.Information, "SendSMSBookingConfirmation() --> SMS error while sending." + ex.Message); return(status = "Something went wrong!"); } return(status); }