applySorting function

List<Proposal> applySorting(
  1. List<Proposal> proposalList,
  2. String sort
)

Implementation

List<Proposal> applySorting(List<Proposal> proposalList, String sort) {
  List<Proposal> sortedList = List.from(proposalList);

  switch (sort) {
    case 'VOTES':
      sortedList.sort((a, b) => b.totalVotes.compareTo(a.totalVotes));
      break;
    case 'DAILY PAY':
      sortedList.sort((a, b) {
        double aDailyPay = double.parse(a.dailyPay.amount) / 1000;
        double bDailyPay = double.parse(b.dailyPay.amount) / 1000;
        return bDailyPay.compareTo(aDailyPay);
      });
      break;
    case 'END DATE':
      sortedList.sort((a, b) {
        DateTime aEndDate = DateTime.parse(a.endDate);
        DateTime bEndDate = DateTime.parse(b.endDate);
        return aEndDate.compareTo(bEndDate);
      });
      break;
  }

  return sortedList;
}