Я унаследовал работу по ведению небольшой битвы.
Игра работает, но когда пользователь нажимает кнопку «Конец» в браузере, игра никогда не сохраняется в базе данных.
Этот метод вызывается после получения запроса «HttpPut» через API:
protected override TroopMappingSession UpdateGameModel(TroopMappingSession g, TroopMappingSessionDto dto)
{
var retval = base.UpdateGameModel(g, dto);
if (dto.IsActiveBattle != null && dto.IsActiveBattle == false) {
GameService.SaveToDatabase(g);
}
return retval;
}
«dto» представляет TroopMappingSessionDto, который является объектом передачи данных.
«g»представляет модель класса TroopMappingSession.
«retval» представляет обновленную модель класса TroopMappingSession.
В таком виде dto.IsActiveBattle всегда имеет значение «true» и GameService.End() никогда не вызывался.
Если я изменил dto.IsActiveBattle == false на retval.IsActiveBattle == false , затем вызывается.
Мой вопрос: имеет ли смысл проверять как dto.IsActiveBattle, так и retval.IsActiveBattle?
Я не уверен, почему первоначальный разработчикпроверял оба dto.IsActiveBattle! =null и dto.IsActiveBattle == false.
Спасибо!