public IEnumerable <SubscriberState> SyncSubscriber(CmdArgsSubIdOpt args) { var allSubsWithNotifyUris = GetSubscriber(args).Where(sub => sub.PublicUpdateNotifyUri != null); var subs = new Dictionary <string, SubscriberState>(); foreach (var sub in allSubsWithNotifyUris) { if (!subs.ContainsKey(sub.PublicUpdateNotifyUri.AbsoluteUri)) { subs.Add(sub.PublicUpdateNotifyUri.AbsoluteUri, sub); } } var subsToPing = subs.Values; var resp = PingSubscribers(subsToPing, TimeSpan.FromMinutes(5)); var succeded = from ret in resp where ret.Value == HttpStatusCode.Accepted select ret.Key; var failed = from ret in resp where ret.Value != HttpStatusCode.Accepted select ret; foreach (var kv in failed) { LogEvent.SubscriberSyncWrongStatus(kv.Key.Id, kv.Key.PublicUpdateNotifyUri, (int)kv.Value); } return(succeded); }
public IEnumerable <SubscriberState> GetSubscriber(CmdArgsSubIdOpt args) { var ops = GetOperations(); if (String.IsNullOrEmpty(args.Id)) { return(ops.GetSubcribers()); } else { return(SingleOrEmpty(ops.GetSubscriber(args.Id))); } }
public CmdVerbs() { GetToolVersion = new CmdArgsGetToolVersion(); NewSubscriber = new CmdArgsNewSub(); GetSubscriber = new CmdArgsSubIdOpt(); RemoveSubscriber = new CmdArgsSubIdReq(); SyncSubscriber = new CmdArgsSubIdOpt(); PublishDirectory = new CmdArgsPublishDirectory(); SyncDirectory = new CmdArgsSyncDirectory(); InitalizeSyncState = new CmdArgsInitalizeSyncState(); KuduSync = new KuduSyncOptions(); GetHelp = new CmdArgsGetHelpCommand(); SetSubscriberSiteStatus = new CmdArgsSetSubscriberSiteStatus(); WatchSyncState = new CmdArgsWatchSyncState(); }