/// <summary>
 /// Constructor which initialises the audio and subtitle handler
 /// </summary>
 /// <param name="player">Instance of external player</param>
 /// <param name="osdHandler">Instance of the osdHandler</param>
 public AudioSubtitleHandler(MPlayerExtPlayer player, IOSDHandler osdHandler)
 {
     _player                  = player;
     _osdHandler              = osdHandler;
     _audioID                 = new Dictionary <int, int>();
     _audioNames              = new Dictionary <int, string>();
     _subtitleID              = new Dictionary <int, int>();
     _subtitleNames           = new Dictionary <int, string>();
     _numberOfAudioStreams    = 0;
     _numberOfSubtitles       = 0;
     _currentAudioStream      = 0;
     _currentSubtitleStream   = 0;
     _currentAudioDelay       = 0;
     _currentSubtitleDelay    = 0;
     _configManager           = ConfigurationManager.GetInstance();
     _audioDelayStep          = _configManager.AudioDelayStep;
     _subtitleDelayStep       = _configManager.SubtitleDelayStep;
     _subtitlesEnabled        = _configManager.EnableSubtitles;
     _currentSubtitlePosition = _configManager.SubtitlePosition;
     _currentSubtitleSize     = _configManager.SubtitleSize;
     if (OSInfo.OSInfo.OSList.WindowsVista == OSInfo.OSInfo.GetOSName() || OSInfo.OSInfo.OSList.Windows2008 == OSInfo.OSInfo.GetOSName() || OSInfo.OSInfo.OSList.Windows7 == OSInfo.OSInfo.GetOSName())
     {
         _mpMessageHandler           = OnMessage;
         GUIWindowManager.Receivers += _mpMessageHandler;
     }
     _volume = 100;
 }
Exemple #2
0
        public async Task SendMessageTest()
        {
            var mockedCache = Create.MockedMemoryCache();

            var mockDateTime = new Mock <IDateTime>();

            mockDateTime.Setup(p => p.Now).Returns(DateTime.Now);

            var mock = new Mock <ILogger <SendMessageHandler> >();
            ILogger <SendMessageHandler> logger = mock.Object;

            var mockMediator = new Mock <IMediator>();

            //Arrange
            var command = new SendMessage()
            {
                UserName = "******",
                Message  = "message"
            };

            var handler = new SendMessageHandler(mockedCache, mockDateTime.Object, logger, mockMediator.Object);

            //Act
            var result = await handler.Handle(command, CancellationToken.None);

            //Assert

            result.Should().Equals(Unit.Value);
        }
Exemple #3
0
 /// <summary>
 ///     Internal routine to invoke the SendMessageHandler
 /// </summary>
 /// <param name="message">The reply to send</param>
 /// <param name="original">The original twitch message</param>
 public void SendMessage(string message, DigestMessage original)
 {
     if (string.IsNullOrEmpty(message))
     {
         return;
     }
     SendMessageHandler?.Invoke(this, new SendMessageArgs {
         Reply = message, OriginalMessage = original
     });
 }
Exemple #4
0
 /// <summary>
 /// Constructor which initialises the internal osd handler
 /// </summary>
 /// <param name="player">Instance of external player</param>
 /// <param name="playerUse">Indicates, if this instance will be used by the player class</param>
 public InternalOSDHandler(MPlayerExtPlayer player, bool playerUse)
 {
     _player             = player;
     _displayDuration    = 2000;
     _osdVisible         = false;
     _osdVisibleForPause = false;
     _mpVolumeHandler    = VolumeHandler.Instance;
     if (playerUse)
     {
         _mpMessageHandler           = OnMessage;
         GUIWindowManager.Receivers += _mpMessageHandler;
     }
 }
Exemple #5
0
        public void ListClick(object sender, ItemClickEventArgs e)
        {
            var     keySecret = e.ClickedItem as KeySecret;
            Message temp      = new Message()
            {
                Content = keySecret,
                Goal    = nameof(ContentModel),
                Key     = "点击列表",
                Source  = this
            };

            //SendMessage?.SendMessage(temp);
            SendMessageHandler?.Invoke(this, temp);
        }
Exemple #6
0
        public async Task given_invalid_username_send_message_should_throw_an_exception
            ([Frozen] Mock <IUserRepository> userRepository,
            SendMessageHandler handler)
        {
            var  sendMessage = new SendMessage("", "test");
            User user        = null;

            userRepository.Setup(r => r.GetByUserNameAsync("")).ReturnsAsync(user);

            var exception = await Record.ExceptionAsync(async() => await handler.HandleAsync(sendMessage));

            exception.Should().NotBeNull();
            exception.Should().BeOfType <UserNotFoundException>();
        }
