Пример #1
0
        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);
        }
Пример #2
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)
            {
                System.Windows.MessageBox.Show(ex.Message);
            }
            return(files);
        }
Пример #3
0
 // Получает список файлов из папки и добавляет их в очередь загрузки
 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);
     }
 }
Пример #4
0
 // Действия по завершении загрузки
 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);
     }
 }
Пример #5
0
        // Добавить файл в список незагруженных
        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);
        }
Пример #6
0
        // Помечает в БД файлы как загруженные
        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);
        }
Пример #7
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);
        }
Пример #8
0
        // Помечает в БД файлы как загруженные
        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);
        }
Пример #9
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);
        }