/**
* @file MAccountBalance.cpp
* @brief Get details about a MEGA balance.
*
* (c) 2013-2014 by Mega Limited, Auckland, New Zealand
*
* This file is part of the MEGA SDK - Client Access Engine.
*
* Applications using the MEGA API must present a valid application key
* and comply with the the rules set forth in the Terms of Service.
*
* The MEGA SDK is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright Simplified (2-clause) BSD License.
*
* You should have received a copy of the license along with this
* program.
*/

#include "MAccountBalance.h"

using namespace mega;
using namespace Platform;

MAccountBalance::MAccountBalance(MegaAccountBalance *accountBalance, bool cMemoryOwn)
{
    this->accountBalance = accountBalance;
    this->cMemoryOwn;
}

MAccountBalance::~MAccountBalance()
{
    if (cMemoryOwn)
        delete accountBalance;
}

MegaAccountBalance* MAccountBalance::getCPtr()
{
    return accountBalance;
}

double MAccountBalance::getAmount()
{
    return accountBalance ? accountBalance->getAmount() : 0;
}

String^ MAccountBalance::getCurrency()
{
    if (!accountBalance) return nullptr;

    std::string utf16currency;
    const char *utf8currency = accountBalance->getCurrency();
    if (!utf8currency)
        return nullptr;

    MegaApi::utf8ToUtf16(utf8currency, &utf16currency);
    delete[] utf8currency;

    return ref new String((wchar_t *)utf16currency.data());
}
