/// <summary>
        /// Führt den Befehl zum Hinzufügen einer Abstimmungsoption zur Abstimmung aus.
        /// </summary>
        private void executeAddOptionTextCommand()
        {
            string optionText = EnteredOptionText;
            if (optionText != null)
                optionText = optionText.Trim();

            // Erstelle Option Objekt aus eingegebenem Text.
            Option tmp = new Option()
            {
                Text = optionText
            };

            // Führe Validierung direkt hier im ViewModel aus (Nicht wie sonst im Controller).
            RemoveFailureMessagesForProperty("Text");
            tmp.ClearValidationErrors();
            tmp.ValidateTextProperty();
            if (!tmp.HasValidationErrors())
            {
                // Füge die Option der Liste hinzu und setze Eingabefeld zurück.
                BallotOptionsCollection.Add(tmp);
                EnteredOptionText = "";

                checkCommandExecution();
            }
            else
            {
                // Setze Validierungsfehler.
                ReportValidationError("Text", tmp.GetValidationErrors()["Text"]);
            }
        }
        /// <summary>
        /// Sendet einen Request zum Anlegen einer neuen Abstimmungsoption an den Server.
        /// </summary>
        /// <param name="groupId">Die Id der Gruppe zu der die Abstimmung gehört.</param>
        /// <param name="ballotId">Die Id der Abstimmung für die eine neue Option angelegt werden soll.</param>
        /// <param name="newOption">Das Objekt vom Typ Option mit den Daten der neuen Abstimmungsoption.</param>
        /// <returns>Liefert true, wenn die Abstimmungsoption erfolgreich angelegt werden konnte. Liefert false, 
        ///     wenn die Abstimmungsoption nicht angelegt werden konnte, da z.B. die Validierung der Daten fehlgeschlagen ist.</returns>
        /// <exception cref="ClientException">Wirft ClientException, wenn Erzeugung der Abstimmungsoption fehlschlägt, 
        ///     oder vom Server abgelehnt wird.</exception>
        public async Task<bool> CreateBallotOptionAsync(int groupId, int ballotId, Option newOption)
        {
            bool successful = false;

            if (newOption == null)
                return successful;

            // Führe Validierung der Abstimmungsoptionsdaten durch. Abbruch bei Validierungsfehler.
            clearValidationErrors();
            newOption.ClearValidationErrors();
            newOption.ValidateAll();
            if (newOption.HasValidationErrors())
            {
                reportValidationErrors(newOption.GetValidationErrors());
                return successful;
            }

            // Generiere JSON-Dokument.
            string jsonContent = jsonParser.ParseOptionToJson(newOption);
            if (jsonContent == null)
            {
                Debug.WriteLine("CreateBallotOptionAsync: Failed to serialize option to json. Cannot continue.");
                throw new ClientException(ErrorCodes.JsonParserError, "Failed to create json document.");
            }

            // Setze Request zum Anlegen der Option ab.
            string serverResponse = null;
            try
            {
                serverResponse = await groupAPI.SendCreateOptionRequest(
                    getLocalUser().ServerAccessToken,
                    groupId,
                    ballotId,
                    jsonContent);

                successful = true;
            }
            catch (APIException ex)
            {
                Debug.WriteLine("CreateBallotOptionAsync: Request failed. Error code is: {0}, ResponseCode: {1}.",
                    ex.ErrorCode, ex.ResponseStatusCode);
                handleGroupRelatedErrors(ex.ErrorCode, groupId, null, ballotId);

                throw new ClientException(ex.ErrorCode, ex.Message);
            }

            if (serverResponse != null)
            {
                // Parse Server Antwort.
                Option serverOption = jsonParser.ParseOptionFromJson(serverResponse);
                if (serverOption != null)
                {
                    // Speichere Option lokal.
                    if (!StoreOption(ballotId, serverOption, false))
                    {
                        throw new ClientException(ErrorCodes.LocalDatabaseException, 
                            "CreateBallotOptionAsync: Failed to store option with id {0}." + serverOption.Id);
                    }
                }
                else
                {
                    throw new ClientException(ErrorCodes.JsonParserError, "Failed to parse server response.");
                }
            }

            return successful;
        }