public void SendText()
        {
            var message = MessageInput.Text;

            MessageInput.Text = string.Empty;
            this.MessageContextGrid.Visibility = Visibility.Collapsed;
            switch (CurrentState)
            {
            case ContextualMessageOperation.None:
                MessageSender.Instance.SendMessage($"message{Helper.SocketMessageAttributeSeperator}{MasterMenuItem.Id}{Helper.SocketMessageAttributeSeperator}{message}{Helper.SocketMessageAttributeSeperator}{DateTime.Now.Ticks}");
                break;

            case ContextualMessageOperation.Edit:
                MessageSender.Instance.SendMessage($"edit_message{Helper.SocketMessageAttributeSeperator}{MasterMenuItem.Id}{Helper.SocketMessageAttributeSeperator}{message}{Helper.SocketMessageAttributeSeperator}{ContextMessageData.Id}");
                break;

            case ContextualMessageOperation.Reply:
                break;

            default:
                break;
            }
            CurrentState = ContextualMessageOperation.None;
            SetFocusToInput();
        }
 private void ChatMessage_OnEdit(Controls.ChatMessage sender, Message args)
 {
     this.CurrentState             = ContextualMessageOperation.Edit;
     ContextType.Text              = "Edit:";
     ContextMessage.Text           = args.RawMessage;
     MessageContextGrid.Visibility = Visibility.Visible;
     MessageInput.Text             = args.RawMessage;
     ContextMessageData            = args;
     MessageInput.Focus(FocusState.Programmatic);
     SetFocusToInput();
 }
 private async Task SendFiles(IReadOnlyList <IStorageItem> items)
 {
     this.MessageContextGrid.Visibility = Visibility.Collapsed;
     foreach (var item in items)
     {
         try
         {
             var bytes = await(item as StorageFile).ReadBytesAsync();
             var file  = Convert.ToBase64String(bytes);
             MessageSender.Instance.SendMessage($"file{Helper.SocketMessageAttributeSeperator}{MasterMenuItem.Id}{Helper.SocketMessageAttributeSeperator}{item.Name};{file}{Helper.SocketMessageAttributeSeperator}{DateTime.Now.Ticks}");
         }
         catch (Exception) { }
     }
     CurrentState = ContextualMessageOperation.None;
 }
        public ChatsDetailControl()
        {
            InitializeComponent();
            MessageParser.OnMessage            += MessageParser_OnMessage;
            MessageParser.OnEdit               += MessageParser_OnEdit;
            MessageParser.OnNewFile            += FileSaver.SaveFile;
            MessageParser.OnDelete             += MessageParser_OnDelete;
            MessageParser.OnPhysicalKeyChanged += MessageParser_OnPhysicalKeyChanged;
            Binding b = new Binding();

            b.Source = Messages;
            b.Mode   = BindingMode.OneWay;
            ChatList.SetBinding(ListView.ItemsSourceProperty, b);
            Loaded         += ChatsDetailControl_Loaded;
            OnMasterChange += ChatsDetailControl_OnMasterChange;
            ChatList.ContainerContentChanging += ChatList_ContainerContentChanging;
            CurrentState = ContextualMessageOperation.None;
        }
 private void OnContextCancel(object sender, RoutedEventArgs e)
 {
     MessageContextGrid.Visibility = Visibility.Collapsed;
     this.CurrentState             = ContextualMessageOperation.None;
     SetFocusToInput();
 }