Exemple #7
0
        static void Main(string[] args)
        {
            var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());

            XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
            var log           = log4net.LogManager.GetLogger(typeof(Program));
            var settings      = GetSettings();
            var mongoDbClient = new MongoDbClient(settings.MongoConnectionString, TimeSpan.FromSeconds(2));

            ThreadPool.SetMaxThreads(32767, 32767);
            ThreadPool.SetMinThreads(2048, 2048);

            var(authorizer, sourceStorage) = new StateRestorer(mongoDbClient).Restore().GetAwaiter().GetResult();

            var addUserInfoHandler = new AddSourceInfoHandler(mongoDbClient, authorizer, sourceStorage, log);
            var sseClient          = new SseClient();
            var subscriber         = new Subscriber(authorizer, sourceStorage, sseClient);
            var messagSender       = new MessageSender();
            var sendMessageHandler = new SendMessageHandler(messagSender, mongoDbClient, sourceStorage, authorizer, settings.dataTtl);
            var handlerMapper      = new HandlerMapper();

            var expDaemon = new ExpirationDaemon(sourceStorage, settings.dataTtl);

            handlerMapper.Add("/addUserInfo", HttpMethod.Post, addUserInfoHandler);
            handlerMapper.Add("/subscribe", HttpMethod.Get, new SubscribeOnSourceHandler(subscriber));
            handlerMapper.Add("/sendMessage", HttpMethod.Post, sendMessageHandler);


            var routingHandler = new RoutingHandler(handlerMapper, log);

            var host = WebHost.CreateDefaultBuilder(args)
                       .ConfigureServices(s =>
            {
                s.AddSingleton(routingHandler);
                s.AddHttpContextAccessor();
            })
                       .UseContentRoot(Directory.GetCurrentDirectory())
                       .UseKestrel()
                       .UseStartup <Startup>()
                       .ConfigureKestrel((context, options) =>
            {
                //options.Listen(new IPAddress(new byte[] { 10, 33, 54, 120 }), 5000);
                options.Listen(new IPAddress(new byte[] { 0, 0, 0, 0 }), 5000);
            })
                       .Build();

            host.Run();
        }
Exemple #8
0
        public async Task given_valid_parameters_send_message_should_success
            ([Frozen] Mock <IUserRepository> userRepository,
            [Frozen] Mock <IUserContext> userContext,
            [Frozen] Mock <IBlockUserRepository> blockUserRepository,
            User toUser,
            SendMessageHandler handler)
        {
            var sendMessage = new SendMessage(toUser.UserName, "test");

            userRepository.Setup(r => r.GetByUserNameAsync(toUser.UserName)).ReturnsAsync(toUser);
            blockUserRepository.Setup(r => r.IsBlockedUser(toUser.Id, userContext.Object.Id)).ReturnsAsync(false);
            userContext.Setup(r => r.Id).Returns(Guid.NewGuid());
            var exception = await Record.ExceptionAsync(async() => await handler.HandleAsync(sendMessage));

            exception.Should().BeNull();
        }
Exemple #9
0
        /// <summary>
        /// Takes a given type T and serializes it to json before
        /// wrapping it in an MSMQ message and placing it on a queue.
        /// </summary>
        public void Send <T>(T dto)
        {
            if (!_writeQueueManager.HasWriteQueues)
            {
                throw new BusException("Bus has not been configured for sending messages. Did you forget to call DefineWriteQueue on BusBuilder?");
            }

            foreach (var writeQueue in _writeQueueManager.GetWriteQueues())
            {
                var message            = CreateMsmqMessageFromDto(dto);
                var context            = new WriteMessageContext(writeQueue);
                var sendMessageHandler = new SendMessageHandler(context, _config, _logger);
                var loggingAspect      = new LoggingAspect(sendMessageHandler, SendOperation, _logger);
                var transactionAspect  = new TransactionAspect(loggingAspect, _logger);
                transactionAspect.Handle(message);
            }
        }
