Implement tender workflows and dashboard integration
continuous-integration/drone/push Build encountered an error
continuous-integration/drone/push Build encountered an error
This commit is contained in:
@@ -4,6 +4,8 @@ import 'package:tm_app/data/services/model/recommended_tenders_response/recommen
|
||||
import 'package:tm_app/data/services/model/tender_approvals_response/tender_approvals_response.dart';
|
||||
import 'package:tm_app/data/services/model/tender_approvals_stats_response/tender_approvals_stats_response.dart';
|
||||
import 'package:tm_app/data/services/model/tender_data/tender_data.dart';
|
||||
import 'package:tm_app/data/services/model/feedback_stats_response/feedback_stat_response.dart';
|
||||
import 'package:tm_app/data/services/model/tender_submission/tender_submission.dart';
|
||||
|
||||
import '../data/repositories/home_repository.dart';
|
||||
import '../data/services/model/home/home_response/home_response_model.dart';
|
||||
@@ -44,6 +46,7 @@ class HomeViewModel with ChangeNotifier {
|
||||
|
||||
RecommendedTendersResponse? _recommendedTendersResponse;
|
||||
TenderApprovalsStatsResponse? tenderApprovalsStateResponse;
|
||||
TenderSubmissionStats? tenderSubmissionStats;
|
||||
int userLikedTendersCount = 0;
|
||||
final List<TenderData> _tenders = [];
|
||||
final int _pageSize = 10;
|
||||
@@ -71,11 +74,15 @@ class HomeViewModel with ChangeNotifier {
|
||||
_isRecommendedMode = false;
|
||||
data = null;
|
||||
tenderApprovalsStateResponse = null;
|
||||
tenderSubmissionStats = null;
|
||||
notifyListeners();
|
||||
|
||||
await getApprovedStates();
|
||||
await getYourTenders(reset: true);
|
||||
await loadUserLikedTendersCount();
|
||||
await Future.wait([
|
||||
getApprovedStates(),
|
||||
getYourTenders(reset: true),
|
||||
loadUserLikedTendersCount(),
|
||||
loadSubmissionStats(),
|
||||
]);
|
||||
|
||||
if (_errorMessage != null) {
|
||||
_isLoading = false;
|
||||
@@ -199,19 +206,38 @@ class HomeViewModel with ChangeNotifier {
|
||||
}
|
||||
|
||||
Future<void> loadUserLikedTendersCount() async {
|
||||
final result = await _homeRepository.getUserLikedTendersCount();
|
||||
final result = await _homeRepository.getCustomerFeedbackStats();
|
||||
|
||||
switch (result) {
|
||||
case Ok<int>():
|
||||
userLikedTendersCount = result.value;
|
||||
case Ok<FeedbackStatResponse>():
|
||||
userLikedTendersCount = result.value.data?.totalLikes ?? 0;
|
||||
break;
|
||||
case Error<int>():
|
||||
case Error<FeedbackStatResponse>():
|
||||
userLikedTendersCount = 0;
|
||||
break;
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> loadSubmissionStats() async {
|
||||
final result = await _homeRepository.getSubmissionStats();
|
||||
switch (result) {
|
||||
case Ok<TenderSubmissionStatsResponse>():
|
||||
tenderSubmissionStats = result.value.data;
|
||||
break;
|
||||
case Error<TenderSubmissionStatsResponse>():
|
||||
tenderSubmissionStats = null;
|
||||
break;
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
int get approvedTendersCount =>
|
||||
tenderApprovalsStateResponse?.data?.submittedTenders ?? 0;
|
||||
|
||||
int get submittedTendersCount =>
|
||||
tenderSubmissionStats?.byStage['submitted'] ?? 0;
|
||||
|
||||
double get partnershipCount {
|
||||
return tenderApprovalsStateResponse?.data?.partnershipCount?.toDouble() ??
|
||||
0.0;
|
||||
|
||||
Reference in New Issue
Block a user