using System.Collections.Generic;
using gehGassi.Domain.Common;
namespace gehGassi.Core.Services
{
///
/// Schnittstellenbeschreibung für einen Service der den Umgang mit Ländern vereinfacht
///
public interface ICountryService
{
///
/// Gibt eine Liste aller Länder zurück
///
/// Liste
List GetCountries();
///
/// Gibt ein Land anhand des Codes zurück
///
/// ISO2
/// Land oder null, wenn nicht gefunden
Country GetCountry(string countryCode);
///
/// Gibt eine Liste von Bundesländern zurück
///
/// Liste von Bundesländern
List GetStates();
///
/// Gibt eine Liste von Bundesländern / Staaten eines Landes zurück
///
/// ISO2 des Landes
/// Liste von Bundesländern
List GetStates(string countryCode);
///
/// Gibt ein Bundesland / Staat eines Landes zurück
///
/// ISO2 des Landes
/// Code des Bundeslandes
/// Bundesland oder null, wenn nicht gefunden
State GetState(string countryCode, string stateCode);
///
/// Gibt eine Liste der Ländercodes zurück die zu einem Filter passen
///
/// Filter
/// Operator der angewendet werden soll
/// Liste gefundener Ländercodes
List FindCountryCodes(string filter, string operatorValue);
///
/// Gibt eine Liste der Bundesland-Codes zurück die zu einem Filter passen
///
/// Filter
/// Operator der angewendet werden soll
/// Liste gefundener Bundeslandcodes
List FindStateCodes(string filter, string operatorValue);
}
}