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.
 
 
 
 

120 lines
3.9 KiB

//
// ReferalCodeViewController.swift
// GMERemittance
//
// Created by Sujal on 4/20/18.
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class ReferralCodeViewController: PopUpGeneralInfo {
var referralCodeAvailable: Box<Bool?> = Box(nil)
private var referralcodeviewmodel = ReferralCodeViewModel()
private var activityIndicator: UIActivityIndicatorView = UIActivityIndicatorView()
public static var referralCodeConnectionTimeOut = 0
@IBOutlet weak var textFieldReferralCode: UITextField!
@IBAction func dismissDialog(_ sender: Any) {
self.navigationController?.navigationBar.isHidden = false
self.removeAnimate()
referralCodeAvailable.value = false
}
/**
Internet check
*/
func setUpNetworkListener() {
referralcodeviewmodel.internetConnection.bind { [unowned self] in
guard $0 != nil else {
return
}
if !$0! {
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
self.enableUserInteractions()
self.popUpMessage(value: 15)
self.referralcodeviewmodel.internetConnection.value = nil
}
}
}
@IBAction func submitReferralCode(_ sender: Any) {
view.endEditing(true)
showActivityIndicator(activityIndicator: activityIndicator)
disableUserInteractions()
referralcodeviewmodel.validateReferralCode(referralCode: textFieldReferralCode.text!)
}
/**
Check referral code validation
*/
func bindReferralCodeValidation() {
referralcodeviewmodel.referralCodeValidated.bind { [unowned self] in
guard $0 != nil else {
return
}
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
self.enableUserInteractions()
if $0! {
self.navigationController?.navigationBar.isHidden = false
self.removeAnimate()
self.referralCodeAvailable.value = true
} else {
if ReferralCodeViewController.referralCodeConnectionTimeOut == 0{
ReferralCodeViewController.referralCodeConnectionTimeOut = ReferralCodeViewController.referralCodeConnectionTimeOut+1
self.popUpMessageError(value: 10, message: self.referralcodeviewmodel.getErrorMessage())
}
}
self.referralcodeviewmodel.referralCodeValidated.value = nil
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.setUpNetworkListener()
setUpAnotherLoginListener(genericviewmodel: referralcodeviewmodel)
referralcodeviewmodel.referralConnectionTimeOut.value = nil
/**
connection timeout
*/
referralcodeviewmodel.referralConnectionTimeOut.bind { [unowned self] in
guard $0 != nil else {
return
}
self.dismissActivityIndicator(activityIndicator: self.activityIndicator)
self.enableUserInteractions()
if ReferralCodeViewController.referralCodeConnectionTimeOut == 0{
ReferralCodeViewController.referralCodeConnectionTimeOut = ReferralCodeViewController.referralCodeConnectionTimeOut+1
self.popUpMessage(value: 44)
}
}
bindReferralCodeValidation()
self.view.backgroundColor = UIColor.black.withAlphaComponent(0.7)
self.showAnimate()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func getReferralCode() -> String {
return referralcodeviewmodel.getValidReferralCode()
}
}