public int AddToQueue(MusicFile musicFile) { int rowsAffected = 0; try { connection.Open(); if (!Exist(musicFile.fileName)) { var commandSQL = string.Format("INSERT INTO Files (ID, FileName, SubPath) VALUES ($fileGuid, $fileName, $filePath)"); SQLiteCommand cmd = new SQLiteCommand(commandSQL, connection); cmd.Parameters.AddWithValue("$fileGuid", musicFile.fileGuid.ToString()); cmd.Parameters.AddWithValue("$fileName", musicFile.fileName); cmd.Parameters.AddWithValue("$filePath", musicFile.filePath); rowsAffected += cmd.ExecuteNonQuery(); } connection.Close(); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); } return(rowsAffected); }
internal List <MusicFile> GetNotUploaded() { var files = new List <MusicFile>(); try { connection.Open(); var commandSQL = "SELECT * FROM Files"; SQLiteCommand cmd = new SQLiteCommand(commandSQL, connection); var reader = cmd.ExecuteReader(); while (reader.Read()) { var file = new MusicFile() { fileGuid = Guid.Parse((string)reader["ID"]), fileName = (string)reader["FileName"], filePath = (string)reader["SubPath"], uploaded = (long)reader["Uploaded"] > 0 }; files.Add(file); } connection.Close(); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); } return(files); }
// Получает список файлов из папки и добавляет их в очередь загрузки public void getQueue(string path) { try { if (!string.IsNullOrEmpty(path)) { // получаем список файлов List <string> filenames = new List <string>(); getMusicFiles(path, ref filenames); // заполняем ListView файлами foreach (var file in filenames) { // Создаем объект - файл var musicFile = new MusicFile(); // Получаем имя файла musicFile.fileName = Path.GetFileName(file); // Получаем относительный путь musicFile.filePath = Path.GetDirectoryName(file); // Присваиваем файлу идентификатор musicFile.fileGuid = Guid.NewGuid(); if (dal.addToQueue(musicFile) > 0) { // Добавляем файл в очередь uploadQueue.Add(musicFile); } } } } catch (Exception ex) { log.Error(ex); } }
// Действия по завершении загрузки public void updateControls(MusicFile file) { try { if (file.uploaded) { // получаем var item = listViewFiles.FindItemWithText(file.fileGuid.ToString()); // закрашиваем отправленный файл зеленым цветом if (item != null) { item.ForeColor = Color.Green; } // Возобновляем возможность нажимать кнопку загрузки, если есть что загружать. toolStripButtonUpload.Enabled = (listViewFiles.Items.Count > 0); textBoxLog.Text = "Добавлен файл " + file.fileName + Environment.NewLine + textBoxLog.Text; } else { textBoxLog.Text = "НЕ УДАЛОСЬ добавить файл " + file.fileName + ": " + file.comment + Environment.NewLine + textBoxLog.Text; } } catch (Exception ex) { log.Error(ex); } }
// Добавить файл в список незагруженных public int addToQueue(MusicFile musicFile) { int rowsAffected = 0; try { // Открываем соединение connection.Open(); // Сохраняем запись if (!exist(musicFile.fileName)) // которая не была сохранена ранее { // Формируем строку запроса var commandSQL = string.Format("INSERT INTO Files (ID, FileName, SubPath) VALUES ('{0}', '{1}', '{2}')", musicFile.fileGuid, musicFile.fileName, musicFile.filePath); // Создаем команду SQLiteCommand cmd = new SQLiteCommand(commandSQL, connection); // выполняем команду rowsAffected += cmd.ExecuteNonQuery(); } // Закрываем соединение connection.Close(); } catch (Exception ex) { log.Error(ex); } return(rowsAffected); }
// Помечает в БД файлы как загруженные internal bool markAsUploaded(MusicFile musicFile) { int count = 0; try { // Открываем соединение connection.Open(); // Формируем строку запроса string commandSQL = string.Format("UPDATE Files SET Uploaded=1 WHERE ID LIKE '{0}'", musicFile.fileGuid); // Создаем команду SQLiteCommand cmd = new SQLiteCommand(commandSQL, connection); // Получаем количество записей var result = cmd.ExecuteScalar(); // Закрываем соединение connection.Close(); count = Convert.ToInt16(result); } catch (Exception ex) { log.Error(ex); } return(count > 0); }
// Получает не загруженные файлы internal List <MusicFile> getNotUploaded() { var files = new List <MusicFile>(); try { // Открываем соединение connection.Open(); // Формируем строку запроса var commandSQL = "SELECT * FROM Files"; // Создаем команду SQLiteCommand cmd = new SQLiteCommand(commandSQL, connection); // Получаем ридер var reader = cmd.ExecuteReader(); // Читаем while (reader.Read()) { var file = new MusicFile() { fileGuid = Guid.Parse((string)reader["ID"]), fileName = (string)reader["FileName"], filePath = (string)reader["SubPath"], uploaded = (long)reader["Uploaded"] > 0 }; files.Add(file); } // Закрываем соединение connection.Close(); } catch (Exception ex) { log.Error(ex); } return(files); }
// Помечает в БД файлы как загруженные internal bool markAsUploaded(MusicFile musicFile) { int count = 0; try { log.Debug("Помечаем загруженным файл " + musicFile.fileName); // Открываем соединение connection.Open(); // Формируем строку запроса string commandSQL = string.Format("UPDATE Files SET Uploaded=1 WHERE ID LIKE $fileGuid"); // Создаем команду SQLiteCommand cmd = new SQLiteCommand(commandSQL, connection); cmd.Parameters.AddWithValue("$fileGuid", musicFile.fileGuid.ToString()); // Получаем количество записей var result = cmd.ExecuteScalar(); // Закрываем соединение connection.Close(); count = Convert.ToInt16(result); } catch (Exception ex) { log.Error(ex); } return(count > 0); }
internal bool MarkAsUploaded(MusicFile musicFile) { int count = 0; try { connection.Open(); string commandSQL = string.Format("UPDATE Files SET Uploaded=1 WHERE ID LIKE $fileGuid"); SQLiteCommand cmd = new SQLiteCommand(commandSQL, connection); cmd.Parameters.AddWithValue("$fileGuid", musicFile.fileGuid.ToString()); var result = cmd.ExecuteScalar(); connection.Close(); count = Convert.ToInt16(result); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); } return(count > 0); }