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;
}
}
}