Ranking erweitert
This commit is contained in:
1 parent
32ec25af14
commit
91f641f998
6 files changed
+449
-327
No files matched your search
@@ -10,6 +10,7 @@ import 'package:stadtbote/popups/tasks_popups/zip_popup.dart';
|
||||
import 'package:stadtbote/protocoll_messages/zip_message.dart';
|
||||
import 'package:stadtbote/tools/constants.dart';
|
||||
import 'package:stadtbote/tools/message_service.dart';
|
||||
import 'package:stadtbote/tools/messages/ranking_updated.dart';
|
||||
import 'package:stadtbote/tools/mqtt_core.dart';
|
||||
|
||||
import '../tools/util.dart';
|
||||
@@ -40,7 +41,7 @@ class ApproachAreaPage extends ContentViewWidget {
|
||||
}
|
||||
|
||||
class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||
late List<Rank>? _ranking;
|
||||
late Ranking? _ranking;
|
||||
|
||||
late bool _initCompleted = false;
|
||||
|
||||
@@ -49,12 +50,10 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||
super.initState();
|
||||
|
||||
Future.delayed(const Duration(seconds: 0), () async {
|
||||
_ranking = await MyApp.isarInstance.ranks.where().findAll();
|
||||
_ranking = await MyApp.isarInstance.rankings.where().findFirst();
|
||||
|
||||
_initCompleted = true;
|
||||
|
||||
_sendZip(Rank(), "24893");
|
||||
|
||||
setState(() {});
|
||||
});
|
||||
|
||||
@@ -74,6 +73,8 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||
return Util.getWaitWidget(context);
|
||||
}
|
||||
|
||||
_fillColumns();
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: InteractiveViewer(
|
||||
@@ -93,8 +94,8 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||
List<Widget> columns = [];
|
||||
|
||||
if (_ranking != null) {
|
||||
for (int i = 0; i < _ranking!.length; i++) {
|
||||
var rank = _ranking![i];
|
||||
for (int i = 0; i < _ranking!.ranks.length; i++) {
|
||||
var rank = _ranking!.ranks[i];
|
||||
|
||||
List<Widget> entries = [];
|
||||
entries.add(
|
||||
@@ -196,10 +197,10 @@ class _ApproachAreaPageState extends State<ApproachAreaPage> {
|
||||
}
|
||||
|
||||
_initMessages() {
|
||||
/*MessageService().subscribe<RankingUpdated>(Constants.messageTopicRankingUpdated, this, (rankingUpdateMessage) async {
|
||||
MessageService().subscribe<RankingUpdated>(Constants.messageTopicRankingUpdated, this, (rankingUpdateMessage) async {
|
||||
_ranking = await MyApp.isarInstance.rankings.where().findFirst();
|
||||
|
||||
setState(() {});
|
||||
});*/
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -129,7 +129,7 @@ class _MessagesPageState extends State<MessagesPage> {
|
||||
author: message.from == _sid ? _user : _central,
|
||||
createdAt: DateTime.parse(message.time).toLocal().millisecondsSinceEpoch,
|
||||
id: message.id.toString(),
|
||||
text: message.text,
|
||||
text: message.subj + "\n" + message.text,
|
||||
));
|
||||
|
||||
_messages.sort((a, b) => b.createdAt! > a.createdAt! ? 1 : 0);
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ Future<void> main() async {
|
||||
MessageSchema,
|
||||
EnqueuedMessageSchema,
|
||||
LogEntrySchema,
|
||||
RankSchema
|
||||
RankingSchema
|
||||
], directory: dir.path);
|
||||
|
||||
runZonedGuarded(() {}, (error, stackTrace) {
|
||||
|
||||
+17
-3
@@ -5,15 +5,29 @@ part 'rank.g.dart';
|
||||
|
||||
@collection
|
||||
@JsonSerializable()
|
||||
class Ranking {
|
||||
@JsonValue(0)
|
||||
late Id? id = Isar.autoIncrement;
|
||||
|
||||
@JsonKey(name: "ranking")
|
||||
late List<Rank> ranks;
|
||||
|
||||
Ranking();
|
||||
|
||||
factory Ranking.fromJson(Map<String, dynamic> json) => _$RankingFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$RankingToJson(this);
|
||||
}
|
||||
|
||||
@embedded
|
||||
@JsonSerializable()
|
||||
class Rank {
|
||||
late Id id;
|
||||
late int id;
|
||||
|
||||
late String zip;
|
||||
|
||||
late String area;
|
||||
|
||||
late int time;
|
||||
|
||||
late List<Vehicle> vehicles;
|
||||
|
||||
Rank();
|
||||
|
||||
+413
-309
@@ -9,11 +9,402 @@ part of 'rank.dart';
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
|
||||
|
||||
extension GetRankCollection on Isar {
|
||||
IsarCollection<Rank> get ranks => this.collection();
|
||||
extension GetRankingCollection on Isar {
|
||||
IsarCollection<Ranking> get rankings => this.collection();
|
||||
}
|
||||
|
||||
const RankSchema = CollectionSchema(
|
||||
const RankingSchema = CollectionSchema(
|
||||
name: r'Ranking',
|
||||
id: 923686411839286896,
|
||||
properties: {
|
||||
r'ranks': PropertySchema(
|
||||
id: 0,
|
||||
name: r'ranks',
|
||||
type: IsarType.objectList,
|
||||
target: r'Rank',
|
||||
)
|
||||
},
|
||||
estimateSize: _rankingEstimateSize,
|
||||
serialize: _rankingSerialize,
|
||||
deserialize: _rankingDeserialize,
|
||||
deserializeProp: _rankingDeserializeProp,
|
||||
idName: r'id',
|
||||
indexes: {},
|
||||
links: {},
|
||||
embeddedSchemas: {r'Rank': RankSchema, r'Vehicle': VehicleSchema},
|
||||
getId: _rankingGetId,
|
||||
getLinks: _rankingGetLinks,
|
||||
attach: _rankingAttach,
|
||||
version: '3.1.0+1',
|
||||
);
|
||||
|
||||
int _rankingEstimateSize(
|
||||
Ranking object,
|
||||
List<int> offsets,
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
var bytesCount = offsets.last;
|
||||
bytesCount += 3 + object.ranks.length * 3;
|
||||
{
|
||||
final offsets = allOffsets[Rank]!;
|
||||
for (var i = 0; i < object.ranks.length; i++) {
|
||||
final value = object.ranks[i];
|
||||
bytesCount += RankSchema.estimateSize(value, offsets, allOffsets);
|
||||
}
|
||||
}
|
||||
return bytesCount;
|
||||
}
|
||||
|
||||
void _rankingSerialize(
|
||||
Ranking object,
|
||||
IsarWriter writer,
|
||||
List<int> offsets,
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
writer.writeObjectList<Rank>(
|
||||
offsets[0],
|
||||
allOffsets,
|
||||
RankSchema.serialize,
|
||||
object.ranks,
|
||||
);
|
||||
}
|
||||
|
||||
Ranking _rankingDeserialize(
|
||||
Id id,
|
||||
IsarReader reader,
|
||||
List<int> offsets,
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
final object = Ranking();
|
||||
object.id = id;
|
||||
object.ranks = reader.readObjectList<Rank>(
|
||||
offsets[0],
|
||||
RankSchema.deserialize,
|
||||
allOffsets,
|
||||
Rank(),
|
||||
) ??
|
||||
[];
|
||||
return object;
|
||||
}
|
||||
|
||||
P _rankingDeserializeProp<P>(
|
||||
IsarReader reader,
|
||||
int propertyId,
|
||||
int offset,
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
switch (propertyId) {
|
||||
case 0:
|
||||
return (reader.readObjectList<Rank>(
|
||||
offset,
|
||||
RankSchema.deserialize,
|
||||
allOffsets,
|
||||
Rank(),
|
||||
) ??
|
||||
[]) as P;
|
||||
default:
|
||||
throw IsarError('Unknown property with id $propertyId');
|
||||
}
|
||||
}
|
||||
|
||||
Id _rankingGetId(Ranking object) {
|
||||
return object.id ?? Isar.autoIncrement;
|
||||
}
|
||||
|
||||
List<IsarLinkBase<dynamic>> _rankingGetLinks(Ranking object) {
|
||||
return [];
|
||||
}
|
||||
|
||||
void _rankingAttach(IsarCollection<dynamic> col, Id id, Ranking object) {
|
||||
object.id = id;
|
||||
}
|
||||
|
||||
extension RankingQueryWhereSort on QueryBuilder<Ranking, Ranking, QWhere> {
|
||||
QueryBuilder<Ranking, Ranking, QAfterWhere> anyId() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(const IdWhereClause.any());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankingQueryWhere on QueryBuilder<Ranking, Ranking, QWhereClause> {
|
||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idEqualTo(Id id) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(IdWhereClause.between(
|
||||
lower: id,
|
||||
upper: id,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idNotEqualTo(Id id) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
if (query.whereSort == Sort.asc) {
|
||||
return query
|
||||
.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: false),
|
||||
)
|
||||
.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: false),
|
||||
);
|
||||
} else {
|
||||
return query
|
||||
.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: false),
|
||||
)
|
||||
.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: false),
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idGreaterThan(Id id,
|
||||
{bool include = false}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idLessThan(Id id,
|
||||
{bool include = false}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterWhereClause> idBetween(
|
||||
Id lowerId,
|
||||
Id upperId, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(IdWhereClause.between(
|
||||
lower: lowerId,
|
||||
includeLower: includeLower,
|
||||
upper: upperId,
|
||||
includeUpper: includeUpper,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankingQueryFilter
|
||||
on QueryBuilder<Ranking, Ranking, QFilterCondition> {
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idIsNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNull(
|
||||
property: r'id',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idIsNotNull() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(const FilterCondition.isNotNull(
|
||||
property: r'id',
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idEqualTo(Id? value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'id',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idGreaterThan(
|
||||
Id? value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||
include: include,
|
||||
property: r'id',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idLessThan(
|
||||
Id? value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.lessThan(
|
||||
include: include,
|
||||
property: r'id',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> idBetween(
|
||||
Id? lower,
|
||||
Id? upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.between(
|
||||
property: r'id',
|
||||
lower: lower,
|
||||
includeLower: includeLower,
|
||||
upper: upper,
|
||||
includeUpper: includeUpper,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthEqualTo(
|
||||
int length) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.listLength(
|
||||
r'ranks',
|
||||
length,
|
||||
true,
|
||||
length,
|
||||
true,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksIsEmpty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.listLength(
|
||||
r'ranks',
|
||||
0,
|
||||
true,
|
||||
0,
|
||||
true,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksIsNotEmpty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.listLength(
|
||||
r'ranks',
|
||||
0,
|
||||
false,
|
||||
999999,
|
||||
true,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthLessThan(
|
||||
int length, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.listLength(
|
||||
r'ranks',
|
||||
0,
|
||||
true,
|
||||
length,
|
||||
include,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthGreaterThan(
|
||||
int length, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.listLength(
|
||||
r'ranks',
|
||||
length,
|
||||
include,
|
||||
999999,
|
||||
true,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksLengthBetween(
|
||||
int lower,
|
||||
int upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.listLength(
|
||||
r'ranks',
|
||||
lower,
|
||||
includeLower,
|
||||
upper,
|
||||
includeUpper,
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankingQueryObject
|
||||
on QueryBuilder<Ranking, Ranking, QFilterCondition> {
|
||||
QueryBuilder<Ranking, Ranking, QAfterFilterCondition> ranksElement(
|
||||
FilterQuery<Rank> q) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.object(q, r'ranks');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankingQueryLinks
|
||||
on QueryBuilder<Ranking, Ranking, QFilterCondition> {}
|
||||
|
||||
extension RankingQuerySortBy on QueryBuilder<Ranking, Ranking, QSortBy> {}
|
||||
|
||||
extension RankingQuerySortThenBy
|
||||
on QueryBuilder<Ranking, Ranking, QSortThenBy> {
|
||||
QueryBuilder<Ranking, Ranking, QAfterSortBy> thenById() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'id', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, Ranking, QAfterSortBy> thenByIdDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'id', Sort.desc);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankingQueryWhereDistinct
|
||||
on QueryBuilder<Ranking, Ranking, QDistinct> {}
|
||||
|
||||
extension RankingQueryProperty
|
||||
on QueryBuilder<Ranking, Ranking, QQueryProperty> {
|
||||
QueryBuilder<Ranking, int, QQueryOperations> idProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'id');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Ranking, List<Rank>, QQueryOperations> ranksProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'ranks');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// IsarEmbeddedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
|
||||
|
||||
const RankSchema = Schema(
|
||||
name: r'Rank',
|
||||
id: 4990427334210593033,
|
||||
properties: {
|
||||
@@ -22,9 +413,9 @@ const RankSchema = CollectionSchema(
|
||||
name: r'area',
|
||||
type: IsarType.string,
|
||||
),
|
||||
r'time': PropertySchema(
|
||||
r'id': PropertySchema(
|
||||
id: 1,
|
||||
name: r'time',
|
||||
name: r'id',
|
||||
type: IsarType.long,
|
||||
),
|
||||
r'vehicles': PropertySchema(
|
||||
@@ -43,14 +434,6 @@ const RankSchema = CollectionSchema(
|
||||
serialize: _rankSerialize,
|
||||
deserialize: _rankDeserialize,
|
||||
deserializeProp: _rankDeserializeProp,
|
||||
idName: r'id',
|
||||
indexes: {},
|
||||
links: {},
|
||||
embeddedSchemas: {r'Vehicle': VehicleSchema},
|
||||
getId: _rankGetId,
|
||||
getLinks: _rankGetLinks,
|
||||
attach: _rankAttach,
|
||||
version: '3.1.0+1',
|
||||
);
|
||||
|
||||
int _rankEstimateSize(
|
||||
@@ -79,7 +462,7 @@ void _rankSerialize(
|
||||
Map<Type, List<int>> allOffsets,
|
||||
) {
|
||||
writer.writeString(offsets[0], object.area);
|
||||
writer.writeLong(offsets[1], object.time);
|
||||
writer.writeLong(offsets[1], object.id);
|
||||
writer.writeObjectList<Vehicle>(
|
||||
offsets[2],
|
||||
allOffsets,
|
||||
@@ -97,8 +480,7 @@ Rank _rankDeserialize(
|
||||
) {
|
||||
final object = Rank();
|
||||
object.area = reader.readString(offsets[0]);
|
||||
object.id = id;
|
||||
object.time = reader.readLong(offsets[1]);
|
||||
object.id = reader.readLong(offsets[1]);
|
||||
object.vehicles = reader.readObjectList<Vehicle>(
|
||||
offsets[2],
|
||||
VehicleSchema.deserialize,
|
||||
@@ -136,93 +518,6 @@ P _rankDeserializeProp<P>(
|
||||
}
|
||||
}
|
||||
|
||||
Id _rankGetId(Rank object) {
|
||||
return object.id;
|
||||
}
|
||||
|
||||
List<IsarLinkBase<dynamic>> _rankGetLinks(Rank object) {
|
||||
return [];
|
||||
}
|
||||
|
||||
void _rankAttach(IsarCollection<dynamic> col, Id id, Rank object) {
|
||||
object.id = id;
|
||||
}
|
||||
|
||||
extension RankQueryWhereSort on QueryBuilder<Rank, Rank, QWhere> {
|
||||
QueryBuilder<Rank, Rank, QAfterWhere> anyId() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(const IdWhereClause.any());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankQueryWhere on QueryBuilder<Rank, Rank, QWhereClause> {
|
||||
QueryBuilder<Rank, Rank, QAfterWhereClause> idEqualTo(Id id) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(IdWhereClause.between(
|
||||
lower: id,
|
||||
upper: id,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterWhereClause> idNotEqualTo(Id id) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
if (query.whereSort == Sort.asc) {
|
||||
return query
|
||||
.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: false),
|
||||
)
|
||||
.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: false),
|
||||
);
|
||||
} else {
|
||||
return query
|
||||
.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: false),
|
||||
)
|
||||
.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: false),
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterWhereClause> idGreaterThan(Id id,
|
||||
{bool include = false}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(
|
||||
IdWhereClause.greaterThan(lower: id, includeLower: include),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterWhereClause> idLessThan(Id id,
|
||||
{bool include = false}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(
|
||||
IdWhereClause.lessThan(upper: id, includeUpper: include),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterWhereClause> idBetween(
|
||||
Id lowerId,
|
||||
Id upperId, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addWhereClause(IdWhereClause.between(
|
||||
lower: lowerId,
|
||||
includeLower: includeLower,
|
||||
upper: upperId,
|
||||
includeUpper: includeUpper,
|
||||
));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> areaEqualTo(
|
||||
String value, {
|
||||
@@ -352,7 +647,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idEqualTo(Id value) {
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idEqualTo(int value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'id',
|
||||
@@ -362,7 +657,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idGreaterThan(
|
||||
Id value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -375,7 +670,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idLessThan(
|
||||
Id value, {
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
@@ -388,58 +683,6 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> idBetween(
|
||||
Id lower,
|
||||
Id upper, {
|
||||
bool includeLower = true,
|
||||
bool includeUpper = true,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.between(
|
||||
property: r'id',
|
||||
lower: lower,
|
||||
includeLower: includeLower,
|
||||
upper: upper,
|
||||
includeUpper: includeUpper,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeEqualTo(int value) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.equalTo(
|
||||
property: r'time',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeGreaterThan(
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.greaterThan(
|
||||
include: include,
|
||||
property: r'time',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeLessThan(
|
||||
int value, {
|
||||
bool include = false,
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.lessThan(
|
||||
include: include,
|
||||
property: r'time',
|
||||
value: value,
|
||||
));
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterFilterCondition> timeBetween(
|
||||
int lower,
|
||||
int upper, {
|
||||
bool includeLower = true,
|
||||
@@ -447,7 +690,7 @@ extension RankQueryFilter on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||
}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addFilterCondition(FilterCondition.between(
|
||||
property: r'time',
|
||||
property: r'id',
|
||||
lower: lower,
|
||||
includeLower: includeLower,
|
||||
upper: upper,
|
||||
@@ -678,154 +921,6 @@ extension RankQueryObject on QueryBuilder<Rank, Rank, QFilterCondition> {
|
||||
}
|
||||
}
|
||||
|
||||
extension RankQueryLinks on QueryBuilder<Rank, Rank, QFilterCondition> {}
|
||||
|
||||
extension RankQuerySortBy on QueryBuilder<Rank, Rank, QSortBy> {
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> sortByArea() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'area', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> sortByAreaDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'area', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> sortByTime() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'time', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> sortByTimeDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'time', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> sortByZip() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'zip', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> sortByZipDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'zip', Sort.desc);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankQuerySortThenBy on QueryBuilder<Rank, Rank, QSortThenBy> {
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenByArea() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'area', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenByAreaDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'area', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenById() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'id', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenByIdDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'id', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenByTime() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'time', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenByTimeDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'time', Sort.desc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenByZip() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'zip', Sort.asc);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QAfterSortBy> thenByZipDesc() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addSortBy(r'zip', Sort.desc);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankQueryWhereDistinct on QueryBuilder<Rank, Rank, QDistinct> {
|
||||
QueryBuilder<Rank, Rank, QDistinct> distinctByArea(
|
||||
{bool caseSensitive = true}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'area', caseSensitive: caseSensitive);
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QDistinct> distinctByTime() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'time');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, Rank, QDistinct> distinctByZip(
|
||||
{bool caseSensitive = true}) {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addDistinctBy(r'zip', caseSensitive: caseSensitive);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
extension RankQueryProperty on QueryBuilder<Rank, Rank, QQueryProperty> {
|
||||
QueryBuilder<Rank, int, QQueryOperations> idProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'id');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, String, QQueryOperations> areaProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'area');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, int, QQueryOperations> timeProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'time');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, List<Vehicle>, QQueryOperations> vehiclesProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'vehicles');
|
||||
});
|
||||
}
|
||||
|
||||
QueryBuilder<Rank, String, QQueryOperations> zipProperty() {
|
||||
return QueryBuilder.apply(this, (query) {
|
||||
return query.addPropertyName(r'zip');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// **************************************************************************
|
||||
// IsarEmbeddedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: duplicate_ignore, non_constant_identifier_names, constant_identifier_names, invalid_use_of_protected_member, unnecessary_cast, prefer_const_constructors, lines_longer_than_80_chars, require_trailing_commas, inference_failure_on_function_invocation, unnecessary_parenthesis, unnecessary_raw_strings, unnecessary_null_checks, join_return_with_assignment, prefer_final_locals, avoid_js_rounded_ints, avoid_positional_boolean_parameters, always_specify_types
|
||||
|
||||
@@ -1046,11 +1141,21 @@ extension VehicleQueryObject
|
||||
// JsonSerializableGenerator
|
||||
// **************************************************************************
|
||||
|
||||
Ranking _$RankingFromJson(Map<String, dynamic> json) => Ranking()
|
||||
..id = json['id'] as int?
|
||||
..ranks = (json['ranking'] as List<dynamic>)
|
||||
.map((e) => Rank.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
|
||||
Map<String, dynamic> _$RankingToJson(Ranking instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'ranking': instance.ranks,
|
||||
};
|
||||
|
||||
Rank _$RankFromJson(Map<String, dynamic> json) => Rank()
|
||||
..id = json['id'] as int
|
||||
..zip = json['zip'] as String
|
||||
..area = json['area'] as String
|
||||
..time = json['time'] as int
|
||||
..vehicles = (json['vehicles'] as List<dynamic>)
|
||||
.map((e) => Vehicle.fromJson(e as Map<String, dynamic>))
|
||||
.toList();
|
||||
@@ -1059,7 +1164,6 @@ Map<String, dynamic> _$RankToJson(Rank instance) => <String, dynamic>{
|
||||
'id': instance.id,
|
||||
'zip': instance.zip,
|
||||
'area': instance.area,
|
||||
'time': instance.time,
|
||||
'vehicles': instance.vehicles,
|
||||
};
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import 'package:stadtbote/model/job.dart';
|
||||
import 'package:stadtbote/model/log_entry.dart';
|
||||
import 'package:stadtbote/model/message.dart';
|
||||
import 'package:stadtbote/model/location_status.dart';
|
||||
import 'package:stadtbote/model/rank.dart';
|
||||
import 'package:stadtbote/protocoll_messages/acknowledge_job.dart';
|
||||
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
|
||||
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
||||
@@ -27,6 +28,7 @@ import 'package:stadtbote/tools/message_service.dart';
|
||||
import 'package:stadtbote/tools/messages/job_deleted_message.dart';
|
||||
import 'package:stadtbote/tools/messages/job_received_message.dart';
|
||||
import 'package:stadtbote/tools/messages/message_message.dart';
|
||||
import 'package:stadtbote/tools/messages/ranking_updated.dart';
|
||||
import 'package:stadtbote/tools/messages/session_info_update.dart';
|
||||
import 'package:stadtbote/tools/messages/status_info_update.dart';
|
||||
// ignore: depend_on_referenced_packages
|
||||
@@ -246,16 +248,15 @@ class MqttCore {
|
||||
MessageService().publish<LocationStatusUpdate>(Constants.messageTopicLocationStatusUpdated, arguments: LocationStatusUpdate(status: locationStatus));
|
||||
}
|
||||
|
||||
void _rankingMessageReceived(List<dynamic> payloadData) async {
|
||||
/*Map<String, dynamic> rankingMap = {};
|
||||
rankingMap["ranks"] = payloadData;
|
||||
var ranking = Ranking.fromJson(rankingMap);
|
||||
void _rankingMessageReceived(payloadData) async {
|
||||
var ranking = Ranking.fromJson(payloadData);
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.rankings.clear();
|
||||
await MyApp.isarInstance.rankings.put(ranking);
|
||||
});
|
||||
|
||||
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());*/
|
||||
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());
|
||||
}
|
||||
|
||||
void _jobMessageReceived(payloadData) async {
|
||||
@@ -405,6 +406,8 @@ class MqttCore {
|
||||
|
||||
_connectToBroker();
|
||||
} catch (ex) {
|
||||
Util.logException("bootstrap failed");
|
||||
|
||||
_startBootstrapReconnectTimer();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user