public void PruneDead() { _state.Publications = ActivePublications.ToList(); _state.Subscriptions = ActiveSubscriptions.ToList(); Save(); }
private void OnConnectionBroken(object sender, WampSessionCloseEventArgs e) { if (e.CloseType != SessionCloseType.Disconnection) { var subscriptions = new string[ActiveSubscriptions.Count]; var i = 0; foreach (var subjectName in ActiveSubscriptions.Keys) { subscriptions[i] = subjectName; i++; } ActiveSubscriptions.Clear(); // Re-initialize WampChannel Start(); // Re-subscribe to subjects #pragma warning disable 4014 for (var j = subscriptions.Length - 1; j >= 0; j--) { var subjectName = subscriptions[j]; switch (subjectName) { case SubjectNameTicker: SubscribeToTickerAsync(); break; case SubjectNameTrollbox: SubscribeToTrollboxAsync(); break; } } #pragma warning restore 4014 } }
public async Task SubscribeToTrollboxAsync() { if (!ActiveSubscriptions.ContainsKey(SubjectNameTrollbox)) { await WampChannelOpenTask; ActiveSubscriptions.Add(SubjectNameTrollbox, WampChannel.RealmProxy.Services.GetSubject(SubjectNameTrollbox).Subscribe(x => ProcessMessageTrollbox(x.Arguments))); } }
public void Stop() { foreach (var subscription in ActiveSubscriptions.Values) { subscription.Dispose(); } ActiveSubscriptions.Clear(); WampChannel.Close(); }
public async Task SubscribeToTickerAsync() { try { if (!ActiveSubscriptions.ContainsKey(SubjectNameTicker)) { await WampChannelOpenTask; ActiveSubscriptions.Add(SubjectNameTicker, WampChannel.RealmProxy.Services.GetSubject(SubjectNameTicker).Subscribe(x => ProcessMessageTicker(x.Arguments))); } } catch (Exception ex) { Console.WriteLine("WAMP EXCEPTION (SubscribeToTickerAsync): " + ex.Message); } }
public void Stop() { try { foreach (var subscription in ActiveSubscriptions.Values) { subscription.Dispose(); } ActiveSubscriptions.Clear(); WampChannel.Close(); } catch (Exception e) { Console.WriteLine("Live Stop: " + e.Message); PoloniexBot.CLI.Manager.PrintError(e.Message); } }
private void OnConnectionBroken(object sender, WampSessionCloseEventArgs e) { Console.WriteLine("OnConnectionBroken CALLED"); try { foreach (var subscription in ActiveSubscriptions.Values) { subscription.Dispose(); } ActiveSubscriptions.Clear(); PoloniexBot.Trading.Manager.Stop(); PoloniexBot.Trading.Manager.ClearAllPairs(); } catch (Exception ex) { Console.WriteLine("WAMP EXCEPTION (OnConnectionBroken): " + ex.Message); } }
public void Stop() { Console.WriteLine("STOP CALLED"); try { foreach (var subscription in ActiveSubscriptions.Values) { subscription.Dispose(); } ActiveSubscriptions.Clear(); PoloniexBot.Trading.Manager.Stop(); PoloniexBot.Trading.Manager.ClearAllPairs(); WampChannel.Close(); } catch (Exception ex) { Console.WriteLine("WAMP EXCEPTION (Stop): " + ex.Message); } }
private void OnConnectionBroken(object sender, WampSessionCloseEventArgs e) { if (e.CloseType != SessionCloseType.Disconnection) { var subscriptions = new string[ActiveSubscriptions.Count]; var i = 0; foreach (var subjectName in ActiveSubscriptions.Keys) { subscriptions[i] = subjectName; i++; } ActiveSubscriptions.Clear(); try { // Re-initialize WampChannel Start(); // Re-subscribe to subjects #pragma warning disable 4014 for (var j = subscriptions.Length - 1; j >= 0; j--) { var subjectName = subscriptions[j]; switch (subjectName) { case SubjectNameTicker: SubscribeToTickerAsync(); break; case SubjectNameTrollbox: SubscribeToTrollboxAsync(); break; } } #pragma warning restore 4014 } catch (Exception ex) { Console.WriteLine("Live OnConnectionBroken: " + ex.Message); PoloniexBot.CLI.Manager.PrintError(ex.Message); } } }
public async Task SubscribeToTickerAsync() { if (!ActiveSubscriptions.ContainsKey(SubjectNameTicker)) { try { await WampChannelOpenTask; ActiveSubscriptions.Add(SubjectNameTicker, WampChannel.RealmProxy.Services.GetSubject(SubjectNameTicker) .Subscribe(x => ProcessMessageTicker(x.Arguments))); } catch (Exception ex) { var clientError = ClientChannelHttpException.CreateFrom(ex); if (clientError != null) { throw clientError; } throw; } } }
public override void Execute() { WriteLiteral(@"<link rel=""stylesheet"" href=""https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css"" integrity=""sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB"" crossorigin=""anonymous"">"); Layout = new LayoutPage(Title); WriteLiteral("<div class=\"col-md-12\">\r\n"); WriteLiteral("<h1 class=\"page-header\">\r\n"); Write(Title); WriteLiteral("</h1>\r\n"); WriteLiteral(@"<!-- Card --> <div class=""card card-image"" style=""background-image: url(https://mdbootstrap.com/img/Photos/Horizontal/Work/4-col/img%20%2814%29.jpg);""> <!-- Content --> <div > <div class=""row d-flex justify-content-center ""> <div class=""col-md-10 col-xl-8""> <!--Accordion wrapper--> <div class=""accordion"" id=""accordionE"" role=""tablist"" aria-multiselectable=""true"">"); for (var i = 0; i < ActiveSubscriptions.ListSubscriptions().Count(); i++) { var currentSubscription = ActiveSubscriptions.ListSubscriptions()[i]; WriteLiteral($@"<!--Accordion card --> <div class =""card mb-4"" > <!--Card header --> <div class=""card-header p-0 z-depth-1"" role=""tab"" id=""header_{i}"" > <a data-toggle=""collapse"" data-parent=""#accordion"" href=""#collapse_{i}"" aria-expanded=""true"" aria-controls=""collapse_{i}""> <i class=""fa fa-cloud fa-2x p-3 mr-4 float-left black-text"" aria-hidden=""true"" ></i > <h4 class =""text-uppercase white-text mb-0 py-3 mt-1"" > {currentSubscription.MailBox} - {currentSubscription.SubscriptionName} last action {currentSubscription.LastActivity:g} </h4 > </a > </div > <!--Card body --> <div id=""collapse_{i}"" class=""collapse"" role=""tabpanel"" aria-labelledby=""header_{i}"" data-parent=""#accordion""> <div class =""card-body rgba-black-light white-text z-depth-1"" > <p class=""p-md-4 mb-0"" >{string.Join(", ",currentSubscription.SubscriptionChangeCollectionData.Select(x=>x.FolderPath))}</p > </div > </div > </div > <!--Accordion card -->"); } WriteLiteral(@" </div> <!--/.Accordion wrapper --> </div> </div> </div> <!-- Content --> </div> <!-- Card -->"); /* for (var i = 0; i < ActiveSubscriptions.Subscriptions.Count(); i++) * { * WriteLiteral($@"<div class=""card""> * <div class=""card-header bg-danger"" id=""Subscription_{i}""><h5 class=""mb-0""> * <button class=""btn btn-link"" data-toggle=""collapse"" data-target=""#collapse_{i}"" aria-expanded=""true"" aria-controls=""collapseOne"">"); * Write(ActiveSubscriptions.Subscriptions[i].SubscriptionName); * WriteLiteral(" - "); * Write(ActiveSubscriptions.Subscriptions[i].MailBox); * WriteLiteral(@"</button><button class=""btn btn-success"">Reset</button>"); * WriteLiteral(" </h5>\r\n"); * WriteLiteral(" </div>\r\n"); * WriteLiteral($@"<div id=""collapse_{i}"" class=""collapse show"" aria-labelledby=""headingOne"" data-parent=""#accordion""> * <div class=""card-body""> * <div class=""row""> * <div class=""""> * <label>Last Refresh Time:</label> * <input type=""text"" class=""form-control form-control-readonly"" value=""{ActiveSubscriptions.Subscriptions[i].LastMisFileDate.Value:dd-mmm-yy}"" /> * </div> * </div> * <div class=""row""> * <div class=""""> * <label>Number of Folders:</label> * <input type=""text"" class=""form-control form-control-readonly"" value=""{ActiveSubscriptions.Subscriptions[i].SubscriptionData.Count}"" /> * </div> * </div> * <div class=""row""> * <div class=""""> * <label>Folders:</label> * <input type=""text"" class=""form-control form-control-readonly"" value=""{string.Join(",",ActiveSubscriptions.Subscriptions[i].SubscriptionData)}"" /> * </div> * </div> * </div> * </div> * </div>"); */ WriteLiteral("\r\n</div>\r\n"); WriteLiteral("\r\n</div>\r\n"); }