private TivoEndPoint(string address, TivoConnectionMode mode, TivoServiceProvider serviceProvider, ICertificateStore certificateStore) { if (certificateStore == null) { throw new ArgumentNullException("certificateStore"); } if (string.IsNullOrWhiteSpace(address)) { throw new ArgumentNullException("address"); } switch (serviceProvider) { case TivoServiceProvider.TivoUSA: this.rpcAppName = "Quicksilver"; this.rpcAppVersion = new Version(1, 2); break; case TivoServiceProvider.VirginMediaUK: this.rpcAppName = "com.virginmedia.quicksilvervm"; this.rpcAppVersion = new Version(2, 2); break; case TivoServiceProvider.Unknown: default: throw new ArgumentOutOfRangeException("service", "Must specify a valid service provider."); } this.serviceProvider = serviceProvider; this.certificateStore = certificateStore; this.Address = address; this.ConnectionMode = mode; }
string ICertificateStore.GetPassword(TivoServiceProvider serviceProvider) { switch (serviceProvider) { case TivoServiceProvider.TivoUSA: return("mpE7Qy8cSqdf"); case TivoServiceProvider.VirginMediaUK: return("R2N48DSKr2Cm"); case TivoServiceProvider.Unknown: default: throw new ArgumentOutOfRangeException("serviceProvider", "Must specify a valid service provider."); } }
private static string GetMiddlemindServerAddress(TivoServiceProvider serviceProvider) { string address; switch (serviceProvider) { case TivoServiceProvider.TivoUSA: address = "middlemind.tivo.com"; break; case TivoServiceProvider.VirginMediaUK: address = "secure-tivo-api.virginmedia.com"; break; case TivoServiceProvider.Unknown: default: throw new ArgumentOutOfRangeException("serviceProvider", "Must specify a valid service provider."); } return(address); }
Stream ICertificateStore.GetCertificate(TivoServiceProvider serviceProvider) { string resourceName; switch (serviceProvider) { case TivoServiceProvider.TivoUSA: resourceName = "TivoTest.tivo_us.p12"; break; case TivoServiceProvider.VirginMediaUK: resourceName = "TivoTest.tivo_vm.p12"; break; case TivoServiceProvider.Unknown: default: throw new ArgumentOutOfRangeException("serviceProvider", "Must specify a valid service provider."); } return(typeof(TivoCertificateStore).Assembly.GetManifestResourceStream(resourceName)); }
public static TivoEndPoint CreateLocal(string address, TivoServiceProvider serviceProvider, ICertificateStore certificateStore) { return(new TivoEndPoint(address, TivoConnectionMode.Local, serviceProvider, certificateStore)); }
public static TivoEndPoint CreateAway(TivoServiceProvider serviceProvider, ICertificateStore certificateStore) { return(new TivoEndPoint(GetMiddlemindServerAddress(serviceProvider), TivoConnectionMode.Away, serviceProvider, certificateStore)); }