private void ApplyThemeToAll(Session session, Packet packet)
        {
            uint   cityId;
            string itemId;
            bool   applyWall;

            try
            {
                cityId    = packet.GetUInt32();
                itemId    = packet.GetString();
                applyWall = packet.GetBoolean();
            }
            catch (Exception)
            {
                ReplyError(session, packet, Error.Unexpected);
                return;
            }

            locker.Lock(session.Player).Do(() =>
            {
                var city = session.Player.GetCity(cityId);
                if (city == null)
                {
                    ReplyError(session, packet, Error.CityNotFound);
                    return;
                }

                var result = themeManager.ApplyToAll(city, itemId, applyWall);

                ReplyWithResult(session, packet, result);
            });
        }