/**
     * @param array[] $esbData
     * @return array
     * @throws Exception
     * @throws ezcLogWriterException
     */
    private static function mapESBDataToWS($esbData)
    {
        $postData = array(
            'data' => array(
                'Username'                  => $esbData['Data']['Username'],
                'Password'                  => $esbData['Data']['Password'],
                'Email_address'             => $esbData['Data']['Email_address'],
                'Firstname'                 => $esbData['Data']['Firstname'],
                'Lastname'                  => $esbData['Data']['Lastname'],
                'Customer_type'             => $esbData['Data']['Customer_type'],
                'Country_of_registration'   => $esbData['Data']['Country_of_registration'],
                'Language'                  => $esbData['Data']['Language'],
                'Params'                    => array(
                    'count'          => $esbData['Data']['Params']['count'],
                    'Address_Line_1' => $esbData['Data']['Params']['Address_Line_1'],
                    'Address_Line_2' => isset($esbData['Data']['Params']['Address_Line_2']) ? $esbData['Data']['Params']['Address_Line_2'] : "",
                    'License_number' => $esbData['Data']['Params']['License_number']
                ),
                'Secret_question'           => $esbData['Data']['Params']['Secret_question'],
                'Secret_answer'             => $esbData['Data']['Params']['Secret_answer'],
                'Salutation'                => $esbData['Data']['Params']['Salutation'],
                'Gender'                    => $esbData['Data']['Params']['Gender'],
                'Birth_date'                => $esbData['Data']['Params']["Birth_date"],
                'Postal_code'               => $esbData['Data']['Params']['Postal_Code'],
                'City'                      => $esbData['Data']['Params']['City'],
                'Phone_number'              => $esbData['Data']['Params']['Phone_number'],
                'Referral'                  => $esbData['Data']['Params']['Referral'],
                'Referral_specify'          => $esbData['Data']['Params']['Referral_specify'],
                'User_specialty'            => $esbData['Data']['User_specialty'],
                'Terms_of_use'              => $esbData['Data']['Params']['Terms_of_use'],
                'Privacy_policy'            => $esbData['Data']['Params']['Privacy_policy']
            )
        );

        if(isset($_POST['Uni__email_optin']))
        {
            $postData['data']['Uni__email_optin'] = $_POST['Uni__email_optin'];
        }

        if(isset($_POST['Msd__email_optin']))
        {
            $postData['data']['Uni__email_optin'] = $_POST['Msd__email_optin'];
        }

        if(isset($_POST['Automated_registration']))
        {
            $postData['data']['Automated_registration'] = $_POST['Automated_registration'];
        }

        $mapping = UserSpecialityContentSpeciality::getMapping();
        if(array_key_exists($postData['data']['User_specialty'], $mapping))
        {
            $postData['data']['Main_specialty'] = $mapping[$postData['data']['User_specialty']]['c_spe'];
        }

        self::instance()->logger->log(json_encode($postData), ezcLog::INFO);
        return $postData;
    }