Esempio n. 1
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // Controller.
            Controller controller = new Controller();

            // GUI.
            EnterForm enterForm  = new EnterForm();
            ChatForm  chatWindow = new ChatForm();
            ErrorForm errorForm  = new ErrorForm();

            controller.EnterForm          = enterForm;
            controller.UserList           = chatWindow;
            controller.TextMessageInput   = chatWindow;
            controller.TextMessageOutput  = chatWindow;
            controller.UserJoinHandler    = chatWindow;
            controller.UserLeaveHandler   = chatWindow;
            controller.ErrorMessageOutput = errorForm;

            enterForm.ConnectionController   = controller;
            chatWindow.TextMessageController = controller;
            chatWindow.ConnectionController  = controller;
            chatWindow.SoundInputController  = controller;
            chatWindow.SoundOutputController = controller;

            // Sound.
            AudioOutput <string> audioOutput     = new AudioOutput <string>();
            MicrophoneInput      microphoneInput = new MicrophoneInput();

            controller.SoundOutput = audioOutput;
            controller.SoundInput  = microphoneInput;

            // Networking.
            ServiceConnector serviceConnector = new ServiceConnector();

            controller.TextSender        = serviceConnector;
            controller.SoundSender       = serviceConnector;
            controller.ConnectionHandler = serviceConnector;

            serviceConnector.UserController        = controller;
            serviceConnector.SoundController       = controller;
            serviceConnector.TextMessageController = controller;
            serviceConnector.DisconnectController  = controller;

            // Text processing.
            MessageTransformer  messageTransformer  = new MessageTransformer();
            NicknameTransformer nicknameTransformer = new NicknameTransformer();
            MessageVerifier     messageVerifier     = new MessageVerifier(possibleLength: PossibleLength);
            NicknameVerifier    nicknameVerifier    = new NicknameVerifier();

            controller.MessageTransformer  = messageTransformer;
            controller.NicknameTransformer = nicknameTransformer;
            controller.MessageVerifier     = messageVerifier;
            controller.NicknameVerifier    = nicknameVerifier;

            Application.Run(new MessengerAppContext(enterForm, chatWindow, errorForm));
        }
 public void Send(AsyncUserToken token, byte[] message, bool sendPlain = false)
 {
     if (!sendPlain)
     {
         message = MessageTransformer.PrepareMessageForSending(message);
     }
     token.Send(message);
 }
        public void Send(byte[] message, bool sendPlain = false)
        {
            if (!IsActive())
            {
                throw new InvalidOperationException("Socket client must run to send messge");
            }

            if (!sendPlain)
            {
                message = MessageTransformer.PrepareMessageForSending(message);
            }
            m_userToken.Send(message);
        }
Esempio n. 4
0
        private Dictionary <string, MessageTransformer> findAllMessageTransformers(ICollection <IoTDevice> iotDevices)
        {
            Dictionary <string, MessageTransformer> allMessageTransformers = new Dictionary <string, MessageTransformer>();

            foreach (IoTDevice iotDevice in iotDevices)
            {
                string deviceId = iotDevice.IoTHubDeviceID;

                if (iotDevice.EnableMessageConvert)
                {
                    try
                    {
                        string             transformJsonFile  = iotDevice.MessageConvertScript;
                        JObject            transformJObject   = JObject.Parse(transformJsonFile);
                        MessageTransformer messageTransformer = new MessageTransformer();
                        JToken             id;
                        if (transformJObject.TryGetValue("messageCatalogId", out id))
                        {
                            messageTransformer.MessageCatalogID = id.Value <int>();

                            // Remove this property
                            transformJObject.Remove("messageCatalogId");

                            messageTransformer.TransformJson = transformJObject.ToString();
                            allMessageTransformers.Add(deviceId, messageTransformer);

                            _consoleLog.Info("Enable Message Convert - Device ID: {0}", deviceId);
                        }
                        else
                        {
                            _consoleLog.Error("Could not find MessageCatalogID in Script file. - Device ID: {0}", deviceId);
                            _consoleLog.BlobLogError("Could not find MessageCatalogID in Script file. - Device ID: {0}", deviceId);
                        }
                    }
                    catch (Exception)
                    {
                        _consoleLog.Error("Could not parse Message Convert Script - Device ID: {0}", deviceId);
                        _consoleLog.BlobLogError("Could not parse Message Convert Script - Device ID: {0}", deviceId);
                    }
                }
            }

            return(allMessageTransformers);
        }