Exemplo n.º 1
0
        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();
                }
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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;
 }
Exemplo n.º 8
0
 internal Program()
 {
     _client         = new DiscordSocketClient();
     _messageMonitor = new MessageMonitor(_client);
 }
Exemplo n.º 9
0
        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();
        }
Exemplo n.º 10
0
 public void Dispose()
 {
     MessageMonitor.DisposeMessageHelper(this._localWindowHelper.WindowID);
 }
Exemplo n.º 11
0
 public MessageHelper(IWindowHelper windowHelper)
 {
     _localWindowHelper = windowHelper;
     MessageMonitor.AddMessageHelper(this);
 }
Exemplo n.º 12
0
 public void RemoveMessageMonitor(MessageMonitor monitor)
 {
     lock (_delegatesLock) _messageMonitor -= monitor;
 }
Exemplo n.º 13
0
 public void AddMessageMonitor(MessageMonitor monitor)
 {
     lock (_delegatesLock) _messageMonitor += monitor;
 }
Exemplo n.º 14
0
 internal Program()
 {
     _discordSocketClient = new DiscordSocketClient();
     _voiceChatMonitor    = new VoiceChatMonitor(_discordSocketClient);
     _messageMonitor      = new MessageMonitor(_discordSocketClient);
 }
Exemplo n.º 15
0
 /// <summary>
 /// 取消静态事件的注册
 /// </summary>
 public static void End()
 {
     MessageMonitor.End();
     SessionMonitor.End();
 }
Exemplo n.º 16
0
 /// <summary>
 /// 注册静态事件
 /// </summary>
 public static void Start()
 {
     MessageMonitor.Start();
     SessionMonitor.Start();
 }