// // ResendPresenter.swift // GME Remit // // Created by gme_2 on 18/03/2019. //Copyright © 2019 Gobal Money Express Co. Ltd. All rights reserved. // import Foundation class ResendPresenter { // MARK: Properties var transactions: [ResendTransactionModel] = [] var filteredTransaction: [ResendTransactionModel] = [] weak var view: ResendViewInterface? var interactor: ResendInteractorInput? var wireframe: ResendWireframeInput? // MARK: Converting entities } // MARK: Resend module interface extension ResendPresenter: ResendModuleInterface { func fetchList(fromDate: String, toDate: String) { self.interactor?.fetchList(fromDate: fromDate, toDate: toDate) } func viewIsReady() { self.view?.showLoading() self.interactor?.fetchList(fromDate: nil, toDate: nil) } func filter(searchText: String) { if searchText.isEmpty { self.filteredTransaction = self.transactions return } self.filteredTransaction = self.transactions.filter({ return ($0.controlNumber ?? "").lowercased().contains(searchText) || ($0.bankName ?? "").lowercased().contains(searchText) || ($0.recieverName ?? "").lowercased().contains(searchText) }).sorted(by: { (model, _) in return (model.controlNumber ?? "").lowercased().hasPrefix(searchText) || (model.recieverName ?? "").lowercased().hasPrefix(searchText) || (model.bankName ?? "").lowercased().hasPrefix(searchText) }) self.view?.show(models: filteredTransaction) } } // MARK: Resend interactor output interface extension ResendPresenter: ResendInteractorOutput { func show(error: Error) { self.view?.hideLoading() self.view?.hideLoading() } func show(model: ResendListModel) { self.view?.hideLoading() self.transactions = model.transactions ?? [] self.view?.show(model: model) } }