Abonnentengruppen auslesen – GetProfiles

RequestParameter: ProfilesRequest
ResponseParameter: ProfilesResponse

Abonnentengruppe beschreiben Gruppen von Abonnenten, welche entweder durch Kriterien definiert sind (dynamische Abonnentengruppen) – z.B.: alle Abonnenten, welche eine E-Mail-Adresse besitzen mit @eworx.at - oder eine statische Liste von Abonnenten (statische Abonnentengruppe).
Beim Exportieren von Abonnenten können verschiedene Abonnenten exportiert werden, welche einer bestimmten Abonnentengruppe entsprechen. Des Weiteren ist es möglich, dass beim Import von Abonnenten die Abonnenten in eine bestimmte statische Abonnentengruppe hinzugefügt werden. Für diese Anwendungsfälle ist es notwendig, den Methoden die entsprechenden Abonnentengruppen zur Verfügung zu stellen.

Die Web-Service Methode GetProfiles ermöglicht neben dem Auslesen von allen, allen statischen oder allen dynamischen Abonnentengruppen auch das auslesen von Informationen für eine bestimmte Abonnentengruppe. (siehe Beispielcode)

In mailworx existieren Systemgruppen, welche nicht vom Benutzer bearbeitet werden können. Der Wert der Eigenschaft IsSystemProfile ist bei Systemgruppen auf true gesetzt.

ProfilesRequest request = new ProfilesRequest();
	//Set the Security Context for the request - GetSecurityContext Method should be already implemented
	request.SecurityContext = GetSecurityContext();
        
    // Set profile guid empty to get all profiles of account!
    request.ProfileGuid = Guid.Empty;
	//Get all available profiles - dynamic and static profiles
	request.Type = ProfileType.Dynamic | ProfileType.Static;

	MailworxWebServiceAgent agent = new MailworxWebServiceAgent();
	agent.Timeout = 3600000; //Set timeout to 1 hour- should be enough :-)

	ProfilesResponse response = agent.GetProfiles(request);

	if (response.Profiles != null && response.Profiles.Length > 0) {
		foreach (Profile p in response.Profiles) {
			Console.WriteLine("Profile Information");
			Console.WriteLine("Name:\t\t" + p.Name);

			Console.WriteLine("Description:\t" + p.Description);
			Console.WriteLine("ProfileType:\t" + p.Type.ToString());
			Console.WriteLine("IsSystemProfile:\t" + p.IsSystemProfile.ToString());
			Console.WriteLine("Profile-ID\t:" + p.Guid.ToString());
			Console.WriteLine("======================");
		}
	}

	//Check if a profile exists - or read a single profile would look like this:
	request.ProfileGuid = Guid.Empty; //TODO:Initialize with correct id here.
	ProfilesResponse response = agent.GetProfiles(request);
	Console.WriteLine("Profile '{0}' exists in mailworx: {1}",
	request.ProfileGuid.ToString(), 
	(response.Profiles != null && response.Profiles.Length > 0));

Für das Auslesen von Abonnentengruppen stehen also folgende Klassen zur Verfügung:

ProfilesRequest zur Definition, welche Abonnentengruppen ausgelesen werden sollen. Da Abonnentengruppen in mailworx sprachunabhängig sind, wird die Language Eigenschaft von der SecureRequest-Message Klasse ignoriert.
ProfilesResponse beinhaltet ein Array von Abonnentengruppen, welche den in ProfilesRequest beschriebenen Kriterien entsprechen.
Profile ist die Klasse, welche eine Abonnentengruppe in mailworx abbildet.