//Processes SMSs private void ProcessSMS() { //Processes Textspeak abbreviations and saves to ProcessedMessages.json var MessageHeaderText = MessageHeaderTextBox.ToString(); var MessageBodyText = MessageBodyTextBox.ToString(); MessageBodyText = GetAbbreviations(MessageBodyText); MessagesProcessor msgProcessor = new MessagesProcessor() { msgType = MessageHeaderText, msgBody = MessageBodyText }; File.AppendAllText("C:/VS Database/ProcessedMessages.json", JsonConvert.SerializeObject(msgProcessor)); MessageBox.Show("Message Processed Successfully:" + Environment.NewLine + "Message Type - " + MessageHeaderText + Environment.NewLine + "Message Body - " + MessageBodyText); }
//Processes Emails private void ProcessStandardEmail() { //Validates URL's and replaces them with <URL Quarantined> and saves to Quarantine.csv var MessageHeaderText = MessageHeaderTextBox.ToString(); var MessageBodyText = MessageBodyTextBox.ToString(); string[] splitMessageBodyText = MessageBodyTextBox.ToString().Split(' '); for (int i = 4; i < splitMessageBodyText.Length; i++) { Uri result; bool isUri = Uri.TryCreate(splitMessageBodyText[i], UriKind.Absolute, out result) && (result.Scheme == Uri.UriSchemeHttp || result.Scheme == Uri.UriSchemeHttps); if (isUri == true) { Quarantine quarantine = new Quarantine() { link = splitMessageBodyText[i] }; Database.Quarantine_Database.SaveToQuarantine save1 = new Database.Quarantine_Database.SaveToQuarantine(); if (!save1.ToCsv(quarantine)) { MessageBox.Show("Error while saving\n" + save1.ErrorCode); } else { save1 = null; } MessageBodyText = MessageBodyText.Replace(splitMessageBodyText[i], "<URL Quarantined>"); } } MessagesProcessor msgProcessor = new MessagesProcessor() { msgType = MessageHeaderText, msgBody = MessageBodyText }; File.AppendAllText("C:/VS Database/ProcessedMessages.json", JsonConvert.SerializeObject(msgProcessor)); MessageBox.Show("Message Processed Successfully:" + Environment.NewLine + "Message Type - " + MessageHeaderText + Environment.NewLine + "Message Body - " + MessageBodyText); }
//On button click it makes sure that all values are processed and then sent to a JSON file public void ProcessButtonClick() { if (string.IsNullOrWhiteSpace(MessageHeaderTextBox) || string.IsNullOrWhiteSpace(MessageBodyTextBox)) { MessageBox.Show("Please enter all the values"); return; } switch (CheckMessageType(MessageHeaderTextBox.ToString())) { case "E": case "e": var result0 = ValidateEmail(MessageBodyTextBox.ToString()); if (result0 == "processstandard") { ProcessStandardEmail(); } else if (result0 == "processsir") { ProcessSIREmail(); } else { MessageBox.Show(result0); } break; case "T": case "t": var result1 = ValidateTweet(MessageBodyTextBox.ToString()); if (result1 == "processtweet") { ProcessTweet(); } else { MessageBox.Show(result1); } break; case "S": case "s": var result2 = ValidateSMS(MessageBodyTextBox.ToString()); if (result2 == "processsms") { ProcessSMS(); } else { MessageBox.Show(result2); } break; case "ERROR1": MessageBox.Show("Message Header must include 9 numbers"); break; case "ERROR2": MessageBox.Show("Message type must start with either 'S', 'E' or 'T'."); break; default: MessageBox.Show("Couldn't process header"); break; } }
//Processes Tweets private void ProcessTweet() { //Processes textspeak abbreviations and saves to ProcessedMessages.json Database.Textspeak_Abbreviations_Database.LoadTextspeakAbbreviations load = new Database.Textspeak_Abbreviations_Database.LoadTextspeakAbbreviations(); var MessageHeaderText = MessageHeaderTextBox.ToString(); var MessageBodyText = MessageBodyTextBox.ToString(); string[] splitMessageBodyText = MessageBodyTextBox.ToString().Split(' '); MessageBodyText = GetAbbreviations(MessageBodyText); MessagesProcessor msgProcessor = new MessagesProcessor() { msgType = MessageHeaderText, msgBody = MessageBodyText }; File.AppendAllText("C:/VS Database/ProcessedMessages.json", JsonConvert.SerializeObject(msgProcessor)); MessageBox.Show("Message Processed Successfully:" + Environment.NewLine + "Message Type - " + MessageHeaderText + Environment.NewLine + "Message Body - " + MessageBodyText); //Processes Mentions and saves to Mentions.csv Database.Mentions_Database.LoadMentionsFromFile load2 = new Database.Mentions_Database.LoadMentionsFromFile(); Database.Mentions_Database.SaveMentionsToFile save2 = new Database.Mentions_Database.SaveMentionsToFile(); if (!load2.FromCSV()) { MentionsList = new ObservableCollection <Mentions>(); } else { MentionsList = new ObservableCollection <Mentions>(load2.MentionsList); var NofMentions = 0; for (int i = 2; i < splitMessageBodyText.Length; i++) { var @char = splitMessageBodyText[i]; if (@char[0] == '@') { foreach (var Mentions in MentionsList) { if (Mentions.Users == splitMessageBodyText[i]) { NofMentions = Mentions.NofUsers + 1; } else { NofMentions = 1; } } Mentions mentions = new Mentions() { Users = splitMessageBodyText[i], NofUsers = NofMentions }; if (!save2.ToCsv(mentions)) { MessageBox.Show("Error while saving to mentions\n" + save2.ErrorCode); } else { save2 = null; } } } } //Processes Trending hashtags and adds it to Trending.csv Database.Trending_Database.LoadTrendingFromFile load3 = new Database.Trending_Database.LoadTrendingFromFile(); Database.Trending_Database.SaveTrendingToFile save3 = new Database.Trending_Database.SaveTrendingToFile(); if (!load3.FromCSV()) { TrendingList = new ObservableCollection <Trending>(); } else { TrendingList = new ObservableCollection <Trending>(load3.TrendingList); var NofTrending = 0; for (int i = 2; i < splitMessageBodyText.Length; i++) { var @char = splitMessageBodyText[i]; if (@char[0] == '#') { foreach (var Trending in TrendingList) { if (Trending.Hashtags == splitMessageBodyText[i]) { NofTrending = Trending.NofHashtags + 1; } else { NofTrending = 1; } } Trending trending = new Trending() { Hashtags = splitMessageBodyText[i], NofHashtags = NofTrending }; if (!save3.ToCsv(trending)) { MessageBox.Show("Error while saving to Trending\n" + save3.ErrorCode); } else { save2 = null; } } } } }
private void ProcessSIREmail() { //Validates URL's and replaces them with <URL Quarantined> and saves to Quarantine.csv var MessageHeaderText = MessageHeaderTextBox.ToString(); var MessageBodyText = MessageBodyTextBox.ToString(); string[] splitMessageBodyText = MessageBodyTextBox.ToString().Split(' '); for (int i = 4; i < splitMessageBodyText.Length; i++) { Uri result; bool isUri = Uri.TryCreate(splitMessageBodyText[i], UriKind.Absolute, out result) && (result.Scheme == Uri.UriSchemeHttp || result.Scheme == Uri.UriSchemeHttps); if (isUri == true) { Quarantine quarantine = new Quarantine() { link = splitMessageBodyText[i] }; Database.Quarantine_Database.SaveToQuarantine save1 = new Database.Quarantine_Database.SaveToQuarantine(); if (!save1.ToCsv(quarantine)) { MessageBox.Show("Error while saving\n" + save1.ErrorCode); } else { save1 = null; } MessageBodyText = MessageBodyText.Replace(splitMessageBodyText[i], "<URL Quarantined>"); } } MessagesProcessor msgProcessor = new MessagesProcessor() { msgType = MessageHeaderText, msgBody = MessageBodyText }; File.AppendAllText("C:/VS Database/ProcessedMessages.json", JsonConvert.SerializeObject(msgProcessor)); MessageBox.Show("Message Processed Successfully:" + Environment.NewLine + "Message Type - " + MessageHeaderText + Environment.NewLine + "Message Body - " + MessageBodyText); //Saves SI to SIReportsDB.csv Database.SIReports_Database.SaveSIReportsToFile save4 = new Database.SIReports_Database.SaveSIReportsToFile(); string[] NOIArray1w = { "Raid", "Terrorism" }; var noi1w = splitMessageBodyText[12]; var noifound1w = Array.Exists(NOIArray1w, s => s.Equals(noi1w)); string[] NOIArray2w = { "Staff Attack", "Device Damage", "Customer Attack", "Staff Abuse", "Bomb Threat", "Suspicious Incident", "Sport Injury" }; var noi2w = splitMessageBodyText[12] + " " + splitMessageBodyText[13]; var noifound2w = Array.Exists(NOIArray2w, s => s.Equals(noi2w)); string[] NOIArray3w = { "Theft of Properties", "Personal Info Leak" }; var noi3w = splitMessageBodyText[12] + " " + splitMessageBodyText[13] + " " + splitMessageBodyText[14]; var noifound3w = Array.Exists(NOIArray3w, s => s.Equals(noi3w)); if (noifound1w == true) { SIReports siReports = new SIReports() { SportCentreCode = splitMessageBodyText[8], NatureOfIncident = splitMessageBodyText[12] }; if (!save4.ToCsv(siReports)) { MessageBox.Show("Error while saving\n" + save4.ErrorCode); } else { save4 = null; } } if (noifound2w == true) { SIReports siReports = new SIReports() { SportCentreCode = splitMessageBodyText[8], NatureOfIncident = splitMessageBodyText[12] + " " + splitMessageBodyText[13] }; if (!save4.ToCsv(siReports)) { MessageBox.Show("Error while saving\n" + save4.ErrorCode); } else { save4 = null; } } if (noifound3w == true) { SIReports siReports = new SIReports() { SportCentreCode = splitMessageBodyText[8], NatureOfIncident = splitMessageBodyText[12] + " " + splitMessageBodyText[13] + " " + splitMessageBodyText[14] }; if (!save4.ToCsv(siReports)) { MessageBox.Show("Error while saving\n" + save4.ErrorCode); } else { save4 = null; } } }