private static IOrderedEnumerable <MessageModel> GetMessageListModel() { var mailPaths = MailHelper.ListMailFiles(Properties.Settings.Default.MailDir); var mails = mailPaths.Select(path => new MailModel(path)); var smsPaths = SmsHelper.ListSmsFiles(Properties.Settings.Default.MailDir); var sms = smsPaths.Select(path => new SmsModel(path)); var messages = mails.Cast <MessageModel>().Concat(sms) .OrderByDescending(m => m.SentOn); return(messages); }
private void FillCache() { var mailPaths = MailHelper.ListMailFiles(Properties.Settings.Default.MailDir); foreach (var mailPath in mailPaths.Reverse()) // Fill cache from reverse to not run from the same direction as HomeController.GetMailListModel { MailHelper.ReadMessage(mailPath); } var smsPaths = SmsHelper.ListSmsFiles(Properties.Settings.Default.MailDir); foreach (var smsPath in smsPaths.Reverse()) { SmsHelper.ReadMessage(smsPath); } }
public static IEnumerable <MessageTimeModel> GetMessageListModel(string subPath) { if (!(string.IsNullOrEmpty(subPath) || DirectoryHelper.ListDirectories().Contains(subPath))) { throw new ArgumentException("Invalid path", nameof(subPath)); } var mailDir = Path.Combine(Properties.Settings.Default.MailDir, subPath ?? ""); var mailPaths = MailHelper.ListMailFiles(mailDir); var mails = mailPaths.Select(path => new MessageTimeModel { Model = new Lazy <MessageModel>(() => new MailModel(path.FullName)), MessageTime = path.CreationTimeUtc }); var smsPaths = SmsHelper.ListSmsFiles(mailDir); var sms = smsPaths.Select(path => new MessageTimeModel { Model = new Lazy <MessageModel>(() => new SmsModel(path.FullName)), MessageTime = path.CreationTimeUtc }); var messages = mails.Concat(sms) .OrderByDescending(m => m.MessageTime); return(messages); }