public async Task <List <Content> > CaseNumberReaderAsync(string token) { //SDAuthLib sd = new SDAuthLib(); //sd.GetSDToken(); // string token = sd.AccessToken; // int j = 0; List <Content> writeCon = new List <Content>(); //List<string> id = new List<string>(); // List<DateTime> time = new List<DateTime>(); var mails = OutlookEmails.ReadMailItems(); foreach (var mail in mails) { String pattern1 = @"[1]\d{14}"; String CaseReader = mail.EmailSubject; Match match1 = Regex.Match(CaseReader, pattern1, RegexOptions.IgnoreCase); if (match1.Success) { Content data = new Content() { caseId = match1.Value, alias = mail.EmailTo }; data.time = mail.EmailDate; data.iDate = mail.EmailDate.ToString("MM/dd"); //data.iTime = mail.EmailDate.ToString("HH:mm"); //var localFormat = "HH:mm TT"; //data.iTime = mail.EmailDate.ToString("HH:mm tt"); string convert = mail.EmailDate.ToString("HHmm"); int conTime = Int16.Parse(convert); if (conTime > 1200) { StringBuilder sb1 = new StringBuilder(); sb1.Append(mail.EmailDate.ToString("hh:mm").ToString()); sb1.Append(" PM"); data.iTime = sb1.ToString(); } else { //data.iTime = mail.EmailDate.ToString("hh:mm").ToString() + " AM"; StringBuilder sb2 = new StringBuilder(); sb2.Append(mail.EmailDate.ToString("hh:mm").ToString()); sb2.Append(" AM"); data.iTime = sb2.ToString(); } // data.iDate = ; String pattern2 = @"Task"; Match match2 = Regex.Match(CaseReader, pattern2, RegexOptions.IgnoreCase); if (match2.Success) { data.isTask = "Collaboration Task"; } else { data.isTask = "Case"; } StringBuilder ser = new StringBuilder(); ser.Append(mail.EmailSubject); ser.Append(mail.EmailBody); string pattern3 = @"\s[A|B|C]\s"; Match match3 = Regex.Match(ser.ToString(), pattern3, RegexOptions.IgnoreCase); if (match3.Success) { data.severity = match3.Value; } else { data.severity = ""; } //read the data from json string json = await ReadApi(match1.Value, token); // TokenInfoText.Text += $"Token: {sd.AccessToken}" + Environment.NewLine; // TokenInfoText.Text += $"JSON: {ReadApi}" + Environment.NewLine; dynamic dobj = JsonConvert.DeserializeObject <dynamic>(json); data.Name = dobj["AgentId"].ToString(); data.Topic = dobj["Title"].ToString(); data.SupportCountry = dobj["SupportCountry"].ToString(); data.ServiceLevel = dobj["EntitlementInformation"]["ServiceLevel"].ToString(); data.SLA = ""; data.vertical = ""; writeCon.Add(data); //id.Add(match1.Value); //time.Add(mail.EmailDate); } } //Sort the numbers from the oldest to the lastest. // id.Sort(); //remove the dulplicate numbers // List<string> id1=id.Distinct().ToList(); // time.ToString(); // Console.WriteLine(string.Join("\n", time)); // return id1; List <Content> nonDuplicateList = new List <Content>(); foreach (Content mem in writeCon) { if (nonDuplicateList.Exists(x => x.caseId == mem.caseId) == false) { nonDuplicateList.Add(mem); } } /* var sortedData = * (from s in nonDuplicateList * select new * { * s.caseId, * s.time, * s.alias, * s.severity * }).Distinct().OrderBy(x => x.caseId).ToList(); * foreach (var i in sortedData) * { * Console.WriteLine("caseId: " + i.caseId + " " + "SentTime: " + i.time + " " + "Alias: " + i.alias); * * }*/ return(nonDuplicateList); }
public static List <OutlookEmails> ReadMailItems() { Application outlookApplication = null; NameSpace outlookNamespace = null; MAPIFolder inboxFolder = null; Items mailItems = null; List <OutlookEmails> listEmailDetails = new List <OutlookEmails>(); OutlookEmails emailDetails; try { outlookApplication = new Application(); outlookNamespace = outlookApplication.GetNamespace("MAPI"); inboxFolder = outlookNamespace.GetDefaultFolder(OlDefaultFolders.olFolderInbox); //mailItems = inboxFolder.Items; DateTime startTime = DateTime.Now; DateTime endTime = startTime.AddDays(-150); /*sFilter = "[ReceivedTime] >= '" + startTime.ToString("MM/dd/yyyy HH:mm") + "' AND [ReceivedTime] <= '" + endTime.ToString("MM/dd/yyyy HH:mm") + "'"; */ sFilter = "[ReceivedTime] <= '" + startTime.ToString("MM/dd/yyyy HH:mm") + "' AND [ReceivedTime] >= '" + endTime.ToString("MM/dd/yyyy HH:mm") + "'"; // 04/30/2020 14:53 //sFilter = "[ReceivedTime] >= '07/05/2020 00:00' AND [ReceivedTime] <= '09/05/2020 00:00' "; //mailItems = mailItems.Restrict("[ReceivedTime] > '" + dt.ToString("MM/dd/yyyy hh:mm:ss tt") + "'"); //mailItems = mailItems.Restrict("[ReceivedTime] > '" + dt.ToString("MM/dd/yyyy HH:mm") + "'"); mailItems = inboxFolder.Items.Restrict(sFilter); //mailItems.Restrict(sFilter); //foreach (dynamic item in mailItems) foreach (dynamic item in mailItems) { if (item is MailItem) { emailDetails = new OutlookEmails(); emailDetails.EmailFrom = item.SenderEmailAddress; emailDetails.EmailSubject = item.Subject; emailDetails.EmailBody = item.Body; emailDetails.EmailTo = item.To; emailDetails.EmailDate = item.ReceivedTime; listEmailDetails.Add(emailDetails); ReleaseComObject(item); } } } catch (System.Exception ex) { Console.WriteLine(ex.Message); } finally { ReleaseComObject(mailItems); ReleaseComObject(inboxFolder); ReleaseComObject(outlookNamespace); ReleaseComObject(outlookApplication); } return(listEmailDetails); }