public static bool Validate(SkillEffect skillEffect) { if (skillEffect == null) { return(false); } if (skillEffect.SkillID < 0 || skillEffect.Level < 1 || skillEffect.Sequence < 1) { return(false); } if (String.IsNullOrWhiteSpace(skillEffect.Description)) { return(false); } return(true); }
public async Task <SkillEffect> GetSkillEffect(int skillID, sbyte level, sbyte sequence) { var skillEffect = (SkillEffect)null; using (MySqlConnection connection = GetConnection()) { await connection.OpenAsync(); var command = connection.CreateCommand(); command.CommandText = "SELECT SkillID, Level, Sequence, Description FROM SkillEffects WHERE SkillID = @SkillID AND Level = @Level AND Sequence = @Sequence"; command.Parameters.AddWithValue("@SkillID", skillID); command.Parameters.AddWithValue("@Level", level); command.Parameters.AddWithValue("@Sequence", sequence); using (var reader = await command.ExecuteReaderAsync()) if (await reader.ReadAsync()) { skillEffect = new SkillEffect((int)reader["SkillID"], (sbyte)reader["Level"], (sbyte)reader["Sequence"], (string)reader["Description"]); } } return(skillEffect); }
public async Task <(bool Conflict, int SkillID, sbyte Level, sbyte Sequence)> UpdateSkillEffect(int skillID, sbyte level, sbyte Sequence, SkillEffect skillEffect) { var success = false; var conflict = false; using (MySqlConnection connection = GetConnection()) { await connection.OpenAsync(); var command = connection.CreateCommand(); command.CommandText = "UPDATE SkillEffects SET SkillID = @SkillID, Level = @Level, Sequence = @Sequence, Description = @Description WHERE SkillID = @SkillIDFilter AND Level = @LevelFilter AND Sequence = @SequenceFilter"; command.Parameters.AddWithValue("@SkillID", skillEffect.SkillID); command.Parameters.AddWithValue("@Level", skillEffect.Level); command.Parameters.AddWithValue("@Sequence", skillEffect.Sequence); command.Parameters.AddWithValue("@Description", skillEffect.Description); command.Parameters.AddWithValue("@SkillIDFilter", skillID); command.Parameters.AddWithValue("@LevelFilter", level); command.Parameters.AddWithValue("@SequenceFilter", Sequence); try { var result = await command.ExecuteNonQueryAsync(); success = result == 1; } catch (Exception exception) { conflict = true; Debug.WriteLine(exception); } } return(success ? (conflict, skillEffect.SkillID, skillEffect.Level, skillEffect.Sequence) : (conflict, 0, (sbyte)0, (sbyte)0)); }
public async Task <(int SkillID, sbyte Level, sbyte Sequence)> CreateSkillEffect(SkillEffect skillEffect) { var success = false; using (MySqlConnection connection = GetConnection()) { await connection.OpenAsync(); var command = connection.CreateCommand(); command.CommandText = "INSERT INTO SkillEffects (SkillID, Level, Sequence, Description) VALUES (@SkillID, @Level, @Sequence, @Description)"; command.Parameters.AddWithValue("@SkillID", skillEffect.SkillID); command.Parameters.AddWithValue("@Level", skillEffect.Level); command.Parameters.AddWithValue("@Sequence", skillEffect.Sequence); command.Parameters.AddWithValue("@Description", skillEffect.Description); try { var result = await command.ExecuteNonQueryAsync(); success = result == 1; } catch (Exception exception) { Debug.WriteLine(exception); } } return(success ? (skillEffect.SkillID, skillEffect.Level, skillEffect.Sequence) : (0, (sbyte)0, (sbyte)0)); }