public async Task <SubspaceTransmission> CreateAsync(SubspaceFolders folder, string messageId, DateTime created) { var transmission = await CreateAsync(folder, messageId); transmission.Created = created; return(transmission); }
public async Task <SubspaceTransmission> CreateAsync(SubspaceFolders folder, string messageId) { var transmission = new SubspaceTransmission(FolderResolver, this); await transmission.SetFolderAndMessageIdAsync(folder, messageId); return(transmission); }
public void SetTransmission(SubspaceTransmission transmission) { TextFrom.Text = transmission.From; TextTo.Text = transmission.To; TextCc.Text = transmission.Cc; TextBcc.Text = transmission.Bcc; TextMessage.Document = Message2Rtf(transmission.Text); if (transmission.Valid) { TextHeader.Text = transmission.Header; } else if (transmission.IsPseudo) { TextHeader.Text = ""; } else { TextHeader.Text = "(selected message is invalid and cannot be displayed)"; } if (!transmission.IsPseudo) { TextCreated.Text = transmission.Created.ToLongDateString() + ", " + transmission.Created.ToLongTimeString(); } else { TextCreated.Text = ""; } ButtonDelete.IsEnabled = transmission.Valid && transmission.Folder != SubspaceFolders.Port; ButtonDeleteAll.IsEnabled = transmission.Valid && transmission.Folder == SubspaceFolders.Inbox; Folder = transmission.Folder; MessageId = transmission.MessageId; FolderBrowser(Folder).SelectTransmission(transmission); }
public SubspaceStation() { InitializeComponent(); Folder = SubspaceFolders.None; MessageId = ""; var container = new ContainerBuilder().UsePegh("SubspaceSensor", new DummyCsArgumentPrompter()).Build(); FolderResolver = container.Resolve <IFolderResolver>(); SubspaceTransmissionFactory = new SubspaceTransmissionFactory(FolderResolver); }
public SubspaceFolderBrowser FolderBrowser(SubspaceFolders folder) { switch (folder) { case SubspaceFolders.Port: return(PortBrowser); case SubspaceFolders.Error: return(ErrorBrowser); case SubspaceFolders.Inbox: return(InboxBrowser); default: throw new Exception("Asked for a folder browser that is not supported"); } }
public async Task <string> FolderPathAsync(SubspaceFolders folder) { var path = (await ConfiguredSubspaceFolderAsync()).FullName + '\\'; switch (folder) { case SubspaceFolders.Port: return(path + @"07_Port\"); case SubspaceFolders.Error: return(path + @"19_Error\"); case SubspaceFolders.Inbox: return(path + @"24_Inbox\"); default: throw new Exception("Asked for a folder browser that is not supported"); } }
public async Task SetFolderAndMessageIdAsync(SubspaceFolders folder, string messageId) { if (MessageId.Length > 0) { throw new Exception("Attempt to overwrite message ID"); } if (Folder != SubspaceFolders.None) { throw new Exception("Attempt to overwrite folder"); } Folder = folder; MessageId = messageId; await TryReadingAsync(); }
public async Task <List <SubspaceTransmission> > ScanFolderAsync(SubspaceFolders folder) { var path = await FolderPathAsync(folder); var dirInfo = new DirectoryInfo(path); var transmissions = new List <SubspaceTransmission>(); // ReSharper disable once LoopCanBeConvertedToQuery foreach (var fileInfo in dirInfo.GetFiles("subspacemsg*.xml")) { var s = fileInfo.Name; transmissions.Add( await SubspaceTransmissionFactory.CreateAsync(folder, s.Substring(11, s.Length - 15), fileInfo.CreationTime) ); } transmissions.Sort(); return(transmissions); }
private async Task VerifyThatSubspaceFolderExistsAsync(SubspaceFolders subspaceFolder) { var folder = await new SubspaceFolder(FolderResolver, SubspaceTransmissionFactory).FolderPathAsync(subspaceFolder); Assert.IsTrue(Directory.Exists(folder)); }