/// <summary> /// Метод для обработки события нажания на кнопку "Сохранить файл". /// </summary> /// <param name="sender"> объект, инициировавший событие </param> /// <param name="e"> аргумент, хранящий информацию о событии </param> private void ButtonClickSaveFile(object sender, RoutedEventArgs e) { lSavedFile.Visibility = Visibility.Visible; tbSavedFile.Text = "Файл сохранен в Dowloads"; lSavedFile.IsEnabled = true; IrisLib.File file = new IrisLib.File(); if (lbFile.SelectedItem != null) { file.Name = lbFile.SelectedItem.ToString(); ClientData.client.GetFileFromHost(file.Name, ClientData.idOnServer, ClientData.CurrentUser.CurrentChatID); } else { tbSavedFile.Text = "Файл не выбран"; } }
/// <summary> /// Метод для получения файла с сервера. /// </summary> /// <param name="file"> получаемый файл </param> public void FileCallback(IrisLib.File file) { try { if (!Directory.Exists("..\\..\\Downloads\\" + database.GetChatFromList(CurrentUser.CurrentChatID).Name)) { Directory.CreateDirectory("..\\..\\Downloads\\" + database.GetChatFromList(CurrentUser.CurrentChatID).Name); } using (FileStream fs = new FileStream("..\\..\\Downloads\\" + database.GetChatFromList(CurrentUser.CurrentChatID).Name + "\\" + file.Name, FileMode.OpenOrCreate)) { Console.WriteLine(file.Name); fs.Write(file.Binary, 0, file.Binary.Length); } } catch { } }
/// <summary> /// Метод для обработки события нажания на кнопку "Отправить файл". /// </summary> /// <param name="sender"> объект, инициировавший событие </param> /// <param name="e"> аргумент, хранящий информацию о событии </param> private void ButtonClickSendFile(object sender, RoutedEventArgs e) { if (ClientData.client != null && ClientData.CurrentUser.CurrentChatID != -1) { if (!ClientData.database.GetChatFromList(ClientData.CurrentUser.CurrentChatID).IsUserInChatSilent(ClientData.CurrentUser.ID)) { Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); Nullable <bool> result = dlg.ShowDialog(); if (result == true) { string filename = dlg.FileName; } else { return; } System.IO.StreamReader streamReader; IrisLib.File file = new IrisLib.File(); streamReader = new System.IO.StreamReader(dlg.FileName); FileStream stream = (FileStream)dlg.OpenFile(); using (var memoryStream = new MemoryStream()) { stream.CopyTo(memoryStream); file.Binary = memoryStream.ToArray(); file.Name = dlg.FileName.Split(new char[] { '\\' })[dlg.FileName.Split(new char[] { '\\' }).Length - 1]; } if (ClientData.database.GetFilesFromDB(ClientData.CurrentUser.CurrentChatID).Contains(file.Name)) { tbSavedFile.Text = "Файл с таким именем уже существует"; lSavedFile.Visibility = Visibility.Visible; return; } ButtonClickShowFiles(sender, e); streamReader.Close(); ClientData.client.SendFileToHost(ClientData.CurrentUser, ClientData.CurrentUser.CurrentChatID, file); } } }
/// <summary> /// Метод для получения файла с сервера. /// </summary> /// <param name="file"></param> public void FileCallback(IrisLib.File file) { throw new NotImplementedException(); }