Exemple #1
0
        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));
        }