public List <OO_SMSData> GetApplyData([FromBody] JObject data) //public string GetApplyData([FromBody]JObject data) { string message = string.Empty; using (TransactionScope scope = new TransactionScope()) { ConnectionFactory Connection = new ConnectionFactory(); SqlConnection conn = Connection.CreateConnection(); SMSDataService SMSData = null; try { conn.Open(); if (data != null) { //SMSData = new SMSDataService(conn); SMSData = new SMSDataService(conn); } } catch (Exception e) { message = e.Message; string rowString = SMSData.ToString(); } //return SMSData.Get(data); return(JsonConvert.DeserializeObject <List <OO_SMSData> >(SMSData.Get(data))); } }
public async Task <BulkSMSResponse> SendBulkSMSAsync(string from, List <string> to, string message) { var body = new SMSData(from, String.Join(",", to), message); var response = await _client.PostAsJsonAsync("smsapi/bulk/send_sms", body); response.EnsureSuccessStatusCode(); var responseData = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <BulkSMSResponse>(responseData)); }
private void ParseData(string data, bool skipDuplicates) { string[] texts = data.Split(new string[] { ParseKey }, StringSplitOptions.None); for(int i = 1; i < texts.Length; i++) { //skip the first one empty space string text = texts [i]; string[] messageSplit = text.Split (new char[] { ':' }, 4); SMSData sData = new SMSData (int.Parse(messageSplit[0]), float.Parse (messageSplit [1]), messageSplit [2], messageSplit [3]); if (skipDuplicates && usedRealNoteIDs.Contains (sData.id)) continue; usedRealNoteIDs.Add (sData.id); stockNotes.Add (sData); } }
private void ParseData(string data, bool skipDuplicates) { string[] texts = data.Split(new string[] { ParseKey }, StringSplitOptions.None); for (int i = 1; i < texts.Length; i++) //skip the first one empty space { string text = texts [i]; string[] messageSplit = text.Split(new char[] { ':' }, 4); SMSData sData = new SMSData(int.Parse(messageSplit[0]), float.Parse(messageSplit [1]), messageSplit [2], messageSplit [3]); if (skipDuplicates && usedRealNoteIDs.Contains(sData.id)) { continue; } usedRealNoteIDs.Add(sData.id); stockNotes.Add(sData); } }
public SMSData GetRandomSMS() { if (realNotes.Count > 0) { int index = UnityEngine.Random.Range(0, realNotes.Count - 1); SMSData sData = realNotes [index]; stockNotes.RemoveAt(index); return(sData); } else if (stockNotes.Count > 0) { int index = UnityEngine.Random.Range(0, stockNotes.Count - 1); SMSData sData = stockNotes [index]; stockNotes.RemoveAt(index); return(sData); } return(null); }
//public string GetMappingData(string Leavecode) //{ // string qtytype = _leaveApprovalRepositary.GetMappingData(Leavecode).ToString(); // return qtytype; //} public Tuple <string, int> SaveLeaveApproval(LeaveApprovalServiceViewModel model) { Tuple <string, int> itemSaveData = _leaveApprovalRepositary.SaveAprrovedLeaveRequest(Mapper.Map <List <tbl_LeaveApproval> >(model.leaveApprovals.Select(Mapper.Map <LeaveApprovalServiceModel>))); var result = 1; if (itemSaveData.Item2 != -99) { result = 1; SMSData sms = new SMSData(); // var sms=_SMSUtility.SendSMS(model.leaveApprovals.FirstOrDefault(x=>x.ApproverMobNo.ToString())) return(itemSaveData); } else { result = 0; return(itemSaveData); } }
public static List <Message> GetMail() { UserCredential credential; string startupPath = AppDomain.CurrentDomain.BaseDirectory; using (var stream = new System.IO.FileStream(startupPath + @"credentials.json", System.IO.FileMode.Open, System.IO.FileAccess.Read)) { // The file token.json stores the user's access and refresh tokens, and is created // automatically when the authorization flow completes for the first time. string credPath = startupPath + @"token.json"; credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; Console.WriteLine("Credential file saved to: " + credPath); } // Create Gmail API service. var service = new GmailService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "My Budget", }); ListLabelsResponse response = service.Users.Labels.List("me").Execute(); List <Label> _labels = new List <Label>(); foreach (Label label in response.Labels) { Label _label = new Label(); // if(label.Type == "user") // { _label.Id = label.Id; _label.Name = label.Name; //} _labels.Add(_label); } String query = ""; List <Message> result = new List <Message>(); // Define parameters of request. UsersResource.MessagesResource.ListRequest request = service.Users.Messages.List("me"); request.Q = query; request.MaxResults = 5000; request.LabelIds = "Label_2500152685495181559"; // var serv = service.Users.Messages try { ListMessagesResponse response2 = request.Execute(); result.AddRange(response2.Messages); //request.PageToken = response2.NextPageToken; //foreach (var item in result) for (int i = 0; i < result.Count; i++) { var m = service.Users.Messages.Get("me", result[i].Id).Execute(); //if (m.LabelIds.Contains("IMPORTANT") && m.LabelIds.Contains("Label_2500152685495181559")) //{ var d = m.Snippet; var model = new SMSData(); string[] msg = d.Split(new string[] { "Message text: " }, StringSplitOptions.None); model.SMSText = d; // msg[1]; string sa = @"""" + "/Date(" + m.InternalDate + "-0530 )/" + @""""; model.Date = DateTime.Now; // JsonConvert.DeserializeObject<DateTime>(sa); //model.Label = _labels.Where(x => x.Id == m.LabelIds) if (db.SMSData.Count() > 0) { DateTime prevDate = db.SMSData.ToList().OrderByDescending(x => x.Date.Value).Select(x => x.Date.Value).First(); if (model.Date > prevDate) { if (d.Contains("KOTAK") || d.Contains("XXXX467304")) { model.BankName = "Kotak Mahindra Bank"; if (d.Contains("credited ")) { model.TransactionType = "Credit"; // resultString = Regex.Match(subjectString, @"\d+").Value; try { string[] msg1 = msg[1].Split(new string[] { "credited Rs." }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("KOTAK")).FirstOrDefault(); ba.Balance += Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } else if (d.Contains("debited")) { try { model.TransactionType = "Debit"; string[] msg1 = msg[1].Split(new string[] { "has been debited" }, StringSplitOptions.None); // string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("KOTAK")).FirstOrDefault(); ba.Balance -= Convert.ToDouble(msg1[0]); model.Amount = msg1[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } db.SaveChanges(); } else if (d.Contains("ICICI") || d.Contains("XX3416") || d.Contains("XX416")) { model.BankName = "ICICI Bank"; if (d.Contains("credited ")) { try { model.TransactionType = "Credit"; string[] msg1 = msg[1].Split(new string[] { "credited Rs." }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("ICICI") && x.AccountType == 0).FirstOrDefault(); ba.Balance += Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } else if (d.Contains("debited")) { model.TransactionType = "Debit"; if (msg[1].Contains("INR")) { try { string[] msg1 = msg[1].Split(new string[] { "INR" }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("ICICI") && x.AccountType == 0).FirstOrDefault(); ba.Balance -= Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } else if (msg[1].Contains("has been debited")) { try { string[] msg1 = msg[1].Split(new string[] { "has been debited for Rs." }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("ICICI") && x.AccountType == 0).FirstOrDefault(); ba.Balance -= Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } } db.SaveChanges(); } else if (d.Contains("Union") || d.Contains("X4541") || d.Contains("**24541")) { model.BankName = "Union Bank"; if (d.Contains("credited ")) { try { model.TransactionType = "Credit"; // resultString = Regex.Match(subjectString, @"\d+").Value; string[] msg1 = msg[1].Split(new string[] { "credited Rs." }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("Union") && x.AccountType == 0).FirstOrDefault(); ba.Balance += Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } else if (d.Contains("debited")) { try { model.TransactionType = "Debit"; string[] msg1 = msg[1].Split(new string[] { "is debited for Rs." }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("Union") && x.AccountType == 0).FirstOrDefault(); ba.Balance -= Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } db.SaveChanges(); } else if (d.Contains("SB A/c") || d.Contains("SBI UPI")) { model.BankName = "SBI"; if (d.Contains("credited ")) { try { model.TransactionType = "Credit"; // resultString = Regex.Match(subjectString, @"\d+").Value; string[] msg1 = msg[1].Split(new string[] { "credited Rs." }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("SBI-H") && x.AccountType == 0).FirstOrDefault(); ba.Balance += Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } else if (d.Contains("debited")) { if (msg[1].Contains("INR")) { try { string[] msg1 = msg[1].Split(new string[] { "INR" }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("SBI-H") && x.AccountType == 0).FirstOrDefault(); ba.Balance -= Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } else if (msg[1].Contains("is debited for")) { try { model.TransactionType = "Debit"; string[] msg1 = msg[1].Split(new string[] { "is debited for Rs." }, StringSplitOptions.None); string[] msg2 = msg1[1].Split(new string[] { "on" }, StringSplitOptions.None); BankAccounts ba = new BankAccounts(); ba = db.BankAccounts.Where(x => x.BankName.Contains("SBI-H") && x.AccountType == 0).FirstOrDefault(); ba.Balance -= Convert.ToDouble(msg2[0]); model.Amount = msg2[0]; db.Entry(ba).State = EntityState.Modified; } catch (Exception ex) { Console.WriteLine("An error occurred: " + ex.Message); } } } db.SaveChanges(); } //if (db.SMSData.Count() > 0) //{ // DateTime prevDate = db.SMSData.ToList().OrderByDescending(x => x.Date.Value).Select(x => x.Date.Value).First(); // if (model.Date > prevDate) // { db.SMSData.Add(model); } } else { db.SMSData.Add(model); } // Console.WriteLine(i); } // } db.SaveChanges(); } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); } return(result); }
public override int OnMessagingEvent(MessagingEvent e) { short code = e.getCode(); tsip_message_event_type_t type = e.getType(); MessagingSession session = e.getSession(); SipMessage message = e.getSipMessage(); if (session == null && message != null) { /* "Server-side-session" e.g. Initial MESSAGE/INVITE sent by the remote party */ session = e.takeSessionOwnership(); } //Console.WriteLine("From:{0} == To:{1}", message.getSipHeaderValue("f"), message.getSipHeaderValue("t")); if (message == null) { return(0); } switch (type) { case tsip_message_event_type_t.tsip_i_message: byte[] content = message.getSipContent(); if (content != null) { Console.WriteLine("Message Content ==> {0}", Encoding.UTF8.GetString(content)); session.accept(); String contentType = message.getSipHeaderValue("c"); if (contentType != null && contentType.Equals("application/vnd.3gpp.sms", StringComparison.InvariantCultureIgnoreCase)) { SMSData smsData = SMSEncoder.decode(content, (uint)content.Length, false); if (smsData != null) { twrap_sms_type_t smsType = smsData.getType(); if (smsType == twrap_sms_type_t.twrap_sms_type_rpdata) { uint payLength = smsData.getPayloadLength(); String P_Asserted_Identity = message.getSipHeaderValue("P-Asserted-Identity"); if (payLength > 0) { /* Send RP-ACK */ String destination = smsData.getOA(); RPMessage rpACK = SMSEncoder.encodeACK(smsData.getMR(), Program.SMSC, destination == null ? "123456789" : destination, false); if (rpACK != null) { uint pay_len = rpACK.getPayloadLength(); if (pay_len > 0) { byte[] pay = new byte[pay_len]; rpACK.getPayload(pay, (uint)pay.Length); //byte[] pay = Encoding.UTF8.GetBytes("\x03\x01\x41\x09\x01\x00\x01\x80\x01\x32\x42\x00\x69"); MessagingSession m = new MessagingSession(Program.sipStack); m.setToUri(String.Format("sip:{0}@{1}", Program.SMSC, Program.REALM)); m.addHeader("Content-Type", "application/vnd.3gpp.sms"); m.addHeader("Content-Transfer-Encoding", "binary"); m.send(pay, (uint)pay.Length); m.Dispose(); } rpACK.Dispose(); } /* Print payload */ byte[] payload = new byte[payLength]; smsData.getPayload(payload, (uint)payload.Length); Console.WriteLine("SMS content ={0} and OA={1}", Encoding.UTF8.GetString(payload), smsData.getOA()); } else { /* Send RP-ERROR */ /* payload is mandatory in RP-DATA messages */ /* Send RP-ACK */ String destination = smsData.getOA(); RPMessage rpError = SMSEncoder.encodeError(smsData.getMR(), Program.SMSC, destination == null ? "123456789" : destination, false); if (rpError != null) { uint pay_len = rpError.getPayloadLength(); if (pay_len > 0) { byte[] pay = new byte[pay_len]; rpError.getPayload(pay, (uint)pay.Length); MessagingSession m = new MessagingSession(Program.sipStack); m.setToUri(String.Format("sip:{0}@{1}", Program.SMSC, Program.REALM)); m.addHeader("Content-Type", "application/vnd.3gpp.sms"); m.addHeader("Content-Transfer-Encoding", "binary"); m.send(pay, (uint)pay.Length); m.Dispose(); } rpError.Dispose(); } } } } } } else { session.reject(); } break; case tsip_message_event_type_t.tsip_ao_message: break; } Console.WriteLine("OnMessagingEvent() ==> {0}:{1}", code, e.getPhrase()); return(0); }
/// <summary> /// Messaging events /// </summary> /// <param name="e"></param> /// <returns></returns> public override int OnMessagingEvent(MessagingEvent e) { tsip_message_event_type_t type = e.getType(); switch (type) { case tsip_message_event_type_t.tsip_ao_message: break; case tsip_message_event_type_t.tsip_i_message: { SipMessage message = e.getSipMessage(); MessagingSession session = e.getSession(); uint sessionId; if (session == null) { /* "Server-side-session" e.g. Initial MESSAGE sent by the remote party */ session = e.takeSessionOwnership(); } if (session == null) { LOG.Error("Failed to take session ownership"); } if (message == null) { LOG.Error("Invalid message"); session.reject(); session.Dispose(); return(0); } sessionId = session.getId(); String from = message.getSipHeaderValue("f"); String contentType = message.getSipHeaderValue("c"); byte[] bytes = message.getSipContent(); byte[] content = null; if (bytes == null || bytes.Length == 0) { LOG.Error("Invalid MESSAGE"); session.reject(); session.Dispose(); return(0); } // Send 200 OK session.accept(); session.Dispose(); if (String.Equals(contentType, ContentType.SMS_3GPP, StringComparison.InvariantCultureIgnoreCase)) { /* ==== 3GPP SMSIP === */ byte[] buffer = (bytes.Clone() as byte[]); SMSData smsData = SMSEncoder.decode(buffer, (uint)buffer.Length, false); if (smsData != null) { twrap_sms_type_t smsType = smsData.getType(); if (smsType == twrap_sms_type_t.twrap_sms_type_rpdata) { /* === We have received a RP-DATA message === */ long payLength = smsData.getPayloadLength(); String SMSC = message.getSipHeaderValue("P-Asserted-Identity"); String SMSCPhoneNumber; String origPhoneNumber = smsData.getOA(); /* Destination address */ if (origPhoneNumber != null) { from = UriUtils.GetValidSipUri(origPhoneNumber); } else if ((origPhoneNumber = UriUtils.GetValidPhoneNumber(from)) == null) { LOG.Error("Invalid destination address"); return(0); } /* SMS Center * 3GPP TS 24.341 - 5.3.2.4 Sending a delivery report * The address of the IP-SM-GW is received in the P-Asserted-Identity header in the SIP MESSAGE * request including the delivered short message. * */ if ((SMSCPhoneNumber = UriUtils.GetValidPhoneNumber(SMSC)) == null) { SMSC = this.sipService.manager.ConfigurationService.Get(Configuration.ConfFolder.RCS, Configuration.ConfEntry.SMSC, Configuration.DEFAULT_RCS_SMSC); if ((SMSCPhoneNumber = UriUtils.GetValidPhoneNumber(SMSC)) == null) { LOG.Error("Invalid IP-SM-GW address"); return(0); } } if (payLength > 0) { /* Send RP-ACK */ RPMessage rpACK = SMSEncoder.encodeACK(smsData.getMR(), SMSCPhoneNumber, origPhoneNumber, false); if (rpACK != null) { long ack_len = rpACK.getPayloadLength(); if (ack_len > 0) { buffer = new byte[(int)ack_len]; long len = rpACK.getPayload(buffer, (uint)buffer.Length); MessagingSession m = new MessagingSession(this.sipService.SipStack); m.setToUri(SMSC); m.addHeader("Content-Type", ContentType.SMS_3GPP); m.addHeader("Content-Transfer-Encoding", "binary"); m.addCaps("+g.3gpp.smsip"); m.send(buffer, (uint)len); m.Dispose(); } rpACK.Dispose(); } /* Get ascii content */ content = new byte[(int)payLength]; smsData.getPayload(content, (uint)content.Length); } else { /* Send RP-ERROR */ RPMessage rpError = SMSEncoder.encodeError(smsData.getMR(), SMSCPhoneNumber, origPhoneNumber, false); if (rpError != null) { long err_len = rpError.getPayloadLength(); if (err_len > 0) { buffer = new byte[(int)err_len]; long len = rpError.getPayload(buffer, (uint)buffer.Length); MessagingSession m = new MessagingSession(this.sipService.SipStack); m.setToUri(SMSC); m.addHeader("Content-Type", ContentType.SMS_3GPP); m.addHeader("Transfer-Encoding", "binary"); m.addCaps("+g.3gpp.smsip"); m.send(buffer, (uint)len); m.Dispose(); } rpError.Dispose(); } } } else { /* === We have received any non-RP-DATA message === */ if (smsType == twrap_sms_type_t.twrap_sms_type_ack) { /* Find message from the history (by MR) an update it's status */ LOG.Debug("RP-ACK"); } else if (smsType == twrap_sms_type_t.twrap_sms_type_error) { /* Find message from the history (by MR) an update it's status */ LOG.Debug("RP-ERROR"); } } } } else { /* ==== text/plain or any other === */ content = bytes; } /* Alert the user a,d add the message to the history */ if (content != null) { MessagingEventArgs eargs = new MessagingEventArgs(sessionId, MessagingEventTypes.INCOMING, e.getPhrase(), content); eargs .AddExtra(MessagingEventArgs.EXTRA_CODE, e.getCode()) .AddExtra(MessagingEventArgs.EXTRA_REMOTE_PARTY, from) .AddExtra(MessagingEventArgs.EXTRA_CONTENT_TYPE, contentType == null ? ContentType.UNKNOWN : contentType); EventHandlerTrigger.TriggerEvent <MessagingEventArgs>(this.sipService.onMessagingEvent, this.sipService, eargs); } break; } } return(0); }