public long CreateLibrary(CreateLibraryDto library, string guid = null)
        {
            if (guid == null)
            {
                guid = UniqueIdUtil.GenerateUniqueId();
            }

            using (var db = DataAccessUtil.CreateSqlConnection()) {
                db.Open();
                long createdLibraryId = -1;

                using (var txn = db.BeginTransaction()) {
                    var command = new SqliteCommand();
                    command.Connection  = db;
                    command.CommandText = "INSERT INTO library VALUES(NULL, @Name, @BackgroundId, false, @UniqueId)";
                    command.Parameters.AddWithValue("@Name", library.Name);
                    command.Parameters.AddWithValue("@BackgroundId", QueryUtil.GetNullableIdForStorage(library.BackgroundImageId));
                    command.Parameters.AddWithValue("@UniqueId", guid);
                    command.Transaction = txn;
                    command.ExecuteNonQuery();
                    createdLibraryId = QueryUtil.GetLastInsertedPrimaryKey(db, txn);

                    foreach (var setting in LibrarySettings.DEFAULT_SETTINGS)
                    {
                        var createSettingsCommand = new SqliteCommand($"INSERT INTO library_setting VALUES({createdLibraryId}, '{setting.Key}', '{setting.Value}')", db, txn);
                        createSettingsCommand.ExecuteNonQuery();
                    }

                    txn.Commit();
                }

                return(createdLibraryId);
            }
        }
        private long CreateVideoSequence(SqliteConnection db, SqliteTransaction txn, CreateVideoSequenceDto dto)
        {
            var command = GetCreateVideoSequenceCommand(db, dto);

            command.Transaction = txn;
            command.ExecuteNonQuery();

            return(QueryUtil.GetLastInsertedPrimaryKey(db, txn));
        }
Beispiel #3
0
        public long CreateSeries(CreateSeriesDto dto)
        {
            using (var db = DataAccessUtil.CreateSqlConnection()) {
                db.Open();
                var command = GetCreateSeriesCommand(db, dto, UniqueIdUtil.GenerateUniqueId(), false);
                command.ExecuteNonQuery();

                return(QueryUtil.GetLastInsertedPrimaryKey(db));
            }
        }
Beispiel #4
0
        public async Task <long> AddWatchedVideo(long videoId)
        {
            using (var db = DataAccessUtil.CreateSqlConnection()) {
                db.Open();
                var command = new SqliteCommand($"INSERT INTO watch_history(video_id, watch_date) VALUES({videoId}, {"CURRENT_TIMESTAMP"})", db);
                command.ExecuteNonQuery();

                return(QueryUtil.GetLastInsertedPrimaryKey(db));
            }
        }
Beispiel #5
0
        private long CreateTag(CreateTagDto tag, SqliteConnection db, SqliteTransaction txn)
        {
            var tagCommand = new SqliteCommand("INSERT INTO tag(type, name, deleted, unique_id) VALUES (@TagType, @TagName, false, @UniqueId)", db, txn);

            tagCommand.Parameters.AddWithValue("@TagType", tag.Type);
            tagCommand.Parameters.AddWithValue("@TagName", tag.Name);
            tagCommand.Parameters.AddWithValue("@UniqueId", UniqueIdUtil.GenerateUniqueId());
            tagCommand.ExecuteNonQuery();
            return(QueryUtil.GetLastInsertedPrimaryKey(db, txn));
        }
        public long UpdateLocation(Location location)
        {
            using (var db = DataAccessUtil.CreateSqlConnection()) {
                db.Open();

                var command = GetUpdateLocationCommand(db, location, "location_id", location.LocationId);
                command.ExecuteNonQuery();

                return(QueryUtil.GetLastInsertedPrimaryKey(db));
            }
        }
Beispiel #7
0
 public long UpdateTag(Tag tag)
 {
     using (var db = DataAccessUtil.CreateSqlConnection()) {
         db.Open();
         var tagCommand = new SqliteCommand($"UPDATE tag SET type = @TagType, name = @TagName WHERE tag_id = @TagId", db);
         tagCommand.Parameters.AddWithValue("@TagType", tag.Type);
         tagCommand.Parameters.AddWithValue("@TagName", tag.Name);
         tagCommand.Parameters.AddWithValue("@TagId", tag.TagId);
         tagCommand.ExecuteNonQuery();
         return(QueryUtil.GetLastInsertedPrimaryKey(db));
     }
 }