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

//
// 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)
}
}