using System; using System.Diagnostics.CodeAnalysis; using JetBrains.Annotations; using SDA.DataProvider.Core; namespace SDA.DataProvider { /// /// Adatbázis-parancs paramétereinek listája. /// [SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix")] public class SDACommandParameterCollection { internal SDACommandWrapper Command; protected SDACommandParameterCollection() { } internal SDACommandParameterCollection(SDACommandWrapper command) { Command = command; } internal virtual SDACommandParameterCollectionWrapper Parameters { get { return Command.Parameters; } } /// /// Visszaadja a megadott nevű paraméter objektumot. /// [CanBeNull] public virtual SDACommandParameter this[string index] { get { SDACommandParameterWrapper parameter = Parameters[index]; return parameter != null ? new SDACommandParameter(parameter) : null; } } /// /// Visszaadja a megadott sorszámú paraméter objektumot. /// [NotNull] public SDACommandParameter this[int index] { get { return new SDACommandParameter(Parameters[index]); } set { if (value == null) { throw new ArgumentNullException(nameof(value)); } Parameters[index] = value.Parameter; } } /// /// Új paramétert vesz fel a listába. /// /// A listába felveendő paraméter objektum /// A listába felvett paraméter objektum [NotNull] public virtual SDACommandParameter Add(SDACommandParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } Command.Parameters.Add(parameter.Parameter); return parameter; } /// /// Új paramétert vesz fel a listába. /// /// A paraméter neve /// A paraméter típusa /// A listába felvett paraméter objektum [NotNull] public virtual SDACommandParameter Add(string name, SDADBType type) { return new SDACommandParameter(Command.Parameters.Add(name, type)); } /// /// Új paramétert vesz fel a listába. /// /// A paraméter neve /// A paraméter típusa /// A paraméterhez tartozó oszlop mérete /// A listába felvett paraméter objektum [NotNull] public virtual SDACommandParameter Add(string name, SDADBType type, int size) { return new SDACommandParameter(Command.Parameters.Add(name, type, size)); } /// /// Új paramétert vesz fel a listába. /// /// A paraméter neve /// A paraméter értéke /// A listába felvett paraméter objektum [NotNull] public virtual SDACommandParameter Add(string name, object value) { return new SDACommandParameter(Command.Parameters.Add(name, value)); } /// /// Eltávolítja a megadott paramétert a listából. /// /// Az eltávolítandó paraméter public virtual void Remove(SDACommandParameter parameter) { if (parameter == null) { throw new ArgumentNullException(nameof(parameter)); } Command.Parameters.Remove(parameter.Parameter); } /// /// Kiüríti a paraméterlistát. /// public virtual void Clear() { Command.Parameters.Clear(); } /// /// Command paraméterek száma /// /// public virtual int Count() { return Parameters.Count; } } }