Browse Source

seperate view model added for sendmoney exchange rate for currencies

pull/1/head
gme_2 6 years ago
parent
commit
c9f200877d
  1. 8
      GMERemittance.xcodeproj/project.pbxproj
  2. 64
      GMERemittance/Module/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift
  3. 15
      GMERemittance/Module/SendMoneyParent/User Interface/View/SendMoneyParentViewController.swift
  4. 8
      GMERemittance/Module/SendMoneyPaymentMode/User Interface/View/SendMoneyPaymentModeViewController.swift

8
GMERemittance.xcodeproj/project.pbxproj

@ -1846,6 +1846,13 @@
path = ViewModels;
sourceTree = "<group>";
};
D94B1BA52137C5B800A29751 /* CurrencyWithFlagPicker */ = {
isa = PBXGroup;
children = (
);
path = CurrencyWithFlagPicker;
sourceTree = "<group>";
};
D95B5E2421311056000C0B33 /* GmeContacts */ = {
isa = PBXGroup;
children = (
@ -1940,6 +1947,7 @@
D96222FF212BD5E700B7A115 /* Library */ = {
isa = PBXGroup;
children = (
D94B1BA52137C5B800A29751 /* CurrencyWithFlagPicker */,
D90A9D61213696E400A96E45 /* BankPicker */,
D90A9D562136942300A96E45 /* BankBranchPicker */,
D9CB49812132A58C00B7A124 /* ItemPickerView */,

64
GMERemittance/Module/SendMoneyExchangeRate/User Interface/View/SendMoneyExchangeRateViewController.swift

@ -8,6 +8,11 @@
import UIKit
class SendMoneyExchangeRateCurrencyViewModel{
var countryCode: String?
var currency: String?
}
class SendMoneyExchangeRateViewController: UIViewController {
// MARK: IBOutlets
@ -34,7 +39,37 @@ class SendMoneyExchangeRateViewController: UIViewController {
// MARK: Properties
var presenter: SendMoneyExchangeRateModuleInterface?
var reciepient: Recipient?
var currencyInfoViewModel: [SendMoneyExchangeRateCurrencyViewModel]?
var reciepient: Recipient? {
didSet {
self.setCountryFlag(countryCode: self.reciepient?.countryCode ?? "")
}
}
var requestModel: SendMoneyRequestModel? {
didSet {
let deliveryMethod = self.requestModel?.paymemtMode
if (deliveryMethod?.bankRequired ?? "false").lowercased() == "true" {
self.currencies = self.requestModel?.bank?.payCurrency ?? []
}else {
self.currencies = deliveryMethod?.payCurrency ?? []
}
}
}
var currencies: [String]? {
didSet {
let models: [SendMoneyExchangeRateCurrencyViewModel] =
(self.currencies ?? []).map({
let viewmodel = SendMoneyExchangeRateCurrencyViewModel()
viewmodel.countryCode = self.reciepient?.countryCode ?? ""
viewmodel.currency = $0
return viewmodel
})
self.currencyInfoViewModel = models
}
}
var hudDelegate: HUDStatusDelegate?
var actionDelegate: SendMoneyExchangeRateActionDelegate?
@ -56,9 +91,36 @@ class SendMoneyExchangeRateViewController: UIViewController {
private func setup() {
// all setup should be done here
self.setupTargets()
self.configureViews()
}
private func setCountryFlag(countryCode: String) {
let flag = CountryInfo().getFlag(for: countryCode)
self.countryFlagImage.image = flag
}
private func setCurrencyLabel(currency: String) {
self.countryCodeLabel.text = currency.uppercased()
}
private func setupTargets() {
let tapGuesture = UITapGestureRecognizer(target: self, action: #selector(self.showCountryList(_:)))
self.countryListTapGuesture = tapGuesture
self.countryListStackView.addGestureRecognizer(self.countryListTapGuesture!)
}
@objc func showCountryList(_ sender: UITapGestureRecognizer) {
print("show Country List")
let viewcontroller = UIStoryboard.init(name: "TableViewPicker", bundle: nil).instantiateViewController(withIdentifier: "TablePickerViewController") as! TablePickerViewController
// viewcontroller.data = self.exchangeRateModels ?? []
viewcontroller.type = TablePickerViewTitle.country
// viewcontroller.doneAction = self.countrySelected
self.present(viewcontroller, animated: true, completion: nil)
}
private func configureViews() {
let dropDownImage = #imageLiteral(resourceName: "dropdown_white").withRenderingMode(UIImageRenderingMode.alwaysTemplate)
let image = dropDownImage

15
GMERemittance/Module/SendMoneyParent/User Interface/View/SendMoneyParentViewController.swift

@ -14,9 +14,9 @@ protocol HUDStatusDelegate {
}
protocol SendMoneyPaymentModeActionDelegate {
func selected(bank: SendMoneyBank)
func selected(branch: SendMoneyBankBranch)
func selected(payoutMethod: SendMoneyPayoutMode)
func selected(bank: SendMoneyBank?)
func selected(branch: SendMoneyBankBranch?)
func selected(payoutMethod: SendMoneyPayoutMode?)
func added(acountNumber: String)
func continueToExchangeAction()
}
@ -196,7 +196,8 @@ class SendMoneyParentViewController: UIViewController {
}
func addExchangeViewController() {
guard let exchangeViewController = self.exchangeViewController else {return}
guard let exchangeViewController = self.exchangeViewController as? SendMoneyExchangeRateViewController else {return}
exchangeViewController.requestModel = self.requestModel
self.addChildViewController(exchangeViewController)
UIView.transition(with: self.containerView, duration: 0.33, options: .transitionCrossDissolve, animations: {
self.containerView.addSubview(exchangeViewController.view)
@ -237,15 +238,15 @@ extension SendMoneyParentViewController: HUDStatusDelegate {
}
extension SendMoneyParentViewController: SendMoneyPaymentModeActionDelegate {
func selected(bank: SendMoneyBank) {
func selected(bank: SendMoneyBank?) {
self.requestModel?.bank = bank
}
func selected(branch: SendMoneyBankBranch) {
func selected(branch: SendMoneyBankBranch?) {
self.requestModel?.branch = branch
}
func selected(payoutMethod: SendMoneyPayoutMode) {
func selected(payoutMethod: SendMoneyPayoutMode?) {
self.requestModel?.paymemtMode = payoutMethod
}

8
GMERemittance/Module/SendMoneyPaymentMode/User Interface/View/SendMoneyPaymentModeViewController.swift

@ -124,6 +124,14 @@ class SendMoneyPaymentModeViewController: UIViewController {
}
if shouldGoNextPage {
self.actionDelegate?.selected(payoutMethod: self.selectedPayoutMode)
if shouldValidateBank() { self.actionDelegate?.selected(bank: self.selectedBank) }
if shouldValidateBranch() { self.actionDelegate?.selected(branch: self.selectedBranch) }
if shouldValidateAccount() { self.actionDelegate?.added(acountNumber: accountTextField.text!) }
self.goToExchangeView()
}else {
self.show(error: errors)

Loading…
Cancel
Save