onSuccess method
Future<bool>
onSuccess(
- Data data, {
- int? code,
- String? message,
- Observable? onSuccessOverride,
override
Implementation
@override
Future<bool> onSuccess(Data data,
{int? code, String? message, Observable? onSuccessOverride}) async {
// set busy
busy = true;
// max records
int maxrecords = this.maxrecords ?? 10000;
if (maxrecords.isNegative) maxrecords = 0;
// apply data transforms
if (children != null) {
for (WidgetModel model in children!) {
if (model is ITransform) {
await (model as ITransform).apply(data);
}
}
}
// type - default is replace
ListTypes? type = toEnum(queuetype, ListTypes.values);
// Fifo - Oldest -> Newest
if (type == ListTypes.fifo) {
Data temp = Data();
if (this.data != null) {
for (var element in this.data!) {
temp.add(element);
}
}
for (var element in data) {
temp.add(element);
}
if (temp.length > maxrecords) {
temp.removeRange(0, temp.length - maxrecords);
}
data = temp;
}
// Lifo - Newest > Oldest
if (type == ListTypes.lifo) {
Data temp = Data();
for (var element in data) {
temp.add(element);
}
if (this.data != null) {
for (var element in this.data!) {
temp.add(element);
}
}
if (temp.length > maxrecords) {
temp.removeRange(temp.length - maxrecords - 1, temp.length);
}
data = temp;
}
// Append
if (type == ListTypes.append) {
Data temp = Data();
if (this.data != null) {
for (var element in this.data!) {
temp.add(element);
}
}
for (var element in data) {
temp.add(element);
}
data = temp;
}
// Prepend
if (type == ListTypes.prepend) {
Data temp = Data();
for (var element in data) {
temp.add(element);
}
if (this.data != null) {
for (var element in this.data!) {
temp.add(element);
}
}
data = temp;
}
// Truncate List
if (data.length > maxrecords) data.removeRange(maxrecords, data.length);
// Return Success
return await onData(data,
code: code, message: message, onSuccessOverride: onSuccessOverride);
}