public void NotifyPropertyChanged([CallerMemberName] string propertyName = null) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } if (Subscribers != null && Subscribers.ContainsKey(propertyName)) { Subscribers[propertyName](); } }
private void OnHandleEventMessages(object sender, System.Timers.ElapsedEventArgs e) { if (Interlocked.CompareExchange(ref _running, 1, 0) != 0) { Logger.DebugFormat("OnHandleEventMessages is running. Current Thread[{thread}]", Thread.CurrentThread.ManagedThreadId); return; } Logger.DebugFormat("OnHandleEventMessages starts on the thread({threadid}).", Thread.CurrentThread.ManagedThreadId); var target = (System.Timers.Timer)sender; if (!target.Enabled) { Logger.Debug("EventHub's timer has stopped."); return; } Logger.Debug("EventHub's timer stops."); target.Stop(); var messages = GetPendingMessages(); foreach (var msg in messages) { List <IEventHandler> handlers; if (Subscribers.TryGetValue(msg.Kind, out handlers)) { foreach (var h in handlers) { try { Logger.DebugFormat("Executing the {handler}.", h.GetType().FullName); h.Handle(msg); } catch (FailedHandleException ex) { Logger.ErrorFormat("Invoking handler error[FailedHandleException]:{@ex}.", ex); PublishAsync(ex.FailedMessage); Logger.DebugFormat("Failed message: {@msg}.", ex.FailedMessage); continue; } catch (Exception ex) { Logger.ErrorFormat("Invoking handler error[Exception]:{@ex}.", ex); continue; } } Logger.DebugFormat("Destroy message({id}).", msg.Id); DestroyMessage(msg.Id); } } Interlocked.CompareExchange(ref _running, 0, 1); Logger.Debug("EventHub's timer starts again."); target.Start(); Logger.DebugFormat("OnHandleEventMessages ends on the thread({threadid}).", Thread.CurrentThread.ManagedThreadId); }
public void AddMessageHandler <T>(Func <IHandler <T> > futureHandler) where T : Message { List <Func <Message, bool> > handlers; if (!_handlers.TryGetValue(typeof(T), out handlers)) { handlers = new List <Func <Message, bool> >(); _handlers.Add(typeof(T), handlers); } var handlerInstance = futureHandler(); var guaranteedDelivery = new GuaranteedOnceDelivery <T>(handlerInstance); IHandler <T> handler = new FutureHandler <T>(futureHandler); if (guaranteedDelivery.Enabled) { if (_messageLock == null) { throw new Exception("IMessageLock is null. You need to specify an implementation for IMessageLock."); } handler = new ExactlyOnceHandler <T>(handler, _messageLock, guaranteedDelivery.TimeOut, handlerInstance.GetType().FullName.ToLower()); } var executionTimeMonitoring = _messagingMonitor as IMeasureHandlerExecutionTime; if (executionTimeMonitoring != null) { handler = new StopwatchHandler <T>(handler, executionTimeMonitoring); } Subscribers.Add(new Subscriber(typeof(T))); handlers.Add(message => handler.Handle((T)message)); }
static async Task Main(string[] args) { try { MagazineStore m = new MagazineStore(); // Get Token Token t = await m.GetToken(); Console.WriteLine($"Retrieved Token : {t.token}"); // Get Subscribers var tSubscribers = m.GetSubscribers(t.token); // Get Magazines var tMagazines = m.GetMagazines(t.token); Task.WaitAll(new Task[] { tSubscribers, tMagazines }); Subscribers s = tSubscribers.Result; var magazines = tMagazines.Result; // Get List of Subscribers who subscribed magazine in each category var list = m.GetSubscribersForAllCategories(s.data, magazines); // Submit the answer and get the response AnswerResponse a = await m.PostAnswer(t.token, list); Console.WriteLine(JsonConvert.SerializeObject(a)); } catch (Exception ex) { Console.WriteLine($"Unhandled Exception : {ex.Message}"); } }
private static SubscribersList getMatchedSubscribers(Subscribers subscribers, Categories categories, List <Magazine> magazines) { SubscribersList matchedSubscribers = new SubscribersList(); matchedSubscribers.subscribers = new List <string>(); foreach (Subscriber subscriber in subscribers.data) { //build a list of categories this user subscribes to List <string> subscriberCategories = new List <string>(); foreach (int id in subscriber.magazineIds) { //get the category of this magazine string category = magazines.Where(x => x.id == id).First().category; //if it's not already on our list, add it if (!subscriberCategories.Contains(category)) { subscriberCategories.Add(category); } } //if we have the same amount of categories, subscriber has one for each if (subscriberCategories.Count() == categories.data.Count()) { matchedSubscribers.subscribers.Add(subscriber.id); } } return(matchedSubscribers); }
public SubscriberRequestCollection(IEnumerable <SubscriberItem> subscribers) { foreach (var subscriber in subscribers) { Subscribers.Add(subscriber); } }
/// <summary>订阅主题</summary> /// <param name="user"></param> /// <param name="session"></param> /// <returns></returns> public Boolean Add(String user, IApiSession session) { if (Subscribers.ContainsKey(user)) { return(false); } var scb = new Subscriber { User = user, Session = session }; Subscribers[user] = scb; var ds = session as IDisposable2; if (ds != null) { ds.OnDisposed += (s, e) => Remove(user); } #if DEBUG var msg = new Message { Sender = user, Body = "上线啦" }; Enqueue(msg); #endif return(true); }
public ActionResult Index() { return(View(new HomeViewModel { Subscribers = Subscribers.ToList() })); }
private void InitializeAppResponders(AppConf[] configs) { string currentMode = ProcessMode.Current.Mode.ToString(); configs.Where(c => c.ProcessMode.Equals(currentMode)).Each(ac => { OnAppContentResponderInitializing(ac); Logger.RestartLoggingThread(); AppContentResponder responder = new AppContentResponder(this, ac) { Logger = Logger }; Subscribers.Each(logger => { logger.RestartLoggingThread(); responder.Subscribe(logger); }); string appName = ac.Name.ToLowerInvariant(); responder.Initialize(); responder.FileUploading += (o, a) => FileUploading?.Invoke(o, a); responder.FileUploaded += (o, a) => FileUploaded?.Invoke(o, a); responder.Responded += (r, context) => OnResponded(context); responder.NotResponded += (r, context) => OnNotResponded(context); AppContentResponders[appName] = responder; OnAppContentResponderInitialized(ac); }); }
private static void LogLine(string msg, EventType eventType) { switch (eventType) { case EventType.Error: Logger.WriteError(Logger.EventId.NotDefined, msg, AdSyncLogCategory); break; case EventType.Warning: Logger.WriteWarning(Logger.EventId.NotDefined, msg, AdSyncLogCategory); break; case EventType.Info: Logger.WriteInformation(Logger.EventId.NotDefined, msg, AdSyncLogCategory); break; case EventType.Verbose: Logger.WriteVerbose(string.Format(" {0}", msg), AdSyncLogCategory); break; } Console.WriteLine(msg); // log event for subscriber of the current thread StringBuilder sb; if (Subscribers.TryGetValue(Thread.CurrentThread.GetHashCode(), out sb)) { if (sb != null) { sb.AppendLine(GetMsgWithTimeStamp(msg)); } } }
public SubscriberRequestCollection(IEnumerable <Uri> subscribers) { foreach (Uri subscriber in subscribers) { Subscribers.Add(subscriber); } }
private Addons.TestAddon.TestAddon testAddon; // Reference ourselves lol? public TestAddon(Subscribers Subscriber) : base(Subscriber) { this.Name = this.GetType().Name; this.CoreDependencies.Add(typeof(Core.ServerQueryConnection.ServerQueryConnection).Name); this.CoreDependencies.Add(typeof(Core.ServerQueryShell.ServerQueryShell).Name); this.AddonDependencies.Add(typeof(Addons.TestAddon.TestAddon).Name); }
public async Task <IActionResult> Edit(int id, [Bind("Id,Email")] Subscribers subscribers) { if (id != subscribers.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(subscribers); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SubscribersExists(subscribers.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(subscribers)); }
static void SendFreeGameMessage(Subscribers sub) { try { DatabaseContext db = new DatabaseContext(); foreach (var game in games) { if ((sub.wantsDlcInfo && game.gameType == "dlc") || (sub.wantsGameInfo && game.gameType == "game")) { if (db.notifications.Any(n => n.steamLink.StartsWith(game.steamLink) && n.chatID == sub.chatID)) { continue; } bot.SendTextMessageAsync(sub.chatID, game.name + " just went free! " + game.steamLink); Notifications notification = new Notifications(); notification.chatID = sub.chatID; notification.steamLink = game.steamLink; db.notifications.Add(notification); db.SaveChanges(); Thread.Sleep(1000); //Sleep 1 second between every message so I don't hit any limits } } } catch { } }
private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { long chatID = e.CallbackQuery.Message.Chat.Id; DatabaseContext db = new DatabaseContext(); Subscribers sub = db.subscribers.Where(s => s.chatID == chatID).FirstOrDefault(); if (sub == null) { sub = new Subscribers(); sub.chatID = chatID; sub.wantsDlcInfo = false; sub.wantsGameInfo = false; db.subscribers.Add(sub); } switch (e.CallbackQuery.Data) { case gameOnly: sub.wantsDlcInfo = false; sub.wantsGameInfo = true; bot.SendTextMessageAsync( chatId: chatID, text: "Thank you, I will let you know when I find some free games!", replyMarkup: new ReplyKeyboardRemove() ); SendFreeGameMessage(sub); break; case gameanddlc: sub.wantsDlcInfo = true; sub.wantsGameInfo = true; bot.SendTextMessageAsync( chatId: chatID, text: "Thank you, I will let you know when I find some free games and dlcs!", replyMarkup: new ReplyKeyboardRemove() ); SendFreeGameMessage(sub); break; case dlcsOnly: sub.wantsDlcInfo = true; sub.wantsGameInfo = false; bot.SendTextMessageAsync( chatId: chatID, text: "Thank you, I will let you know when I find some free dlcs!", replyMarkup: new ReplyKeyboardRemove() ); SendFreeGameMessage(sub); break; } db.SaveChanges(); }
private void RemoveSubscription(string id, ref int subscriptions) { object o; if (Subscribers.TryRemove(id, out o)) { if (!Subscribers.Any()) { var variable = new List <string> { Name }; var parent = Parent; while (parent != null) { variable.Insert(0, parent.Name); parent = parent.Parent; } using (var guard = new ReaderGuard(_papperLock)) { _papper.SetActiveState(false, variable.FirstOrDefault(), variable.Skip(1).Aggregate((a, b) => $"{a}.{b}")); _papper.UnsubscribeDataChanges(Name, OnDataChanged); } } Interlocked.Decrement(ref subscriptions); } foreach (var child in Childs) { child.Value.RemoveSubscription(id, ref subscriptions); } }
public ActionResult AddSubcribe(Subscribers newsubscrib) { subscribers.Addsub(newsubscrib); string message = "SUCCESS"; return(Json(new { Message = message, JsonRequestBehavior.AllowGet })); }
public SubscriberAndPrefs FetchSubscriberAndPreferences() { lastcallContext c = new LastCallDatabase.lastcallContext(); Subscribers person = c.Subscribers.Where(x => x.Id == 1).FirstOrDefault(); if (person == null) { return(null); } Foodpreferences[] prefs = (from x in c.Foodpreferences where x.Subscriberid == person.Id select x).Include(x => x.Preference).ToArray(); SubscriberAndPrefs result = new SubscriberAndPrefs(person); result.Preferences = new Preference[prefs.Length]; for (int i = 0; i < prefs.Length; i++) { result.Preferences[i] = new Preference() { Id = prefs[i].Id, Preftype = prefs[i].Preferenceid, Prefname = prefs[i].Preference.Foodtype } } ; return(result); }
// https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core-scaffold-example.html private bool CheckUserRegistered(string email) { lastcallContext c = new LastCallDatabase.lastcallContext(); Subscribers subscriber = c.Subscribers.Where((x) => x.Email == email).FirstOrDefault(); return(subscriber != null); }
private void addSubBtn_Click(object sender, EventArgs e) { Subscriber sub = new Subscriber(subTB.Text); Subscribers.Add(sub); RefreshSubscribers(); }
public void Unsubscribe(string uid) { lock (Subscribers) { Subscribers.Remove(uid); } }
static void Main(string[] args) { token = getToken(); Console.WriteLine("Token: " + token); //get categories Console.Write("Get categories... "); Categories categories = getCategories(); Console.WriteLine("done."); //get subscribers Console.Write("Get subscribers... "); Subscribers subscribers = getSubscribers(); Console.WriteLine("done."); //get all magazines from each category Console.Write("Get magazines... "); List <Magazine> magazines = getAllMagazines(categories.data); Console.WriteLine("done."); //for subscribers who match all categories SubscribersList matchedSubscribers = getMatchedSubscribers(subscribers, categories, magazines); string jsonAnswer = JsonConvert.SerializeObject(matchedSubscribers); string response = postAnswer(jsonAnswer); parseAnswer(response); Console.WriteLine("Press any key to quit..."); Console.ReadKey(); }
public async Task <IActionResult> Create([Bind("StoreId,StoreName,SellerFirstname,SellerLasttname,StoreDescription,PhoneNumber,Email")] Store store) { if (ModelState.IsValid) { await HttpContext.Session.LoadAsync(); string userId = HttpContext.Session.GetString("UserId"); int userID = Convert.ToInt32(protector.Unprotect(userId)); _context.Add(store); var user = await _context.Users .FirstOrDefaultAsync(m => m.UserID == userID); await _context.SaveChangesAsync(); Subscribers joined = new Subscribers() { UserId = userID, StoreId = store.StoreId, Username = user.Username, email = user.email, IsOwner = true, }; await _context.JoinedStore.AddAsync(joined); await _context.SaveChangesAsync(); return(RedirectToAction("Dashboard", "Stores", new { ID = joined.StoreId })); } return(View(store)); }
public async Task automatically_sticks_in_replies_queue() { await configure(); Subscribers.HasSubscriber(TransportConstants.RetryUri) .ShouldBeTrue(); }
public IActionResult AddSubscriber(Subscribers sub, [FromBody] Subscribers subscriber) { sub.DateModified = DateTime.Now; _context.Subscribers.Add(subscriber); _context.SaveChanges(); return(Ok(subscriber)); }
public override AStarPlanResponse HandleRequest(AstarPlanRequest req) { // If there are no subscribers that want this request, it must be old. So remove it. if (Subscribers.Find(s => s.ID == req.Subscriber.ID) == null) { return(new AStarPlanResponse { Path = null, Success = false, Request = req, Result = AStarPlanner.PlanResultCode.Cancelled }); } AStarPlanner.PlanResultCode result; List <MoveAction> path = AStarPlanner.FindPath(req.Sender.Movement, req.Start, req.GoalRegion, req.Sender.Manager.World.ChunkManager, req.MaxExpansions, req.HeuristicWeight, Requests.Count, () => { return(Subscribers.Find(s => s.ID == req.Subscriber.ID && s.CurrentRequestID == req.ID) != null); }, out result); AStarPlanResponse res = new AStarPlanResponse { Path = path, Success = (path != null), Request = req, Result = result }; return(res); }
private void SubscribeToIpcMessageEvents(IpcMessage msg) { Subscribers.Each(logger => { msg.Subscribe(logger); }); }
public void TableChanged(UspTableVersionChangeTrackingReturnModel table) { // get all the subscribers try { var subscriberKeys = (from c in Subscribers select c.Key).ToList(); for (int i = subscriberKeys.Count - 1; i >= 0; i--) { var keyValue = subscriberKeys.ElementAt(i); IEventNotificationCallback callback = Subscribers[keyValue]; if (((ICommunicationObject)callback).State == CommunicationState.Opened) { //call back only those subscribers who are interested in this fileType if (string.Equals(keyValue.TableInterested, table.Name, StringComparison.OrdinalIgnoreCase)) { callback.PublishTableChange(table.Name, keyValue.Id); } } else { //These subscribers are no longer active. Delete them from subscriber list subscriberKeys.Remove(keyValue); Subscribers.Remove(keyValue); } } } catch (Exception ex) { Logger.Error(ex, ex.Message); throw; } }
public static void LogException(Exception ex) { Logger.WriteException(ex, AdSyncLogCategory); Console.WriteLine(string.Format("ERROR - exception: {0}", ex.Message)); Console.WriteLine(ex.StackTrace); if (ex.InnerException != null) { Console.WriteLine(ex.InnerException.Message); } // log event for subscriber of the current thread StringBuilder sb; if (Subscribers.TryGetValue(Thread.CurrentThread.GetHashCode(), out sb)) { if (sb != null) { sb.AppendLine(string.Format("ERROR - exception: {0}", ex.Message)); sb.AppendLine(ex.StackTrace); if (ex.InnerException != null) { sb.AppendLine(ex.InnerException.Message); } } } //Logger.WriteError(string.Format("ERROR - exception: {0}", ex.Message)); //LogMain(string.Format(" {0}", ex.StackTrace)); //if (ex.InnerException != null) //{ // LogMain(string.Format(" {0}", ex.InnerException.Message)); //} IncreaseError(); }
public static Subscribers FromConfiguration(this Subscribers subscribers) { if (EventBusConfigSection.CheckConfig) { subscribers = subscribers.WithCreator(DefaultSingleton <ICreator> .Instance); if (EventBusConfigSection.Current.Subscribers != null) { EventBusConfigSection.Current.Subscribers.Assemblies.Cast <AssemblyElement>().ToList() .ForEach(element => { subscribers = subscribers.WithAssembly(Assembly.Load(element.Assembly)); }); EventBusConfigSection.Current.Subscribers.Events.Cast <EventTypeElement>().ToList() .ForEach(element => { typeof(Subscribers).GetMethod("Subscribe") .MakeGenericMethod(Type.GetType(element.Name)).Invoke(subscribers, new object[] { }); }); } } return(subscribers); }
/// <summary> /// Creates an instance of <see cref="SubscriberMeasurementUserControl"/>. /// </summary> public SubscriberMeasurementUserControl() { InitializeComponent(); m_dataContext = new Subscribers(1); m_dataContext.PropertyChanged += DataContext_PropertyChanged; StackPanelManageSubscriberMeasurements.DataContext = m_dataContext; UpdateFilterExpressions(); }
/// <summary> /// Creates an instance of <see cref="SubscriberStatusUserControl"/>. /// </summary> public SubscriberStatusUserControl() { InitializeComponent(); this.Loaded += SubscriberStatusUserControl_Loaded; this.Unloaded += SubscriberStatusUserControl_Unloaded; m_dataContext = new Subscribers(20); this.DataContext = m_dataContext; }
/// <summary> /// Creates an instance of <see cref="SubscriberUserControl"/>. /// </summary> public SubscriberUserControl() { InitializeComponent(); this.Loaded += SubscriberUserControl_Loaded; this.Unloaded += SubscriberUserControl_Unloaded; m_dataContext = new Subscribers(10, false); this.DataContext = m_dataContext; m_dataContext.PropertyChanged += DataContext_PropertyChanged; m_dataContext.SecurityMode = !string.IsNullOrEmpty(m_dataContext.CurrentItem.RemoteCertificateFile) ? SecurityMode.TLS : SecurityMode.Gateway; m_certificateWaitHandle = new ManualResetEventSlim(); }