Example #1
0
bool RevertQuery::CheckRevert()
{
    if (this->UsingSR)
    {
        return ProcessRevert();
    }
    if (this->qRevert == nullptr || !this->qRevert->IsProcessed())
        return false;
    this->CustomStatus = RevertQuery::GetCustomRevertStatus(this->qRevert->Result->Data);
    if (this->CustomStatus != "Reverted")
    {
        Huggle::Syslog::HuggleLogs->Log(_l("revert-fail", this->qRevert->Target, this->CustomStatus));
        this->qRevert->Result->Failed = true;
        this->qRevert->Result->ErrorMessage = CustomStatus;
        this->Result = new QueryResult();
        this->Result->ErrorMessage = CustomStatus;
        this->Result->Failed = true;
    } else
    {
        HistoryItem *item = new HistoryItem();
        item->IncRef();
        this->HI = item;
        this->Result = new QueryResult();
        this->Result->Data = this->qRevert->Result->Data;
        item->Target = this->qRevert->Target;
        item->Type = HistoryRollback;
        item->Result = "Success";
        if (Core::HuggleCore->Main != nullptr)
            Core::HuggleCore->Main->_History->Prepend(item);
    }
    this->qRevert->UnregisterConsumer(HUGGLECONSUMER_REVERTQUERY);
    this->qRevert = nullptr;
    return true;
}