Example #1
0
std::string InventoryReport::Generate() {
    ClassificationService classificationService;

    vector<Record> records;

    vector<Holding>* holdings = Catalog::Holdings();
    for (vector<Holding>::iterator it = holdings->begin();
        it != holdings->end();
        it++)
    {
        Holding holding = *it;
        Book book = classificationService.RetrieveDetails(holding.Classification());
        if (book.Type() == Book::TYPE_BOOK)
        {
            Record record(book, holding.CurrentBranch().Name(), mIsbnApi);
            records.push_back(record);
        }
    }


    sort(records.begin(), records.end());

    stringstream buffer;
    AppendHeader(buffer);
    AppendColumnHeaders(buffer);
    for (vector<Record>::iterator it = records.begin(); it != records.end();it++)
         Append(buffer, *it);
    AppendFooter(buffer);
    return buffer.str();
}