Exemple #10
0
        public async Task given_blocked_user_id_send_message_should_throw_an_exception
            ([Frozen] Mock <IUserRepository> userRepository,
            [Frozen] Mock <IUserContext> userContext,
            [Frozen] Mock <IBlockUserRepository> blockUserRepository,
            User toUser,
            SendMessageHandler handler)
        {
            var sendMessage = new SendMessage("", "test");

            userRepository.Setup(r => r.GetByUserNameAsync("")).ReturnsAsync(toUser);
            blockUserRepository.Setup(r => r.IsBlockedUser(toUser.Id, userContext.Object.Id)).ReturnsAsync(true);

            var exception = await Record.ExceptionAsync(async() => await handler.HandleAsync(sendMessage));

            exception.Should().NotBeNull();
            exception.Should().BeOfType <BlockedUserException>();
        }
        public async Task <IActionResult> Message(MessageBindingModel messageBindingModel)
        {
            //get sender ID
            var senderGambler = await new GamblerQueryHandler().HandleAsync(new GamblerQuery
            {
                Name = messageBindingModel.sender
            });

            Gambler sender = senderGambler.ToList().FirstOrDefault(g => g.Name == messageBindingModel.sender);

            if (sender == null)
            {
                return(RedirectToAction(StaticConstants.All, StaticConstants.ApiMessages, new { error = StaticConstants.SenderDontExistError }));
            }

            //get receiver ID
            var receiverGambler = await new GamblerQueryHandler().HandleAsync(new GamblerQuery
            {
                Name = messageBindingModel.receiver
            });

            Gambler receiver = receiverGambler.ToList().FirstOrDefault(g => g.Name == messageBindingModel.receiver);

            if (receiver == null)
            {
                return(RedirectToAction(StaticConstants.All, StaticConstants.ApiMessages, new { error = StaticConstants.ReceiverDontExistError }));
            }

            SendMessageCommand command = new SendMessageCommand {
                Body          = messageBindingModel.body,
                Subject       = messageBindingModel.subject,
                Id            = Guid.NewGuid(),
                FromGamblerId = sender.Id,
                ToGamblerId   = receiver.Id
            };

            var handler = new SendMessageHandler();
            await handler.HandleAsync(command);

            return(RedirectToAction(StaticConstants.All, StaticConstants.ApiMessages, new { message = StaticConstants.MessageSentSuccessMessage }));
        }
Exemple #12
0
        public PartyControl(string player, string host, LeavePartyHandler leavePartyDelegate, SendMessageHandler sendMessageDelegate, StartGameHandler startGameDelegate)
        {
            OnLeaveParty  = leavePartyDelegate;
            OnSendMessage = sendMessageDelegate;
            OnStartGame   = startGameDelegate;

            this.Host   = host;
            this.player = player;
            InitializeComponent();
            AddPlayer(host);

            // Only host can see the start game button
            if (player == host)
            {
                buttonStartGame.Visibility = Visibility.Visible;
            }
            else
            {
                AddPlayer(player);
            }
        }
 /// <summary>
 /// Constructor which initialises the internal osd handler
 /// </summary>
 /// <param name="player">Instance of external player</param>
 /// <param name="playerUse">Indicates, if this instance will be used by the player class</param>
 public InternalOSDHandler(MPlayerExtPlayer player, bool playerUse)
 {
     _player = player;
       _displayDuration = 2000;
       _osdVisible = false;
       _osdVisibleForPause = false;
       _mpVolumeHandler = VolumeHandler.Instance;
       if (playerUse)
       {
     _mpMessageHandler = OnMessage;
     GUIWindowManager.Receivers += _mpMessageHandler;
       }
 }
 /// <summary>
 /// Constructor which initialises the audio and subtitle handler
 /// </summary>
 /// <param name="player">Instance of external player</param>
 /// <param name="osdHandler">Instance of the osdHandler</param>
 public AudioSubtitleHandler(MPlayerExtPlayer player, IOSDHandler osdHandler)
 {
     _player = player;
       _osdHandler = osdHandler;
       _audioID = new Dictionary<int, int>();
       _audioNames = new Dictionary<int, string>();
       _subtitleID = new Dictionary<int, int>();
       _subtitleNames = new Dictionary<int, string>();
       _numberOfAudioStreams = 0;
       _numberOfSubtitles = 0;
       _currentAudioStream = 0;
       _currentSubtitleStream = 0;
       _currentAudioDelay = 0;
       _currentSubtitleDelay = 0;
       _configManager = ConfigurationManager.GetInstance();
       _audioDelayStep = _configManager.AudioDelayStep;
       _subtitleDelayStep = _configManager.SubtitleDelayStep;
       _subtitlesEnabled = _configManager.EnableSubtitles;
       _currentSubtitlePosition = _configManager.SubtitlePosition;
       _currentSubtitleSize = _configManager.SubtitleSize;
       if (OSInfo.OSInfo.OSList.WindowsVista == OSInfo.OSInfo.GetOSName() || OSInfo.OSInfo.OSList.Windows2008 == OSInfo.OSInfo.GetOSName() || OSInfo.OSInfo.OSList.Windows7 == OSInfo.OSInfo.GetOSName())
       {
     _mpMessageHandler = OnMessage;
     GUIWindowManager.Receivers += _mpMessageHandler;
       }
       _volume = 100;
 }
Exemple #15
0
        public void SendMessage(SendMessageHandler callbackFunc)
        {
            status += (int)MessageStatus.SendMessage;

            this.SendMessageAction = callbackFunc;
        }