static void Main(string[] args) { var configPath = AppDomain.CurrentDomain.BaseDirectory + Path.DirectorySeparatorChar + "appConfig.json"; var configReader = new ConfigReader(configPath); var appConfig = configReader.Config; string password = null; var i = 0; if (args.Length > 0) { var argument = args[i++]; while (argument != null) { switch (argument) { case "--password": { if (args.Length < i) { throw new Exception("Пропущено значение аргумента --password"); } password = args[i++]; break; } default: throw new Exception("Нераспознанная команда: " + argument); } argument = i < args.Length ? args[i++] : null; } } else { Console.WriteLine("Введите пароль от {0}: ", appConfig.MailAddress); password = Convert.ToString(Console.ReadLine()).Trim(); } using (var messageReader = new MessageReader(appConfig.ImapHost, appConfig.ImapPort, appConfig.ImapSsl, appConfig.MailAddress, password)) { using (var messageSender = new MessageSender(appConfig.MailAddress, password, appConfig.SmtpHost, appConfig.SmtpPort, appConfig.SmtpSsl, appConfig.SendingIntervalDelayInSeconds)) { var messageMonitor = new MessageMonitor(appConfig.MailAddressFrom, appConfig.UpdatingIntervalDelayInSeconds, messageReader, messageSender); Console.WriteLine("Приложение запущено"); Console.WriteLine("Ожидание новых сообщений.."); messageMonitor.Track(); } } }
public MainWindow() { this.messenger = App.Messenger; this.buddyManager = ComponentManager.GetBuddyManager(); this._messageCenter = App.Messenger.MessageCenter; InitializeComponent(); this.messenger.LoginCompleted += new EventHandler<LoginEventArgs>(this.OnLogin); this.messenger.ConnectionStatusChanged += new EventHandler<ConnectionStatusChangeEventArgs>(this.messenger_ConnectionStatusChanged); this.messagemonitor = InstanceAnswerPro.Core.ComponentManager.GetMessageMonitor(); Buddy.BuddyPropertyChanged += new PropertyChangedEventHandler(this.Buddy_BuddyPropertyChanged); }
public MainWindow() { this.messenger = App.Messenger; this.buddyManager = ComponentManager.GetBuddyManager(); this._messageCenter = App.Messenger.MessageCenter; InitializeComponent(); this.messenger.LoginCompleted += new EventHandler <LoginEventArgs>(this.OnLogin); this.messenger.ConnectionStatusChanged += new EventHandler <ConnectionStatusChangeEventArgs>(this.messenger_ConnectionStatusChanged); this.messagemonitor = InstanceAnswerPro.Core.ComponentManager.GetMessageMonitor(); Buddy.BuddyPropertyChanged += new PropertyChangedEventHandler(this.Buddy_BuddyPropertyChanged); }
public async Task MainAsync() { var client = new DiscordSocketClient(); var messageMonitor = new MessageMonitor(client); var voiceChatMonitor = new VoiceChatMonitor(client); client.Log += Log; client.Ready += Ready; client.MessageReceived += messageMonitor.MessageReceived; client.UserVoiceStateUpdated += voiceChatMonitor.UserVoiceStateUpdated; await messageMonitor.AddModulesAsync(); await client.LoginAsync(TokenType.Bot, Settings.DiscordToken); await client.StartAsync(); await Task.Delay(-1); }
public void Subscribe(Subscriber <t> subscriber, ApplicationInfo listenerApplication) { if (subscriber.IsNull() || listenerApplication.IsNull()) { throw new ArgumentNullException(); } if (!SupportedMessages.GetInstance().IsTypeSupported(typeof(t))) { throw new ArgumentException("Type not supported by MessageBus"); } /**Here assumption is that only subscriber will exist one app context for one type of message. * if double entry is tried that system will ignore the subscription attempt. It is the * responsiblity of the caller to ensure that double subscription doesnt happen */ if (!this.subscribers.ContainsKey(typeof(t).FullName)) { MessageMonitor <t> messageMonitors = new MessageMonitor <t>(subscriber, listenerApplication); this.subscribers.Add(typeof(t).FullName, messageMonitors); } }
public void RemoveMessageMonitor(MessageMonitor monitor) { lock (_delegatesLock) _messageMonitor -= monitor; }
public void AddMessageMonitor(MessageMonitor monitor) { lock (_delegatesLock) _messageMonitor += monitor; }
internal Program() { _client = new DiscordSocketClient(); _messageMonitor = new MessageMonitor(_client); }
static void Main(string[] args) { var d = new Dispatcher(); var midgetHouse = new MidgetHouse(d); d.Subscribe<OrderPlaced>(midgetHouse); d.Subscribe<DodgyOrderPlaced>(midgetHouse); var manager = new Manager(); var cashier = new Cashier(d); var ass = new AssMan(d); var cookDispatcher = new SmartDispatcher<CookFood>(); var cookTtlGate = new TimeToLiveGate<CookFood>(cookDispatcher); var cookQueudHandler = new QueuedHandler<CookFood>(cookTtlGate, "cook ttl gate"); var cookLimiter = new Limiter<CookFood>(cookQueudHandler); //var cookScrewsUp = new ScrewsUp<CookFood>(cookLimiter); var alarmClock = new AlarmClock(d); var messageMonitor = new MessageMonitor(d); var fmm = new FilePerOrderMonitor(d); d.Subscribe(alarmClock); d.Subscribe(cookLimiter); d.Subscribe(ass); d.Subscribe(cashier); d.Subscribe(manager); d.Subscribe<OrderPlaced>(messageMonitor); d.Subscribe<DodgyOrderPlaced>(messageMonitor); d.Subscribe<OrderPlaced>(fmm); d.Subscribe<DodgyOrderPlaced>(fmm); var cookQueudHandler1 = new QueuedHandler<CookFood>(new Cook(d, 10000), "c1"); cookDispatcher.AddHandler(cookQueudHandler1); var cookQueudHandler2 = new QueuedHandler<CookFood>(new Cook(d, 5000), "c2"); cookDispatcher.AddHandler(cookQueudHandler2); var cookQueudHandler3 = new QueuedHandler<CookFood>(new Cook(d, 100), "c3"); cookDispatcher.AddHandler(cookQueudHandler3); var queueMonitor = new QueueMonitor(new IAmMonitored[] {cookQueudHandler1, cookQueudHandler2, cookQueudHandler3, cookQueudHandler,d.QueudHandler}); //Cook cook = new Cook(ass); var waiter = new Waiter(d); cookQueudHandler1.Start(); cookQueudHandler2.Start(); cookQueudHandler3.Start(); cookQueudHandler.Start(); d.Start(); alarmClock.Start(); queueMonitor.Start(); new Thread(TryPay).Start(cashier); Random r = new Random(); for (int i = 0; i < 500; i++) { Guid orderNumber; if (r.Next()%2 == 0) { orderNumber = waiter.PlaceDodgyOrder(new[] {Tuple.Create("Burger", 1)}, 15); } else { orderNumber = waiter.PlaceOrder(new[] { Tuple.Create("Burger", 1) }, 15); } if(i > 2)Thread.Sleep(2000); orders.TryAdd(orderNumber, null); } //var orderNumber = waiter.PlaceOrder(new[] {Tuple.Create("Burger", 1)}, 15); //cashier.PayForOrder(orderNumber); Console.ReadLine(); }
public void Dispose() { MessageMonitor.DisposeMessageHelper(this._localWindowHelper.WindowID); }
public MessageHelper(IWindowHelper windowHelper) { _localWindowHelper = windowHelper; MessageMonitor.AddMessageHelper(this); }
internal Program() { _discordSocketClient = new DiscordSocketClient(); _voiceChatMonitor = new VoiceChatMonitor(_discordSocketClient); _messageMonitor = new MessageMonitor(_discordSocketClient); }
/// <summary> /// 取消静态事件的注册 /// </summary> public static void End() { MessageMonitor.End(); SessionMonitor.End(); }
/// <summary> /// 注册静态事件 /// </summary> public static void Start() { MessageMonitor.Start(); SessionMonitor.Start(); }