/// <summary> /// Executes command. /// </summary> /// <returns>Whether command's been execute successfully.</returns> public bool Execute() { if (!this.Initialized) { return(false); } #if BETA if ((this.Feature != KnownFeature.SupportOptions) && (DateTime.Now >= Beta.ExpirationDate)) { _messageService.ShowError("This beta version has expired!\r\n\r\nPlease update to the latest version.", false); return(false); } #endif bool result; try { result = _feature.Execute(this.CommandId); if (!result) { _utilsService.Beep(); } } catch (Exception ex) { _messageService.ShowError($"Error executing {_feature.Name} command # {this.CommandId}.\r\n\r\n{ex.Message}", ex); result = false; } return(result); }
private async void DoPaymentService(bool ok) { if (!ok) { return; } if (IsBusy || IsLoading) { //Message Toast ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant()); return; } IsLoading = true; AccountModel accountSelected; if (Currency.Value == _accountLRD.Currency) { accountSelected = _accountLRD; } else if (Currency.Value == _accountUSD.Currency) { accountSelected = _accountUSD; } else { var parameters1 = new NavigationParameters { { Constants.PopupIsSucces, false }, { Constants.PopupMessage, TranslateManagerHelper.Convert("operation_failed") }, { Constants.PopupNextPage, FunctionName.MerchantPayment } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters1).ConfigureAwait(false); IsLoading = false; return; } // call service feature MerchantPaymentRequest mpr = new MerchantPaymentRequest() { TargetAccountNumber = accountSelected.AccountNumber }; featureDTO f = new featureDTO() { FeatureName = "MERCHANT_PAYMENT", SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = _userInformation.Password, Amount = decimal.Parse(Amount.Value), TargetId = MerchantId.Value, jsonObjString = JsonConvert.SerializeObject(mpr) }; bool issuccess = false; string message = ""; var mkp = await _makepayment.Execute <featureDTO, MerchantPaymentResponse>(_authentication.GetToken(), f, ApiConstants.SystemId); if (mkp != null) { if (mkp.isuccess) { issuccess = true; var mk = mkp.data; UpdateUserAccount(new AccountModel { AccountNumber = mk.AccountUpdate.AccountNumber, Balance = mk.AccountUpdate.Balance.ToString(), Currency = mk.AccountUpdate.CurrencyISO, Type = mk.AccountUpdate.AccountType }); message = TranslateManagerHelper.Convert("operation_successfully"); } else { issuccess = false; switch (mkp.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("operation_failed"); break; case "WrongPincode": message = mkp.msg; break; default: message = !string.IsNullOrEmpty(mkp?.msg) ? mkp.msg : TranslateManagerHelper.Convert("error_occured"); break; } } } else { issuccess = false; message = TranslateManagerHelper.Convert("error_occured"); } var parameters = new NavigationParameters { { Constants.PopupIsSucces, issuccess }, { Constants.PopupMessage, message }, { Constants.PopupNextPage, FunctionName.MerchantPayment } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters).ConfigureAwait(false); IsLoading = false; }
private async Task Load() { if (IsBusy || IsLoading) { // message toast return; } IsLoading = true; AccountStatementRequest asr = new AccountStatementRequest(); asr.SourceAccountNumber = ""; featureDTO fb = new featureDTO { FeatureName = "MY_DONATION", SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = _userInformation.Password, TargetId = "", Amount = 0, jsonObjString = JsonConvert.SerializeObject(asr) }; List <StatementDetails> list = new List <StatementDetails>(); var raccst = await _statementsservice.Execute <featureDTO, List <AccountStatementResponse> >(_authentication.GetToken(), fb, Infrastructure.ApiConstants.SystemId); if (raccst != null && raccst.isuccess) { var accresp = raccst?.data; list = accresp?.Select(x => new StatementDetails { OperationNumber = x.TransactionId, Amount = x.Amount.ToString(), Currency = "Ex.LRD", Description = x.Stakeholder, // x.Type, OperationSign = x.Sign, IsPositive = x.Sign == "+", OperationTime = x.Date.ToShortTimeString(), OpDate = x.Date.ToString("yyyy-MM-dd"), OperationType = x.Opname.ToUpperInvariant() }).ToList(); foreach (var s in list) { try { var group = Items.FirstOrDefault(x => x.OperationDate.Equals(s.OpDate)); if (group == null) { group = new StatetementGroup(s.OpDate); Items.Add(group); } group.Add(s); } catch (Exception ex) { DependencyService.Get <IMessage>().ShowSnackBarNetwork(TranslateManagerHelper.Convert("error_occured")); } } } else { string message; switch (raccst?.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("operation_failed"); break; default: message = !string.IsNullOrEmpty(raccst?.msg) ? raccst?.msg : TranslateManagerHelper.Convert("error_occured"); break; } var parameters = new NavigationParameters { { Constants.PopupIsSucces, false }, { Constants.PopupMessage, message }, { Constants.PopupNextPage, FunctionName.Home } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters); IsLoading = false; } IsEmpty = Items.Count == 0; IsLoading = false; }
private async void OnTapAddNumberPosition(string value) { Message.HasError = false; Message.ErrorText = ""; if (_pincode.Length >= Constants.MaxLenthPinCode) { return; } _pincode += value.ToString(); switch (_pincode.Length) { case 1: Number_1.Value = "*"; break; case 2: Number_2.Value = "*"; break; case 3: Number_3.Value = "*"; break; case 4: Number_4.Value = "*"; break; case 5: Number_5.Value = "*"; break; default: break; } if (_pincode.Length >= Constants.MaxLenthPinCode) { if (IsBusy || IsLoading) { // Message toast ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant()); return; } IsLoading = true; // call service check_pincode featureDTO fb = new featureDTO { FeatureName = "CHECK_PINCODE", SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = _pincode, TargetId = "", Amount = 0, jsonObjString = "" }; var response = await _checkpincode.Execute <featureDTO, CheckPincodeResponse>(_authentication.GetToken(), fb, ApiConstants.SystemId); if (response != null && response.isuccess) { _userInformation.SetPassword(_pincode); _userInformation.SetUserId(response.data.Id); _authentication.Connect(); CheckPincodeResponse cp = response.data; _userFullName = $"{cp.Fname} {cp.Lname}"; foreach (AccountInfo ai in cp.AccountUpdate) { UpdateUserAccount(new AccountModel { AccountNumber = ai.AccountNumber, Balance = ai.Balance.ToString(), Currency = ai.CurrencyISO, Type = ai.AccountType }); } if (_userInformationLocalStorage.HasSubscribeNotification) { if (_userInformationLocalStorage.UserForNotification != _userInformation.UserName) { // Call popup message action var parameters = new NavigationParameters { { Constants.PopupId, "NOTIFICATION_ACTIVE_POPUP" }, { Constants.PopupMessage, TranslateManagerHelper.Convert("do_you_want").ToUpper() }, { Constants.PopupMessage2, TranslateManagerHelper.Convert("to_receive_your_notifications_on_this_device").ToUpper() }, }; await NavigationService.NavigateAsync(PopupName.MessageWithActionPopup, parameters).ConfigureAwait(false); IsLoading = false; return; } } else { _userInformationLocalStorage.SubscribeNotification(_userInformation.UserName); } await NavigationService.NavigateAsync($"/CustomMasterDetailPageView/NavigationPage/{FunctionName.Home}").ConfigureAwait(false); } else { for (int i = 0; i < 5; i++) { OnTapRemoveNumberPosition(); } switch (response?.errcode) { case "EXCEPTION": Message.ErrorText = TranslateManagerHelper.Convert("operation_failed"); break; default: Message.ErrorText = !string.IsNullOrEmpty(response?.msg) ? response?.msg : TranslateManagerHelper.Convert("error_occured"); break; } Message.HasError = true; } IsLoading = false; } }
private async void DoService(bool ok) { if (!ok) { return; } if (IsBusy || IsLoading) { // message toast return; } IsLoading = true; // call the donation service DonationRequest d = new DonationRequest(); d.SourceAccountNumber = _accountSelected.AccountNumber; featureDTO f = new featureDTO { FeatureName = "DONATION", Amount = decimal.Parse(Amount.Value), SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = _userInformation.Password, TargetId = Organization.Id, jsonObjString = JsonConvert.SerializeObject(d) }; var result = await _donationservice.Execute <featureDTO, DonationResponse>(_authentication.GetToken(), f, ApiConstants.SystemId); NavigationParameters parameters = null; string message = ""; bool isSuccess = false; if (result != null) { if (result.isuccess) { var acc = result.data; UpdateUserAccount(new AccountModel { AccountNumber = acc.AccountUpdate.AccountNumber, Balance = acc.AccountUpdate.Balance.ToString(), Currency = acc.AccountUpdate.CurrencyISO, Type = acc.AccountUpdate.AccountType }); message = !string.IsNullOrEmpty(result.msg) ? result.msg : TranslateManagerHelper.Convert("operation_successfully"); isSuccess = true; } else { switch (result.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("operation_failed"); break; default: message = !string.IsNullOrEmpty(result.msg) ? result.msg : TranslateManagerHelper.Convert("error_occured"); break; } isSuccess = false; } } else { // TODO : what message do we send ? isSuccess = false; message = TranslateManagerHelper.Convert("error_contact_support"); } parameters = new NavigationParameters { { Constants.PopupIsSucces, isSuccess }, { Constants.PopupIsBeforeHome, false }, { Constants.PopupMessage, message }, { Constants.PopupNextPage, FunctionName.Charity } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters); SecondStep.Value = false; FirstStep.Value = true; IsLoading = false; }
private async void GotoNext() { Message.HasError = false; PhoneNumber.HasError = false; if (string.IsNullOrEmpty(PhoneNumber.Value)) { PhoneNumber.ErrorText = TranslateManagerHelper.Convert("username_error"); PhoneNumber.HasError = true; return; } if (PhoneNumber.Value.Length != PhoneNumberLength.Value) { PhoneNumber.ErrorText = TranslateManagerHelper.Convert("username_is_short"); PhoneNumber.HasError = true; return; } if (IsBusy || IsLoading) { // Message toast ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant()); return; } IsLoading = true; // callservice to check phonenumber if ok, go to otp view MsisdnRequest mr = new MsisdnRequest(); mr.Msisdn = ApiConstants.CountryPrefix + PhoneNumber.Value; featureDTO fb = new featureDTO { FeatureName = "CHECK_MSISDN", SenderId = "", SenderPassword = "", TargetId = "", Amount = 0, jsonObjString = JsonConvert.SerializeObject(mr) }; var response = await _checkmsisdn.Execute <featureDTO, MsisdnResponse>(_authentication.GetToken(), fb, Infrastructure.ApiConstants.SystemId); if (response != null) { if (response.isuccess) { MsisdnResponse r = response.data; if (r.Exists) { if (IsRemember.Value) { _userInformationLocalStorage.SetRememberMe(IsRemember.Value); _userInformationLocalStorage.SetUserName(PhoneNumber.Value); } else { _userInformationLocalStorage.Remove("RememberMe"); _userInformationLocalStorage.Remove("UserName"); } IUserInformation user = new UserInformation(PhoneNumber.Value); _container.RegisterInstance(user); if (_userInformationLocalStorage.FingerPrint && _userInformationLocalStorage.FUserName != user.UserName) { _userInformationLocalStorage.SetFingerPrintForThisInstance(false); } var param = new NavigationParameters() { { "FingerLogin", IsFingerLogin.Value } }; await NavigationService.NavigateAsync(FunctionName.PinCode, param); } else { switch (response.errcode) { case "EXCEPTION": Message.ErrorText = TranslateManagerHelper.Convert("operation_failed"); break; default: Message.ErrorText = !string.IsNullOrEmpty(response.msg) ? response.msg : TranslateManagerHelper.Convert("user_not_found"); break; } Message.HasError = true; IsFingerLogin.Value = false; } } else { switch (response.errcode) { case "ForcePincodeChange": if (IsRemember.Value) { _userInformationLocalStorage.SetRememberMe(IsRemember.Value); _userInformationLocalStorage.SetUserName(PhoneNumber.Value); } else { _userInformationLocalStorage.Remove("RememberMe"); _userInformationLocalStorage.Remove("UserName"); } IUserInformation user = new UserInformation(PhoneNumber.Value); _container.RegisterInstance(user); Message.ErrorText = ""; if (_userInformationLocalStorage.FingerPrint && _userInformationLocalStorage.FUserName != user.UserName) { _userInformationLocalStorage.SetFingerPrintForThisInstance(false); } await NavigationService.NavigateAsync(FunctionName.ForcePincodeChange); break; case "EXCEPTION": Message.ErrorText = TranslateManagerHelper.Convert("operation_failed"); break; default: Message.ErrorText = !string.IsNullOrEmpty(response.msg) ? response.msg : TranslateManagerHelper.Convert("user_not_found"); break; } Message.HasError = true; IsFingerLogin.Value = false; } } else { //pour afficher message error, utiliser : Message.ErrorText = !string.IsNullOrEmpty(response?.msg) ? response.msg : TranslateManagerHelper.Convert("user_not_found"); Message.HasError = true; IsFingerLogin.Value = false; } IsLoading = false; }
private async void AddVoucher() { if (IsBusy || IsLoading) { // Message toast ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant()); return; } IsLoading = true; VoucherNumber.HasError = false; if (string.IsNullOrEmpty(VoucherNumber.Value)) { VoucherNumber.ErrorText = TranslateManagerHelper.Convert("voucher_number_error"); VoucherNumber.HasError = true; IsLoading = false; return; } if (VoucherNumber.Value.Length != Constants.MaxLengthVourcherNumber) { VoucherNumber.ErrorText = TranslateManagerHelper.Convert("voucher_number_is_short"); VoucherNumber.HasError = true; IsLoading = false; return; } // Call service VoucherRegisterRequest voucher = new VoucherRegisterRequest { vNumber = VoucherNumber.Value, vPhone = ApiConstants.CountryPrefix + _userInformation.UserName }; featureDTO featureDTO = new featureDTO { FeatureName = "VOUCHER_REGISTER", Amount = 0, SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = _userInformation.Password, TargetId = "", jsonObjString = JsonConvert.SerializeObject(voucher) }; bool isSuccess = false; string message; var response = await _feature.Execute <featureDTO, voucherdto>(_authentication.GetToken(), featureDTO, ApiConstants.SystemId); if (response != null && response?.isuccess == true) { isSuccess = true; message = !string.IsNullOrEmpty(response?.msg) ? response?.msg : TranslateManagerHelper.Convert("operation_successfully"); } else { switch (response?.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("operation_failed"); break; default: message = !string.IsNullOrEmpty(response?.msg) ? response?.msg : TranslateManagerHelper.Convert("error_occured"); break; } } var parameters = new NavigationParameters { { Constants.PopupIsSucces, isSuccess }, { Constants.PopupIsBeforeHome, false }, { Constants.PopupMessage, message }, { Constants.PopupNextPage, FunctionName.Vouchers } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters); if (isSuccess) { VoucherNumber.Value = ""; SecondStep.Value = false; FirstStep.Value = true; } IsLoading = false; }
private async void ValidateChangePinCodeAsync() { OldPinCode.HasError = false; OldPinCode.ErrorText = ""; NewPinCode.HasError = false; NewPinCode.ErrorText = ""; ConfirmNewPinCode.HasError = false; ConfirmNewPinCode.ErrorText = ""; if (!CheckValidateData(OldPinCode.Value)) { OldPinCode.HasError = true; OldPinCode.ErrorText = TranslateManagerHelper.Convert("cannot_empty"); return; } if (!CheckValidateLength(OldPinCode.Value)) { OldPinCode.HasError = true; OldPinCode.ErrorText = TranslateManagerHelper.Convert("pincode_is_short"); return; } if (!CheckValidateData(NewPinCode.Value)) { NewPinCode.HasError = true; NewPinCode.ErrorText = TranslateManagerHelper.Convert("cannot_empty"); return; } if (!CheckValidateLength(NewPinCode.Value)) { NewPinCode.HasError = true; NewPinCode.ErrorText = TranslateManagerHelper.Convert("pincode_is_short"); return; } if (NewPinCode.Value == OldPinCode.Value) { NewPinCode.HasError = true; NewPinCode.ErrorText = TranslateManagerHelper.Convert("old_pincode_newpincode_cannot_equal"); return; } if (!CheckValidateData(ConfirmNewPinCode.Value)) { ConfirmNewPinCode.HasError = true; ConfirmNewPinCode.ErrorText = TranslateManagerHelper.Convert("cannot_empty"); return; } if (!CheckValidateLength(ConfirmNewPinCode.Value)) { ConfirmNewPinCode.HasError = true; ConfirmNewPinCode.ErrorText = TranslateManagerHelper.Convert("pincode_is_short"); return; } // compare newPIN to ConfirmNewPIN if (NewPinCode.Value != ConfirmNewPinCode.Value) { ConfirmNewPinCode.HasError = true; ConfirmNewPinCode.ErrorText = TranslateManagerHelper.Convert("new_pincode_no_match"); return; } if (IsBusy || IsLoading) { // Message Toast return; } IsLoading = true; // appel service pour confirmation pin code UpdatePincodeRequest upr = new UpdatePincodeRequest(); upr.NewPassword = NewPinCode.Value; featureDTO fb = new featureDTO { FeatureName = "UPDATE_PINCODE", SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = OldPinCode.Value, TargetId = "", Amount = 0, jsonObjString = JsonConvert.SerializeObject(upr) }; // NOTE : the Initialize method is not async , so we wait for the result. //ObservableCollection<AccountModel> Items = new ObservableCollection<AccountModel>(); NavigationParameters parameters = null; string message = ""; bool isSuccess = false; var response = await _updatepinservice.Execute <featureDTO, string>(_authentication.GetToken(), fb, ApiConstants.SystemId); if (response != null) { if (response.isuccess) { message = TranslateManagerHelper.Convert("pincode_changed_successfully"); await NavigationService.ClearPopupStackAsync("", "", true); await NavigationService.NavigateAsync($"/{FunctionName.PinCode}"); isSuccess = true; IsLoading = false; return; } else { switch (response.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("error_contact_support"); break; default: message = !string.IsNullOrEmpty(response.msg) ? response.msg : TranslateManagerHelper.Convert("failed_pincode_change"); break; } isSuccess = false; } } else { // TODO : what message do we send ? isSuccess = false; message = TranslateManagerHelper.Convert("error_contact_support"); } parameters = new NavigationParameters { { Constants.PopupIsSucces, isSuccess }, { Constants.PopupMessage, message }, { Constants.PopupNextPage, FunctionName.Login } }; await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters); IsLoading = false; }
private async void DoService(bool ok) { if (!ok) { return; } if (IsBusy || IsLoading) { // message toast ShowSnackBarWithAction(TranslateManagerHelper.Convert("loading_please_wait"), null, TranslateManagerHelper.Convert("ok").ToUpperInvariant()); return; } IsLoading = true; var data = new QRCodeGiftKardData { SystemId = ApiConstants.SystemId, Amount = Amount.Value, PhoneNumber = ApiConstants.CountryPrefix + ReceiverPhoneNumber.Value, Currency = _accountSelected.Currency, CompanyId = !string.IsNullOrEmpty(Merchant.Id) ? Merchant.Id : "", CompanyName = !string.IsNullOrEmpty(Merchant.Value) ? Merchant.Value : "" }; GiftCardCreationRequest cash = new GiftCardCreationRequest { SourceAccountNumber = _accountSelected.AccountNumber, QrCode = JsonConvert.SerializeObject(data) }; featureDTO f = new featureDTO { FeatureName = "GIFT_CARD_CREATE", Amount = decimal.Parse(Amount.Value), SenderId = ApiConstants.CountryPrefix + _userInformation.UserName, SenderPassword = _userInformation.Password, TargetId = ApiConstants.CountryPrefix + ReceiverPhoneNumber.Value, jsonObjString = JsonConvert.SerializeObject(cash) }; var result = await _giftcardservice.Execute <featureDTO, GiftCardCreationResponse>(_authentication.GetToken(), f, ApiConstants.SystemId); NavigationParameters parameters = null; string message = ""; bool isSuccess = false; if (result != null) { if (result.isuccess) { isSuccess = true; message = TranslateManagerHelper.Convert("operation_successfully"); // init value var ai = result.data.AccountUpdate; UpdateUserAccount(new AccountModel { AccountNumber = ai.AccountNumber, Balance = ai.Balance.ToString(), Currency = ai.CurrencyISO, Type = ai.AccountType, }); InitializeInput(); GoBacckToStpe1(); } else { switch (result.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("operation_failed"); break; default: message = !string.IsNullOrEmpty(result.msg) ? result.msg : TranslateManagerHelper.Convert("cashin_failed"); break; } isSuccess = false; } } else { // TODO : what message do we send ? isSuccess = false; switch (result.errcode) { case "EXCEPTION": message = TranslateManagerHelper.Convert("operation_failed"); break; default: message = TranslateManagerHelper.Convert("error_contact_support"); break; } } parameters = new NavigationParameters { { Constants.PopupIsSucces, isSuccess }, { Constants.PopupIsBeforeHome, false }, { Constants.PopupMessage, message }, { Constants.PopupNextPage, FunctionName.GiftCard } }; //InitializeInput(); //GoBacckToStpe1(); await NavigationService.NavigateAsync(PopupName.SuccessfullPopup, parameters).ConfigureAwait(false); IsLoading = false; }