コード例 #1
0
 // 1. post session request
 public PleaseWaitWindow Initialize(Account sender, Account receiver, Action closeWatcher, object locker)
 {
     _closeWatcher = closeWatcher;
     _locker       = locker;
     SessionController.CreateSessionRequestResponse(sender, receiver, false, _locker);
     Task.Run(async() =>
     {
         string text = "";
         if (Dispatcher != null)
         {
             await Dispatcher?.InvokeAsync(() => text = ConnectionBlock.Text);
             var i = 30;
             while (i > 0 && !_close)
             {
                 var secs = i;
                 // ReSharper disable once PossibleNullReferenceException
                 await Dispatcher.InvokeAsync(() => ConnectionBlock.Text = text + secs + "sec");
                 await Task.Delay(1000);
                 i--;
             }
             Close();
         }
         _closeWatcher();
     });
     Task.Run(() => FSWatcherController.ExecuteWatcher(_fileSystemWatcher, Directory.GetCurrentDirectory() + @"\..\..\ChatRequests\", "*.sesres", ResponseCallback, () => _close));
     return(this);
 }
コード例 #2
0
        public ChatRoomWindow(Window previousWindow)
        {
            _previousWindow = previousWindow;
            InitializeComponent();
            Grid.Children.Add(_onlineUsers = new OnlineUsers().Initialize(true));
            _onlineUsers.Margin            = new Thickness(5, 123, 4.333, 77.334);
            ImeLabel.Content = ImeLabel.Content + Environment.NewLine +
                               AccountsController.GetInstance().CurrentAccount.Username;
            string pathOnline  = Directory.GetCurrentDirectory() + @"\..\..\CurrentUsers\";
            string pathRequest = Directory.GetCurrentDirectory() + @"\..\..\ChatRequests\";

            Task.Run(() => FSWatcherController.ExecuteWatcher(_fileSystemWatcherOnline, pathOnline, "*.key", AddOnlineAccounts, () => CloseOnline));
            Task.Run(() => FSWatcherController.ExecuteWatcher(_fileSystemWatcherRequest, pathRequest, "*.sesreq", ChatRequestIsHere,
                                                              () => CloseRequest));
            AddOnlineAccounts(null, null);
        }
コード例 #3
0
        public ChatWindow Initialize(Window previousWindow, Account receiver)
        {
            _previousWindow = previousWindow;
            _receiver       = receiver;
            Title.Text      = AccountsController.GetInstance().CurrentAccount.Username + " <---> " + receiver.Username;
            string pathMessages = Directory.GetCurrentDirectory() + $"/../../ReceivedMessages/{AccountsController.GetInstance().CurrentAccount.Username}/";

            if (!Directory.Exists(pathMessages))
            {
                Directory.CreateDirectory(pathMessages);
            }
            string pathClose = Directory.GetCurrentDirectory() + $"/../../ChatRequests/";

            foreach (var enumerateFile in Directory.EnumerateFiles(pathMessages))
            {
                File.Delete(enumerateFile);
            }
            Task.Run(() => FSWatcherController.ExecuteWatcher(_fileSystemWatcherMessages, pathMessages, "*.*", DecryptMessage,
                                                              () => _close));
            Task.Run(() => FSWatcherController.ExecuteWatcher(_fileSystemWatcherClose, pathClose, "*.sesreq", Close,
                                                              () => _close));
            MakeGrid();
            return(this);
        }