Added canceling of the sub events for the removed event_group.
This commit is contained in:
parent
688110ce8d
commit
c4612cbed1
2 changed files with 21 additions and 0 deletions
|
|
@ -23,6 +23,7 @@
|
||||||
*/
|
*/
|
||||||
#include <graphene/chain/event_group_evaluator.hpp>
|
#include <graphene/chain/event_group_evaluator.hpp>
|
||||||
#include <graphene/chain/event_group_object.hpp>
|
#include <graphene/chain/event_group_object.hpp>
|
||||||
|
#include <graphene/chain/event_object.hpp>
|
||||||
#include <graphene/chain/account_object.hpp>
|
#include <graphene/chain/account_object.hpp>
|
||||||
#include <graphene/chain/database.hpp>
|
#include <graphene/chain/database.hpp>
|
||||||
#include <graphene/chain/exceptions.hpp>
|
#include <graphene/chain/exceptions.hpp>
|
||||||
|
|
@ -106,6 +107,17 @@ void_result event_group_delete_evaluator::do_evaluate(const event_group_delete_o
|
||||||
void_result event_group_delete_evaluator::do_apply(const event_group_delete_operation& op)
|
void_result event_group_delete_evaluator::do_apply(const event_group_delete_operation& op)
|
||||||
{ try {
|
{ try {
|
||||||
database& _db = db();
|
database& _db = db();
|
||||||
|
|
||||||
|
const auto& events_for_group = _db.get_index_type<event_object_index>().indices().get<by_event_group_id>();
|
||||||
|
auto event_it = events_for_group.lower_bound(op.event_group_id);
|
||||||
|
auto event_end_it = events_for_group.upper_bound(op.event_group_id);
|
||||||
|
for (; event_it != event_end_it; ++event_it)
|
||||||
|
{
|
||||||
|
_db.modify( *event_it, [&](event_object& event_obj) {
|
||||||
|
event_obj.dispatch_new_status(_db, event_status::canceled);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
_db.remove(_db.get(op.event_group_id));
|
_db.remove(_db.get(op.event_group_id));
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
|
||||||
|
|
@ -1590,9 +1590,18 @@ BOOST_AUTO_TEST_CASE(event_group_delete_test)
|
||||||
ACTORS( (alice)(bob) );
|
ACTORS( (alice)(bob) );
|
||||||
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
||||||
|
|
||||||
|
const auto& event_1 = create_event({{"en", "Washington Capitals/Chicago Blackhawks1"}}, {{"en", "2016-17"}}, nhl.id);
|
||||||
|
const auto& event_2 = create_event({{"en", "Washington Capitals/Chicago Blackhawks2"}}, {{"en", "2016-17"}}, nhl.id);
|
||||||
|
const auto& event_3 = create_event({{"en", "Washington Capitals/Chicago Blackhawks3"}}, {{"en", "2016-17"}}, nhl.id);
|
||||||
|
|
||||||
delete_event_group(nhl.id);
|
delete_event_group(nhl.id);
|
||||||
|
|
||||||
const auto& event_group_by_id = db.get_index_type<event_group_object_index>().indices().get<by_id>();
|
const auto& event_group_by_id = db.get_index_type<event_group_object_index>().indices().get<by_id>();
|
||||||
BOOST_CHECK(event_group_by_id.end() == event_group_by_id.find(nhl.id));
|
BOOST_CHECK(event_group_by_id.end() == event_group_by_id.find(nhl.id));
|
||||||
|
|
||||||
|
BOOST_CHECK(event_status::canceled == event_1.get_status());
|
||||||
|
BOOST_CHECK(event_status::canceled == event_2.get_status());
|
||||||
|
BOOST_CHECK(event_status::canceled == event_3.get_status());
|
||||||
} FC_LOG_AND_RETHROW()
|
} FC_LOG_AND_RETHROW()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue