public static void Renew(SubscriptionManager manager) { var request = new RenewRequestMessage(manager.Identifier); // Request the default expiration extension from the service var channel = ChannelFactory <ISubscriptionManager> .CreateChannel(new BasicHttpBinding(), manager.EndpointAddress.ToEndpointAddress()); var response = channel.Renew(request); Console.WriteLine("Status for {0} now expires at {1}", manager.Identifier.Value, response.Body.Expires.Value); }
/// <summary> /// Operation to update the expiration for a subscription. The subscriber sends a request to the subscription manager /// and if the subscription manager accepts a request to renew a subscription the new expiration details will be returned. /// </summary> /// <param name="request">The <see cref="RenewRequestMessage">request message</see> containing the renewal request details.</param> /// <returns>The <see cref="RenewResponseMessage">RenewResponseMessage</see> containing the new subscription expiration details.</returns> public RenewResponseMessage Renew(RenewRequestMessage request) { Guid id = Subscribers.Keys.First(); request.Identifier.Value.TryGetGuid(out id); var exists = Subscribers.ContainsKey(id); if (!exists) { return(new RenewResponseMessage()); } Subscribers[id] = new Tuple <Uri, DateTime>(Subscribers[id].Item1, DateTime.UtcNow.AddDays(5)); return(new RenewResponseMessage(new Expires(Subscribers[id].Item2))); }