You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.0 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // ResendPresenter.swift
  3. // GME Remit
  4. //
  5. // Created by gme_2 on 18/03/2019.
  6. //Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. class ResendPresenter {
  10. // MARK: Properties
  11. var transactions: [ResendTransactionModel] = []
  12. var filteredTransaction: [ResendTransactionModel] = []
  13. weak var view: ResendViewInterface?
  14. var interactor: ResendInteractorInput?
  15. var wireframe: ResendWireframeInput?
  16. // MARK: Converting entities
  17. }
  18. // MARK: Resend module interface
  19. extension ResendPresenter: ResendModuleInterface {
  20. func fetchList(fromDate: String, toDate: String) {
  21. self.interactor?.fetchList(fromDate: fromDate, toDate: toDate)
  22. }
  23. func viewIsReady() {
  24. self.view?.showLoading()
  25. self.interactor?.fetchList(fromDate: nil, toDate: nil)
  26. }
  27. func filter(searchText: String) {
  28. if searchText.isEmpty {
  29. self.filteredTransaction = self.transactions
  30. return
  31. }
  32. self.filteredTransaction = self.transactions.filter({
  33. return ($0.controlNumber ?? "").lowercased().contains(searchText) || ($0.bankName ?? "").lowercased().contains(searchText) || ($0.recieverName ?? "").lowercased().contains(searchText)
  34. }).sorted(by: { (model, _) in
  35. return (model.controlNumber ?? "").lowercased().hasPrefix(searchText) || (model.recieverName ?? "").lowercased().hasPrefix(searchText) || (model.bankName ?? "").lowercased().hasPrefix(searchText)
  36. })
  37. self.view?.show(models: filteredTransaction)
  38. }
  39. }
  40. // MARK: Resend interactor output interface
  41. extension ResendPresenter: ResendInteractorOutput {
  42. func show(error: Error) {
  43. self.view?.hideLoading()
  44. self.view?.hideLoading()
  45. }
  46. func show(model: ResendListModel) {
  47. self.view?.hideLoading()
  48. self.transactions = model.transactions ?? []
  49. self.view?.show(model: model)
  50. }
  51. }