Ejemplo n.º 1
0
        /// <summary>
        /// Only for some token functions with Allow Anonymous attribute and without ValidateOtpFilter filter (Seting header values and authorize customer in cache)
        /// </summary>
        private void AuthorizeAnonymousMethods(ulong CustomerNumber, string sessionId, int userId, string userName)
        {
            byte       language   = 1;
            SourceType sourceType = SourceType.MobileBanking;

            //Լեզու
            if (!string.IsNullOrEmpty(Request.Headers["language"]))
            {
                byte.TryParse(Request.Headers["language"], out language);
            }

            //Տվյալների մուտքագրման աղբյուր
            if (!string.IsNullOrEmpty(Request.Headers["SourceType"]))
            {
                Enum.TryParse(Request.Headers["SourceType"], out sourceType);
            }

            AuthorizedCustomer authorizedCustomer = new AuthorizedCustomer()
            {
                CustomerNumber = CustomerNumber,
                UserId         = userId,
                SessionID      = sessionId,
                UserName       = userName
            };

            _cache.Set(sessionId + "_authorizedCustomer", authorizedCustomer);
            _cache.Set(sessionId + "_Language", language);
            _cache.Set(sessionId + "_SourceType", sourceType);
            _cache.Set(sessionId + "_ClientIp", Request.HttpContext.Connection.RemoteIpAddress.ToString());
        }
Ejemplo n.º 2
0
        internal string PrintVisaVirtualCardCondition()
        {
            AuthorizedCustomer          authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
            Dictionary <string, string> parameters         = new Dictionary <string, string>();

            parameters.Add(key: "customerNumber", value: authorizedCustomer.CustomerNumber.ToString());
            return(_contractService.RenderContract("VisaVirtualCardCondition", parameters, "VisaVirtualCardCondition.pdf"));
        }
Ejemplo n.º 3
0
        public IActionResult SaveAndApproveTokenDeactivationOrder([FromBody] TokenOperationRequest request)
        {
            if (ModelState.IsValid)
            {
                SingleResponse <long> response        = new SingleResponse <long>();
                HBToken            hBToken            = new HBToken();
                ActionResult       result             = new ActionResult();
                AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                _xBService.Use(client =>
                {
                    hBToken = client.GetHBTokenWithSerialNumberAsync(request.TokenSerial).Result;
                });
                if (hBToken == null)
                {
                    byte language = 1;

                    //Լեզու
                    if (!string.IsNullOrEmpty(Request.Headers["language"]))
                    {
                        byte.TryParse(Request.Headers["language"], out language);
                    }

                    result.ResultCode    = ResultCode.ValidationError;
                    response.Description = (Languages)language == Languages.hy ? "Տվյալ համարով տոկեն գոյություն չունի։" : "Token not exist.";
                }
                else
                {
                    //string sessionId = Guid.NewGuid().ToString();
                    //AuthorizeAnonymousMethods(hBToken.HBUser.CustomerNumber, sessionId, hBToken.HBUser.ID, hBToken.HBUser.UserName);
                    //Request.Headers.Add("SessionId", sessionId);

                    HBServletRequestOrder hBServletRequestOrder = new HBServletRequestOrder
                    {
                        RegistrationDate = DateTime.Now,
                        OperationDate    = _xBService.GetCurrentOperDay(),
                        ServletAction    = HBServletAction.DeactivateToken,
                        Type             = OrderType.HBServletRequestTokenDeactivationOrder,
                        SubType          = 1,
                        CustomerNumber   = authorizedCustomer.CustomerNumber,
                        ServletRequest   = null,
                        HBtoken          = hBToken,
                        Source           = SourceType.MobileBanking,
                        FilialCode       = 22000
                    };

                    ActionResult saveActionResult = _xBService.SaveAndApproveTokenOrder(hBServletRequestOrder);
                    response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(saveActionResult.ResultCode);
                    response.Result      = saveActionResult.Id;
                    response.Description = utils.GetActionResultErrors(saveActionResult.Errors);
                }
                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();

            if (_cacheHelper.GetSourceType() == XBS.SourceType.AcbaOnline && authorizedCustomer.SecondConfirm == 1)
            {
                bool                    isValid;
                ApproveIdRequest        request             = null;
                ProductIdApproveRequest requestProductId    = null;
                OrderRejectionRequest   rejectionRequest    = null;
                RemovalOrderRequest     removalOrderRequest = null;
                string                  OTP = "";

                foreach (var argument in context.ActionArguments.Values.Where(v => v is ApproveIdRequest))
                {
                    request = argument as ApproveIdRequest;
                    OTP     = request.OTP;
                    break;
                }

                foreach (var argument in context.ActionArguments.Values.Where(v => v is OrderRejectionRequest))
                {
                    rejectionRequest = argument as OrderRejectionRequest;
                    OTP = rejectionRequest.OTP;
                    break;
                }

                foreach (var argument in context.ActionArguments.Values.Where(v => v is RemovalOrderRequest))
                {
                    removalOrderRequest = argument as RemovalOrderRequest;
                    OTP = removalOrderRequest.OTP;
                    break;
                }

                foreach (var argument in context.ActionArguments.Values.Where(v => v is ProductIdApproveRequest))
                {
                    requestProductId = argument as ProductIdApproveRequest;
                    OTP = request.OTP;
                    break;
                }

                isValid = _xbSecurity.ValidateOTP(context.HttpContext.Request.Headers["SessionId"], OTP, _cacheHelper.GetClientIp(), _cacheHelper.GetLanguage());

                if (!isValid)
                {
                    Response response = new Response();
                    response.ResultCode  = ResultCodes.validationError;
                    response.Description = (Languages)_cacheHelper.GetLanguage() == Languages.hy ? "Սխալ թվային կոդ։" : "Incorrect OTP code.";

                    context.Result = ResponseExtensions.ToHttpResponse(response);
                }
            }
        }
Ejemplo n.º 5
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();

            if (authorizedCustomer.Permission != 5 && authorizedCustomer.Permission != 3)
            {
                Response response = new Response();
                response.ResultCode  = ResultCodes.validationError;
                response.Description = authorizedCustomer.UserName + _localizer[" օգտագործողը չունի մուտքագրման իրավունք"];

                context.Result = ResponseExtensions.ToHttpResponse(response);
            }
        }
Ejemplo n.º 6
0
#pragma warning disable IDE0060 // Remove unused parameter
        public async Task <IActionResult> GetCustomerActiveTokens([FromBody] TokenOperationRequest request)
#pragma warning restore IDE0060 // Remove unused parameter
        {
            SingleResponse <CustomerTokenResponse> response = new SingleResponse <CustomerTokenResponse>()
            {
                ResultCode = ResultCodes.normal
            };
            byte language = 1;

            if (!string.IsNullOrEmpty(Request.Headers["language"]))
            {
                byte.TryParse(Request.Headers["language"], out language);
            }
            AuthorizedCustomer     authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
            List <HBToken>         hBTokens           = new List <HBToken>();
            HBUser                 hBUser             = new HBUser();
            Task <List <HBToken> > hBTokensTask       = null;
            Task <HBUser>          hBUserTask         = null;

            _xBService.Use(client =>
            {
                hBTokensTask = client.GetFilteredHBTokensAsync(authorizedCustomer.UserId, HBTokenQuality.Active);
            });
            _xBService.Use(client =>
            {
                hBUserTask = client.GetHBUserAsync(authorizedCustomer.UserId);
            });
            hBUser   = await hBUserTask;
            hBTokens = await hBTokensTask;
            if ((hBTokens?.Count ?? 0) == 0)
            {
                response.ResultCode  = ResultCodes.validationError;
                response.Description = (Languages)language == Languages.hy ? "Փոխարինման հայտը հնարավոր չէ ուղարկել: Խնդրում ենք դիմել Բանկ:" : "Can't send replacement request. Please contact the Bank.";
                return(ResponseExtensions.ToHttpResponse(response));
            }
            response.Result = new CustomerTokenResponse
            {
                IsNewHbUser = hBUser.IsCas,
                Tokens      = new List <CustomerToken>()
            };
            foreach (var token in hBTokens)
            {
                response.Result.Tokens.Add(new CustomerToken
                {
                    TokenSerial           = token.TokenNumber,
                    DeviceTypeDescription = token.DeviceTypeDescription
                });
            }
            return(ResponseExtensions.ToHttpResponse(response));
        }
Ejemplo n.º 7
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            long id = 0;


            ApproveIdRequest      request             = null;
            OrderRejectionRequest rejectionRequest    = null;
            RemovalOrderRequest   removalOrderRequest = null;
            OrderType             orderType           = OrderType.NotDefined;

            foreach (var argument in context.ActionArguments.Values.Where(v => v is ApproveIdRequest))
            {
                request = argument as ApproveIdRequest;
                id      = request.Id;
                break;
            }

            foreach (var argument in context.ActionArguments.Values.Where(v => v is OrderRejectionRequest))
            {
                rejectionRequest = argument as OrderRejectionRequest;
                id = rejectionRequest.OrderRejection.OrderId;
                break;
            }

            foreach (var argument in context.ActionArguments.Values.Where(v => v is RemovalOrderRequest))
            {
                removalOrderRequest = argument as RemovalOrderRequest;
                id        = removalOrderRequest.Order.RemovingOrderId;
                orderType = OrderType.RemoveTransaction;
                break;
            }

            AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();

            if ((!_xbService.IsAbleToChangeQuality(authorizedCustomer.UserName, (int)id) && orderType != OrderType.RemoveTransaction) ||
                (authorizedCustomer.Permission != 3 && authorizedCustomer.Permission != 2) || (orderType == OrderType.RemoveTransaction && !authorizedCustomer.IsLastConfirmer))
            {
                Response response = new Response();
                byte     language = _cacheHelper.GetLanguage() == 0 ? (byte)2 : (byte)1;

                response.ResultCode  = ResultCodes.validationError;
                response.Description = _xbService.GetTerm(1689, null, (Languages)language);

                context.Result = ResponseExtensions.ToHttpResponse(response);
            }
        }
        public IActionResult SaveNotificationToken(NotificationTokenRequest request)
        {
            var response = new SingleResponse <long>()
            {
                ResultCode = ResultCodes.normal
            };
            AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();

            if (request?.Token != null)
            {
                request.Token.CustomerType   = (byte)authorizedCustomer.TypeOfClient;
                request.Token.CustomerNumber = authorizedCustomer.CustomerNumber;
                request.Token.UserId         = authorizedCustomer.UserId;
                PushNotificationService.ActionResult saveResult = _xbSecurityPushNotificationService.SaveNotificationToken(request.Token);
                response.ResultCode = ResultCodeFormatter.FromPushNotificationService(saveResult.ActionResultCode);
            }
            else
            {
                response.ResultCode = ResultCodes.failed;
            }
            return(ResponseExtensions.ToHttpResponse(response));
        }
Ejemplo n.º 9
0
        public string GetCurrentAccountContractBefore(long docId)
        {
            string             result             = null;
            AccountOrder       order              = new AccountOrder();
            AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
            int fillialCode = _cacheHelper.GetAuthorizedCustomer().BranchCode;

            order = _xBService.GetAccountOrder(docId);
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add(key: "customerNumber", value: authorizedCustomer.CustomerNumber.ToString());
            parameters.Add(key: "HbDocID", value: docId.ToString());
            parameters.Add(key: "currencyHB", value: order.Currency);
            parameters.Add(key: "reopen", value: "0");
            parameters.Add(key: "armNumber", value: "0");
            parameters.Add(key: "armNumberStr", value: "0");
            parameters.Add(key: "accountTypeHB", value: (order.AccountType - 1).ToString());
            parameters.Add(key: "thirdPersonCustomerNumberHB", value: "0");
            parameters.Add(key: "filialCode", value: fillialCode.ToString());
            parameters.Add(key: "receiveTypeHB", value: order.StatementDeliveryType.ToString());
            result = _contractService.RenderContract("CurrentAccContract", parameters, "CurrentAccContract.pdf");
            return(result);
        }
Ejemplo n.º 10
0
        public IActionResult ApproveLoanProductOrder(ApproveLoanProductOrderRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <long>()
                {
                    ResultCode = ResultCodes.normal
                };
                LoanProductOrder   order = new LoanProductOrder();
                AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();

                if (request.ProductType == 1)
                {
                    order = _xbService.GetLoanOrder(request.Id);
                }
                if (request.ProductType == 2)
                {
                    order = _xbService.GetCreditLineOrder(request.Id);
                }
                if (request.ProductType == 3)
                {
                    order = _xbService.GetCreditLineOrder(request.Id);
                }

                ActionResult saveResult = _xbService.ApproveLoanProductOrder(order);

                response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(saveResult.ResultCode);
                response.Result      = saveResult.Id;
                response.Description = utils.GetActionResultErrors(saveResult.Errors);

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Ejemplo n.º 11
0
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            Response           response           = new Response();
            AuthorizedCustomer authorizedCustomer = new AuthorizedCustomer();
            string             sessionId          = "";
            byte       language = 0;
            string     ipAddress;
            SourceType sourceType = SourceType.NotSpecified;

            if (context.Filters.Any(item => item is IAllowAnonymousFilter))
            {
                return;
            }

            //Սեսիայի նունականացման համար
            if (!string.IsNullOrEmpty(context.HttpContext.Request.Headers["SessionId"]))
            {
                sessionId = context.HttpContext.Request.Headers["SessionId"];
            }

            //Լեզու
            if (!string.IsNullOrEmpty(context.HttpContext.Request.Headers["language"]))
            {
                byte.TryParse(context.HttpContext.Request.Headers["language"], out language);
            }

            //Տվյալների մուտքագրման աղբյուր
            if (!string.IsNullOrEmpty(context.HttpContext.Request.Headers["SourceType"]))
            {
                SourceType.TryParse(context.HttpContext.Request.Headers["SourceType"], out sourceType);
            }

            //IP հասցե
            ipAddress = context.HttpContext.Connection.RemoteIpAddress.ToString();

            if (sessionId == "ba0f312d-8487-445e-aee2-d5877ac1d4de" && Convert.ToBoolean(_config["TestVersion"]))
            {
                authorizedCustomer = _xbService.GetTestMobileBankingUser();
                authorizedCustomer.CustomerNumber = Convert.ToUInt64(context.HttpContext.Request.Headers["customerNumber"]);
                authorizedCustomer.IsEmployee     = _xbService.IsEmployee(authorizedCustomer.CustomerNumber);
                if (authorizedCustomer.CustomerNumber == 0)
                {
                    authorizedCustomer.CustomerNumber = 1111;
                }

                _cache.Set(sessionId + "_ClientIp", "169.169.169.166");
                _cache.Set(sessionId + "_Language", language);
                _cache.Set(sessionId + "_authorizedCustomer", authorizedCustomer);
                _cache.Set(sessionId + "_SourceType", sourceType);
                authorizedCustomer.UserId = 55;
                if (authorizedCustomer.LimitedAccess != 0)
                {
                    _cache.Set(sessionId + "_userProductPermission", _xbService.GetUserProductsPermissions(authorizedCustomer.UserName));
                }
            }
            else
            {
                if (sessionId != "")
                {
                    OnlineBankingUser onlineUserData = new OnlineBankingUser();
                    onlineUserData = _xbSecurityService.CheckAuthorization(sessionId, language);

                    if (onlineUserData.AuthorizationResult.IsAuthorized)
                    {
                        authorizedCustomer.CustomerNumber         = ulong.Parse(onlineUserData.CustomerNumber);
                        authorizedCustomer.UserName               = onlineUserData.UserName;
                        authorizedCustomer.UserId                 = onlineUserData.UserID;
                        authorizedCustomer.DailyTransactionsLimit = onlineUserData.DailyTransactionsLimit;
                        authorizedCustomer.OneTransactionLimit    = onlineUserData.OneTransactionLimit;
                        _cache.Set(sessionId + "_ClientIp", ipAddress);
                        authorizedCustomer.ApprovementScheme = short.Parse(onlineUserData.ApprovementScheme.ToString());
                        authorizedCustomer.LimitedAccess     = onlineUserData.LimitedAccess;
                        authorizedCustomer.TypeOfClient      = onlineUserData.TypeOfClient;
                        authorizedCustomer.Permission        = onlineUserData.Permission;
                        authorizedCustomer.SecondConfirm     = onlineUserData.SecondConfirm;
                        authorizedCustomer.IsLastConfirmer   = onlineUserData.IsLastConfirmer;
                        authorizedCustomer.BranchCode        = onlineUserData.BranchCode;
                        authorizedCustomer.IsEmployee        = _xbService.IsEmployee(authorizedCustomer.CustomerNumber);

                        _cache.Set(sessionId + "_Language", language);
                        if (authorizedCustomer.LimitedAccess != 0)
                        {
                            List <HBProductPermission> _userProductPermission = _xbService.GetUserProductsPermissions(authorizedCustomer.UserName);
                            _cache.Set(sessionId + "_userProductPermission", _xbService.GetUserProductsPermissions(authorizedCustomer.UserName));
                        }
                        _cache.Set(sessionId + "_authorizedCustomer", authorizedCustomer);
                        _cache.Set(sessionId + "_SourceType", sourceType);
                    }
                    else
                    {
                        response.ResultCode = ResultCodes.notAuthorized;
                        context.Result      = ResponseExtensions.ToHttpResponse(response);
                    }
                }
                else
                {
                    response.ResultCode = ResultCodes.notAuthorized;
                    context.Result      = ResponseExtensions.ToHttpResponse(response);
                }
            }
        }
Ejemplo n.º 12
0
        public async Task <SingleResponse <byte[]> > PrintExchangeOrderStatement(long id, int lang, PaymentOrder paymentOrder, string exportFormat = "pdf")
        {
            SingleResponse <byte[]> response = new SingleResponse <byte[]>();
            byte   convType = paymentOrder.SubType;
            string report   = "";
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            report = paymentOrder.SubType == 3 ? "Cross_Convertation_NonCash" : "Convertation_NonCash";
            parameters.Add(key: "User", value: "");
            parameters.Add(key: "nn", value: paymentOrder.Id.ToString());
            parameters.Add(key: "Filial_code", value: paymentOrder.FilialCode.ToString());
            parameters.Add(key: "customer_number", value: paymentOrder.CustomerNumber.ToString());
            parameters.Add(key: "purpose", value: paymentOrder.Description);
            parameters.Add(key: "customer_debit_account", value: paymentOrder.DebitAccount.AccountNumber);
            parameters.Add(key: "customer_credit_account", value: paymentOrder.ReceiverAccount.AccountNumber);
            if (convType != 3)
            {
                parameters.Add(key: "amount", value: convType == 2 ? paymentOrder.Amount.ToString() : (paymentOrder.Amount * paymentOrder.ConvertationRate).ToString());
                parameters.Add(key: "currency", value: paymentOrder.ReceiverAccount.Currency);
                parameters.Add(key: "exch_rate", value: paymentOrder.ConvertationRate.ToString());
                parameters.Add(key: "amount_exch", value: convType == 2 ? (paymentOrder.Amount * paymentOrder.ConvertationRate).ToString() : paymentOrder.Amount.ToString());
                parameters.Add(key: "currency_exch", value: paymentOrder.DebitAccount.Currency);
                parameters.Add(key: "oper", value: convType == 2 ? "Առք" : "Վաճառք");
                parameters.Add(key: "fileName", value: "Convertation_NonCash");
                parameters.Add(key: "transaction_purpose", value: "Ներբանկային փոխարկման հայտ");
                parameters.Add(key: "transaction_purpose1", value: "Արտարժույթի առք ու վաճառքի գործառնությունների վերաբերյալ");
                parameters.Add(key: "Hb_quality", value: ((int)paymentOrder.Quality).ToString());
                if (!String.IsNullOrEmpty(paymentOrder.ConfirmationDate.ToString()))
                {
                    parameters.Add(key: "Hb_confirmation_date", value: paymentOrder.ConfirmationDate.Value.Date.ToString("dd/MM/yy"));
                }
            }
            else
            {
                parameters.Add(key: "amount_buy", value: paymentOrder.Amount.ToString());
                parameters.Add(key: "currency_buy", value: paymentOrder.ReceiverAccount.Currency);
                parameters.Add(key: "kurs_buy", value: paymentOrder.ConvertationRate.ToString());
                parameters.Add(key: "amount_sell", value: (paymentOrder.Amount * paymentOrder.ConvertationRate / paymentOrder.ConvertationRate1).ToString());
                parameters.Add(key: "currency_sell", value: paymentOrder.ReceiverAccount.Currency);
                parameters.Add(key: "Kurs_sell", value: paymentOrder.ConvertationRate1.ToString());
                parameters.Add(key: "diff_inAMD", value: ((paymentOrder.Amount * paymentOrder.ConvertationRate / paymentOrder.ConvertationRate1) - paymentOrder.Amount * paymentOrder.ConvertationRate1).ToString());
                parameters.Add(key: "cross_kurs", value: paymentOrder.ConvertationCrossRate.ToString());
                parameters.Add(key: "cred_acc_descr", value: " ");
                parameters.Add(key: "quality", value: paymentOrder.Quality.ToString());
                if (!String.IsNullOrEmpty(paymentOrder.ConfirmationDate.ToString()))
                {
                    parameters.Add(key: "confirm_date", value: paymentOrder.ConfirmationDate.Value.Date.ToString("dd/MM/yy"));
                }
                parameters.Add(key: "DocID", value: id.ToString());
            }
            parameters.Add(key: "Hb_Doc_ID", value: id.ToString());
            if (convType != 3)
            {
                parameters.Add(key: "Hb_time", value: paymentOrder.ConfirmationDate.Value.TimeOfDay.ToString());
                parameters.Add(key: "Hb_send_date", value: paymentOrder.ConfirmationDate.Value.Date.ToString("dd/MM/yy"));
            }
            else
            {
                parameters.Add(key: "ConfirmDateText", value: paymentOrder.ConfirmationDate.ToString() + ", " + paymentOrder.RegistrationTime);
                parameters.Add(key: "SentDate", value: paymentOrder.ConfirmationDate.Value.Date.ToString("dd/MM/yy"));
            }
            AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
            CustomerMainData   customerData       = _xBService.GetCustomerMainData(authorizedCustomer.CustomerNumber);

            parameters.Add(key: "seria", value: _xBInfoService.GetCurrencyLetter(paymentOrder.ReceiverAccount.Currency, convType));
            Dictionary <string, string> customerDetails = new Dictionary <string, string>();

            customerDetails = _xBService.GetOrderDetailsForReport(id);
            parameters.Add(key: "Customer_Info", value: customerData.CustomerDescription);
            parameters.Add(key: "Customer_address", value: customerDetails["cust_adress"]);
            parameters.Add(key: "cust_pass", value: customerDetails["passport_number"] + " " + customerDetails["passport_inf"] + " " + customerDetails["passport_date"]);


            response.Result = await _reportService.RenderReport($"/{_reportName}/{report}", parameters, ReportService.GetExportFormatEnumeration(exportFormat), $"{report}");

            response.ResultCode = ResultCodes.normal;
            return(response);
        }
Ejemplo n.º 13
0
        public async Task <SingleResponse <byte[]> > PrintTransfersAcbaStatement(long id, int lang, string exportFormat = "pdf")
        {
            SingleResponse <byte[]> response = new SingleResponse <byte[]>();

            PaymentOrder paymentOrder = _xBService.GetPaymentOrder(id);

            switch (paymentOrder.Type)
            {
            case XBS.OrderType.Convertation:
                return(PrintExchangeOrderStatement(id, lang, paymentOrder, exportFormat).Result);
            }
            if (paymentOrder.Quality == OrderQuality.Completed)
            {
                string policeCode              = "";
                string description             = paymentOrder.Description;
                long   policeResponseDetailsId = 0;
                int    regCode = 0;

                if (!String.IsNullOrEmpty(paymentOrder.CreditCode))
                {
                    description += ", " + paymentOrder.CreditCode + ", " + paymentOrder.Borrower + ", " + paymentOrder.MatureTypeDescription;
                }


                if (paymentOrder.Type == OrderType.RATransfer)
                {
                    BudgetPaymentOrder budgetPaymentOrder = new BudgetPaymentOrder();
                    if (paymentOrder.SubType != 5 && paymentOrder.SubType != 6)  //ՀՀ տարածքում / Հաշիվների միջև
                    {
                        paymentOrder = _xBService.GetPaymentOrder(id);
                    }
                    else  //Բյուջե / Ճանապարհային Ոստիկանություն փոխանցում
                    {
                        budgetPaymentOrder = _xBService.GetBudgetPaymentOrder(id);
                        paymentOrder       = budgetPaymentOrder;

                        policeCode = budgetPaymentOrder.PoliceCode == 0 ? "" : budgetPaymentOrder.PoliceCode.ToString();
                        policeResponseDetailsId = budgetPaymentOrder.PoliceResponseDetailsId;
                        regCode = budgetPaymentOrder.LTACode;
                    }
                }

                AuthorizedCustomer          authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                CustomerMainData            customerData       = _xBService.GetCustomerMainData(authorizedCustomer.CustomerNumber);
                Dictionary <string, string> parameters         = new Dictionary <string, string>();

                string sentTime = _xBService.GetInternationalTransferSentTime((int)id);

                parameters.Add(key: "cred_acc", value: paymentOrder.ReceiverAccount.AccountNumber + policeCode);
                parameters.Add(key: "deb_acc", value: paymentOrder.DebitAccount.AccountNumber.ToString());
                parameters.Add(key: "deb_bank", value: paymentOrder.DebitAccount.AccountNumber.Substring(0, 5).ToString());
                parameters.Add(key: "reg_date", value: paymentOrder.OperationDate.Value.ToString("dd/MMM/yyyy"));
                parameters.Add(key: "lang_id", value: lang.ToString());
                parameters.Add(key: "credit_bank", value: paymentOrder.ReceiverAccount.AccountNumber.Substring(0, 5));
                parameters.Add(key: "amount", value: paymentOrder.Amount.ToString());
                parameters.Add(key: "currency", value: paymentOrder.Currency.ToString());
                parameters.Add(key: "descr", value: description);
                parameters.Add(key: "confirm_date", value: paymentOrder.ConfirmationDate.Value.ToString("dd/MMM/yyyy"));
                parameters.Add(key: "for_HB", value: "1");
                parameters.Add(key: "doc_id", value: id.ToString());
                parameters.Add(key: "document_number", value: paymentOrder.OrderNumber.ToString());
                parameters.Add(key: "reciever", value: paymentOrder.Receiver != null ? paymentOrder.Receiver : "");

                if (paymentOrder.CreditorDescription != null)
                {
                    description += ", " + paymentOrder.CreditorDescription;
                    parameters.Add(key: "debtor_Name", value: paymentOrder.CreditorDescription);
                }

                if (paymentOrder.CreditorDocumentNumber != null)
                {
                    if (paymentOrder.CreditorDocumentType == 1)
                    {
                        description += ", ՀԾՀ " + paymentOrder.CreditorDocumentNumber;
                        parameters.Add(key: "debtor_soccard", value: paymentOrder.CreditorDocumentNumber);
                    }
                    else if (paymentOrder.CreditorDocumentType == 2)
                    {
                        description += ", Պարտատիրոջ ՀԾՀ չստանալու մասին տեղեկանքի համար " + paymentOrder.CreditorDocumentNumber;
                        parameters.Add(key: "debtor_soccard", value: paymentOrder.CreditorDocumentNumber);
                    }
                    else if (paymentOrder.CreditorDocumentType == 3)
                    {
                        description += ", Անձնագիր " + paymentOrder.CreditorDocumentNumber;
                    }
                    else if (paymentOrder.CreditorDocumentType == 4)
                    {
                        description += ", ՀՎՀՀ " + paymentOrder.CreditorDocumentNumber;
                        parameters.Add(key: "debtor_code_of_tax", value: paymentOrder.CreditorDocumentNumber);
                    }
                }

                if (paymentOrder.CreditorDeathDocument != null)
                {
                    description += ", Մահվան վկայական " + paymentOrder.CreditorDeathDocument;
                }
                if (paymentOrder.Fees != null)
                {
                    if (paymentOrder.Fees.Exists(m => m.Type == 20 || m.Type == 5))
                    {
                        double transferFee = paymentOrder.Fees.Find(m => m.Type == 20 || m.Type == 5).Amount;
                        parameters.Add(key: "commission", value: transferFee.ToString());
                    }
                }

                parameters.Add(key: "TransactionTime", value: sentTime);


                parameters.Add(key: "print_soc_card", value: customerData.CustomerType == 6 ? "True" : "False");
                parameters.Add(key: "is_copy", value: "False");
                parameters.Add(key: "reciever_tax_code", value: "");
                parameters.Add(key: "reg_code", value: regCode.ToString());
                parameters.Add(key: "cust_name", value: customerData.CustomerDescription);
                if (customerData.CustomerType != 6)
                {
                    parameters.Add(key: "tax_code", value: customerData.TaxCode);
                }

                parameters.Add(key: "quality", value: ((short)paymentOrder.Quality).ToString());
                parameters.Add(key: "police_code", value: policeResponseDetailsId.ToString());


                response.Result = await _reportService.RenderReport($"/{_reportName}/Payment_order", parameters, ReportService.GetExportFormatEnumeration(exportFormat), "Payment_order");
            }
            else
            {
                paymentOrder.Description = "Հայտը կատարված չէ։";
            }
            response.ResultCode = ResultCodes.normal;
            return(response);
        }
Ejemplo n.º 14
0
        public async Task <SingleResponse <byte[]> > PrintUtilitylOrder(long orderId)
        {
            SingleResponse <byte[]> response = new SingleResponse <byte[]>();
            List <KeyValuePair <string, string> > parametersForReport = new List <KeyValuePair <string, string> >();

            UtilityPaymentOrder paymentOrder       = new UtilityPaymentOrder();
            AuthorizedCustomer  authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();

            paymentOrder = _xBService.GetUtilityPaymentOrder(orderId);
            if (paymentOrder.Quality != OrderQuality.Completed)
            {
                response.ResultCode  = ResultCodes.failed;
                response.Description = "Գործարքը կատարված չէ։";
                return(response);
            }

            parametersForReport = _xBService.GetCommunalReportParametersIBanking(orderId, paymentOrder.CommunalType);
            switch (paymentOrder.CommunalType)
            {
            case XBS.CommunalTypes.ENA:
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "DocID", value: paymentOrder.Id.ToString());
                parameters.Add(key: "FilialCode", value: paymentOrder.FilialCode.ToString());
                parameters.Add(key: "OrderNum", value: paymentOrder.OrderNumber.ToString());
                parameters.Add(key: "RePrint", value: "1");
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "F_J", value: (paymentOrder.AbonentType == 1 ? "F" : "J"));
                parameters.Add(key: "Branch", value: paymentOrder.Branch.ToString());
                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/ElentricityPaymentReportPlPor", parameters, ExportFormat.PDF, "ElectricityPaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            case XBS.CommunalTypes.Gas:
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "RePrint", value: "1");
                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/GasProm_Payment_Report_Pl_Por", parameters, ExportFormat.PDF, "GasPromPaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            case XBS.CommunalTypes.ArmWater:
            {
                XBS.CustomerMainData customerData = _xBService.GetCustomerMainData(authorizedCustomer.CustomerNumber);
                string fullName = customerData.CustomerDescription;
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "RePrint", value: "1");
                parameters.Add(key: "PayerName", value: fullName);
                parameters.Add(key: "DebetAccount", value: paymentOrder.DebitAccount.AccountNumber);
                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/ArmWater_Payment_Report_Pl_Por", parameters, ExportFormat.PDF, "ArmWaterPaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            case XBS.CommunalTypes.YerWater:
            {
                XBS.CustomerMainData customerData = _xBService.GetCustomerMainData(authorizedCustomer.CustomerNumber);
                string fullName = customerData.CustomerDescription;
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "RePrint", value: "1");
                parameters.Add(key: "PayerName", value: fullName);
                parameters.Add(key: "DebetAccount", value: paymentOrder.DebitAccount.AccountNumber);
                parameters.Add(key: "OrderNumber", value: paymentOrder.OrderNumber);
                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/VeoliaJur_Payment_Report_Pl_Por", parameters, ExportFormat.PDF, "VeoliaJurPaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            case XBS.CommunalTypes.ArmenTel:
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "RePrint", value: "1");
                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/Armentel_Payment_Report_Pl_Por", parameters, ExportFormat.PDF, "ArmentelPaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            case XBS.CommunalTypes.VivaCell:
            {
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "RePrint", value: "1");

                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/VivaCell_Payment_Report_Pl_Por", parameters, ExportFormat.PDF, "VivaCellPaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            case XBS.CommunalTypes.Orange:
            {
                XBS.CustomerMainData customerData = _xBService.GetCustomerMainData(authorizedCustomer.CustomerNumber);
                string fullName = customerData.CustomerDescription;
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "RePrint", value: "1");
                parameters.Add(key: "eFOCode", value: "eFO 75-00-87/1#3");
                parameters.Add(key: "AmountCurrency", value: "AMD");



                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/Orange_Payment_Report_Pl_Por", parameters, ExportFormat.PDF, "OrangePaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            case XBS.CommunalTypes.UCom:
            {
                XBS.CustomerMainData customerData = _xBService.GetCustomerMainData(authorizedCustomer.CustomerNumber);
                string fullName = customerData.CustomerDescription;
                Dictionary <string, string> parameters = new Dictionary <string, string>();
                parameters.Add(key: "Cash", value: "0");
                parameters.Add(key: "RePrint", value: "1");
                foreach (KeyValuePair <string, string> oneParameter in parametersForReport)
                {
                    parameters.Add(key: oneParameter.Key, value: oneParameter.Value);
                }
                response.Result = await _reportService.RenderReport($"/{_reportName}/UCOM_Payment_Report_Pl_Por", parameters, ExportFormat.PDF, "UCOMPaymentReport");

                response.ResultCode = ResultCodes.normal;
                break;
            }

            default:
            {
                response.ResultCode  = ResultCodes.failed;
                response.Description = "Կոմունալի տեսակը որոշված չէ։";
                break;
            }
            }
            return(response);
        }
Ejemplo n.º 15
0
#pragma warning disable IDE0060 // Remove unused parameter
        public IActionResult SaveAndApproveNewTokenOrder([FromBody] TokenOperationRequest request)
#pragma warning restore IDE0060 // Remove unused parameter
        {
            if (ModelState.IsValid)
            {
                SingleResponse <long> response        = new SingleResponse <long>();
                double             DayLimit           = 400000;
                double             TransLimit         = 400000;
                AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                ulong id = _xBInfoService.GetLastKeyNumber(22000, 74);
                HBApplicationOrder order = new HBApplicationOrder()
                {
                    Source              = SourceType.MobileBanking,
                    HBApplication       = new HBApplication(),
                    HBApplicationUpdate = new HBApplicationUpdate
                    {
                        AddedItems       = new List <object>(),
                        DeactivatedItems = new List <object>(),
                        UpdatedItems     = new List <object>()
                    }
                };
                ActionResult result = _xBService.SaveAndApproveHBApplicationNewOrder(order, out HBToken hBToken, id, authorizedCustomer.UserId, DayLimit, TransLimit);
                if (result.ResultCode == (ResultCode)ResultCodes.normal)
                {
                    HBServletRequestOrder hBServletRequestOrder = new HBServletRequestOrder
                    {
                        RegistrationDate = DateTime.Now,
                        OperationDate    = _xBService.GetCurrentOperDay(),
                        ServletAction    = HBServletAction.ActivateToken,
                        Type             = OrderType.HBServletRequestTokenActivationOrder,
                        SubType          = 1,
                        CustomerNumber   = authorizedCustomer.CustomerNumber,
                        ServletRequest   = null,
                        Source           = SourceType.MobileBanking,
                        PhoneNumber      = GetCustomerRegPhone(authorizedCustomer.CustomerNumber),
                        HBtoken          = new HBToken
                        {
                            TokenNumber  = hBToken.TokenNumber,
                            DayLimit     = 400000,
                            TransLimit   = 400000,
                            ID           = hBToken.ID,
                            GID          = hBToken.GID,
                            TokenType    = hBToken.TokenType,
                            HBUser       = hBToken.HBUser,
                            IsRegistered = true
                        },
                        FilialCode = 22000
                    };

                    ActionResult saveActionResult = _xBService.SaveAndApproveTokenOrder(hBServletRequestOrder);
                    if ((saveActionResult.ResultCode == ResultCode.DoneAndReturnedValues || saveActionResult.ResultCode == ResultCode.Normal) && hBToken?.HBUser?.IsCas == false) //եթե հին մոբայլի user -  ը (iscas == false)  ստանում է նոր տոկեն աֆտոմատ սարքում ենք նոր մոբայլի user
                    {
                        _xBService.MigrateOldUserToCas(hBToken.HBUser.ID);
                    }
                    response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(saveActionResult.ResultCode);
                    response.Result      = saveActionResult.Id;
                    response.Description = utils.GetActionResultErrors(saveActionResult.Errors);
                }
                else
                {
                    response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(result.ResultCode);
                    response.Result      = result.Id;
                    response.Description = result?.Errors.Count > 0 ? _xBService.GetTerm(result?.Errors[0]?.Code ?? 0, null, Languages.hy) : default;
                }
                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Ejemplo n.º 16
0
        public async Task <IActionResult> SaveAndApproveTokenReplacementOrder([FromBody] TokenOperationRequest request)
        {
            if (ModelState.IsValid)
            {
                double oldDayLimit   = 400000;
                double oldTransLimit = 400000;
                if (!request.IsNewHbUser)
                {
                    SingleResponse <long> response = new SingleResponse <long>();
                    byte language = 1;
                    if (!string.IsNullOrEmpty(Request.Headers["language"]))
                    {
                        byte.TryParse(Request.Headers["language"], out language);
                    }
                    AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                    ulong              id             = _xBInfoService.GetLastKeyNumber(22000, 74);
                    List <HBToken>     activehBTokens = new List <HBToken>();
                    HBApplicationOrder order          = new HBApplicationOrder()
                    {
                        Source              = SourceType.MobileBanking,
                        HBApplication       = new HBApplication(),
                        HBApplicationUpdate = new HBApplicationUpdate
                        {
                            AddedItems       = new List <object>(),
                            DeactivatedItems = new List <object>(),
                            UpdatedItems     = new List <object>()
                        }
                    };
                    _xBService.Use(client =>
                    {
                        activehBTokens = client.GetFilteredHBTokensAsync(authorizedCustomer.UserId, HBTokenQuality.Active).Result;
                    });
                    oldDayLimit   = (activehBTokens.OrderByDescending(x => x.ActivationDate).FirstOrDefault()?.DayLimit ?? 0) != 0 ? activehBTokens.OrderByDescending(x => x.ActivationDate).FirstOrDefault().DayLimit : 400000;
                    oldTransLimit = (activehBTokens.OrderByDescending(x => x.ActivationDate).FirstOrDefault()?.TransLimit ?? 0) != 0 ? activehBTokens.OrderByDescending(x => x.ActivationDate).FirstOrDefault().TransLimit : 400000;
                    ActionResult result = _xBService.SaveAndApproveHBApplicationNewOrder(order, out HBToken hBToken, id, authorizedCustomer.UserId, oldDayLimit, oldTransLimit);
                    if (result.ResultCode == (ResultCode)ResultCodes.normal)
                    {
                        hBToken.HBUser.IsCas = true;
                        HBServletRequestOrder hBServletRequestOrder = new HBServletRequestOrder
                        {
                            RegistrationDate = DateTime.Now,
                            OperationDate    = _xBService.GetCurrentOperDay(),
                            ServletAction    = HBServletAction.ActivateToken,
                            Type             = OrderType.HBServletRequestTokenActivationOrder,
                            SubType          = 1,
                            CustomerNumber   = authorizedCustomer.CustomerNumber,
                            ServletRequest   = null,
                            Source           = SourceType.MobileBanking,
                            PhoneNumber      = GetCustomerRegPhone(authorizedCustomer.CustomerNumber),
                            HBtoken          = new HBToken
                            {
                                TokenNumber  = hBToken.TokenNumber,
                                DayLimit     = oldDayLimit,
                                TransLimit   = oldTransLimit,
                                ID           = hBToken.ID,
                                GID          = hBToken.GID,
                                TokenType    = hBToken.TokenType,
                                HBUser       = hBToken.HBUser,
                                IsRegistered = true
                            },
                            FilialCode = 22000
                        };
                        ActionResult saveActionResult = _xBService.SaveAndApproveTokenOrder(hBServletRequestOrder);
                        if (saveActionResult.ResultCode == ResultCode.DoneAndReturnedValues || saveActionResult.ResultCode == ResultCode.Normal) //եթե հին մոբայլի user -  ը (iscas == false)  ստանում է նոր տոկեն աֆտոմատ սարքում ենք նոր մոբայլի user
                        {
                            _xBService.MigrateOldUserToCas(hBToken.HBUser.ID);
                            response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(saveActionResult.ResultCode);
                            response.Result      = saveActionResult.Id;
                            response.Description = (Languages)language == Languages.hy ? "Ակտիվացման կոդը ուղարկվել է Ձեր էլ. փոստին, իսկ PIN կոդը կստանանք SMS-ի տեսքով:" : "The activation code was sent to your email. PIN code was sent by SMS.";
                        }
                        else
                        {
                            response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(saveActionResult.ResultCode);
                            response.Result      = saveActionResult.Id;
                            response.Description = saveActionResult.Errors[0].Code == 0 ? saveActionResult.Errors[0].Description : _xBService.GetTerm(saveActionResult.Errors[0].Code, null, (Languages)language);
                        }
                    }
                    else
                    {
                        response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(result.ResultCode);
                        response.Result      = result.Id;
                        response.Description = _xBService.GetTerm(result.Errors[0].Code, null, Languages.hy);
                    }
                    return(ResponseExtensions.ToHttpResponse(response));
                }
                else
                {
                    SingleResponse <long>      response     = new SingleResponse <long>();
                    ActionResult               result       = new ActionResult();
                    List <HBActivationRequest> hBActivation = new List <HBActivationRequest>();
                    HBApplicationOrder         order        = new HBApplicationOrder()
                    {
                        Source = SourceType.MobileBanking
                    };
                    HBActivationOrder      hBActivationOrder = new HBActivationOrder();
                    List <HBToken>         hBTokens          = new List <HBToken>();
                    HBToken                hBToken           = new HBToken();
                    HBApplication          hBApplication     = new HBApplication();
                    Task <List <HBToken> > hBTokensTask      = null;
                    Task <HBToken>         hBTokenTask       = null;
                    Task <HBApplication>   hBApplicationTask = null;
                    ulong id = _xBInfoService.GetLastKeyNumber(22000, 74);
                    AuthorizedCustomer authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                    byte language = 1;
                    if (!string.IsNullOrEmpty(Request.Headers["language"]))
                    {
                        byte.TryParse(Request.Headers["language"], out language);
                    }

                    _xBService.Use(client =>
                    {
                        hBTokensTask = client.GetFilteredHBTokensAsync(authorizedCustomer.UserId, HBTokenQuality.NotDefined);
                    });
                    _xBService.Use(client =>
                    {
                        hBTokenTask = client.GetHBTokenWithSerialNumberAsync(request.TokenSerial);
                    });
                    _xBService.Use(client =>
                    {
                        hBApplicationTask = client.GetHBApplicationAsync();
                    });
                    hBTokens      = await hBTokensTask;
                    hBApplication = await hBApplicationTask;
                    hBToken       = await hBTokenTask;
                    oldDayLimit   = (hBToken?.DayLimit ?? 0) != 0 ? hBToken.DayLimit : 400000;
                    oldTransLimit = (hBToken?.TransLimit ?? 0) != 0 ? hBToken.TransLimit : 400000;
                    if (authorizedCustomer.TypeOfClient != 6 && hBTokens.All(x => x.TokenType == HBTokenTypes.Token) && hBApplication?.ContractDate < new DateTime(2015, 7, 25)) // Ն-19051
                    {
                        response.ResultCode  = ResultCodes.validationError;
                        response.Description = (Languages)language == Languages.hy ? "Փոխարինման հայտը հնարավոր չէ ուղարկել: Խնդրում ենք դիմել Բանկ:" : "Can't send replacement request. Please contact the Bank.";
                        return(ResponseExtensions.ToHttpResponse(response));
                    }
                    if (hBToken == null)
                    {
                        result.ResultCode    = ResultCode.ValidationError;
                        response.Description = (Languages)language == Languages.hy ? "Տվյալ համարով տոկեն գոյություն չունի։" : "Token not exist.";
                        return(ResponseExtensions.ToHttpResponse(response));
                    }
                    HBServletRequestOrder hBServletRequestOrder = new HBServletRequestOrder
                    {
                        RegistrationDate = DateTime.Now,
                        OperationDate    = _xBService.GetCurrentOperDay(),
                        ServletAction    = HBServletAction.DeactivateToken,
                        Type             = XBS.OrderType.HBServletRequestTokenDeactivationOrder,
                        SubType          = 1,
                        CustomerNumber   = authorizedCustomer.CustomerNumber,
                        ServletRequest   = null,
                        Source           = SourceType.MobileBanking,
                        HBtoken          = hBToken,
                        FilialCode       = 22000
                    };
                    ActionResult saveActionResult = _xBService.SaveAndApproveTokenOrder(hBServletRequestOrder);
                    if (saveActionResult.ResultCode == (ResultCode)ResultCodes.normal)
                    {
                        result = _xBService.SaveAndApproveHBApplicationReplacmentOrder(order, ref hBToken, id, authorizedCustomer.UserId, request.TokenSerial, oldDayLimit, oldTransLimit);
                        if (result.ResultCode == (ResultCode)ResultCodes.normal)
                        {
                            hBServletRequestOrder.RegistrationDate = DateTime.Now;
                            hBServletRequestOrder.OperationDate    = _xBService.GetCurrentOperDay();
                            hBServletRequestOrder.ServletAction    = HBServletAction.ActivateToken;
                            hBServletRequestOrder.Type             = OrderType.HBServletRequestTokenActivationOrder;
                            hBServletRequestOrder.SubType          = 1;
                            hBServletRequestOrder.Source           = SourceType.MobileBanking;
                            hBServletRequestOrder.CustomerNumber   = authorizedCustomer.CustomerNumber;
                            hBServletRequestOrder.PhoneNumber      = GetCustomerRegPhone(authorizedCustomer.CustomerNumber);
                            hBServletRequestOrder.ServletRequest   = null;
                            hBServletRequestOrder.HBtoken          = new HBToken
                            {
                                TokenNumber  = hBToken.TokenNumber,
                                DayLimit     = oldDayLimit,
                                TransLimit   = oldTransLimit,
                                ID           = hBToken.ID,
                                GID          = hBToken.GID,
                                TokenType    = hBToken.TokenType,
                                HBUser       = hBToken.HBUser,
                                IsRegistered = true
                            };
                            hBServletRequestOrder.FilialCode = 22000;

                            ActionResult saveTokenResult = _xBService.SaveAndApproveTokenOrder(hBServletRequestOrder);
                            if ((saveTokenResult.ResultCode == ResultCode.DoneAndReturnedValues || saveTokenResult.ResultCode == ResultCode.Normal)) //եթե հին մոբայլի user -  ը (iscas == false)  ստանում է նոր տոկեն աֆտոմատ սարքում ենք նոր մոբայլի user
                            {
                                response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(saveTokenResult.ResultCode);
                                response.Result      = saveTokenResult.Id;
                                response.Description = (Languages)language == Languages.hy ? "Ակտիվացման կոդը ուղարկվել է Ձեր էլ. փոստին, իսկ PIN կոդը կստանանք SMS-ի տեսքով:" : "The activation code was sent to your email. PIN code was sent by SMS.";
                            }
                            else
                            {
                                response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(result.ResultCode);
                                response.Result      = result.Id;
                                response.Description = _xBService.GetTerm(saveTokenResult.Errors[0].Code, null, (Languages)language);
                            }
                        }
                        else
                        {
                            response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(result.ResultCode);
                            response.Result      = result.Id;
                            response.Description = _xBService.GetTerm(result.Errors[0].Code, null, (Languages)language);
                        }
                    }
                    else
                    {
                        response.ResultCode  = ResultCodeFormatter.FromPersonalAccountSecurityService(saveActionResult.ResultCode);
                        response.Result      = saveActionResult.Id;
                        response.Description = _xBService.GetTerm(saveActionResult.Errors[0].Code, null, (Languages)language);
                    }
                    return(ResponseExtensions.ToHttpResponse(response));
                }
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Ejemplo n.º 17
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            var      request  = context.ActionArguments["request"] as dynamic;
            Response response = new Response
            {
                ResultCode  = ResultCodes.validationError,
                Description = _localizer["Մուտքագրված տվյալները սխալ են կամ ոչ լիարժեք։"]
            };
            CustomerTokenInfo customerTokenInfo = _cacheHelper.GetCustomerTokenInfo();

            if (!string.IsNullOrEmpty(context.HttpContext.Request.Headers["SessionId"]) && customerTokenInfo != null)
            {
                string             sessionId          = context.HttpContext.Request.Headers["SessionId"];
                AuthorizedCustomer authorizedCustomer = new AuthorizedCustomer()
                {
                    CustomerNumber = customerTokenInfo.CustomerNumber,
                    UserId         = customerTokenInfo.UserId,
                    SessionID      = sessionId,
                    UserName       = customerTokenInfo.UserName,
                };
                if (customerTokenInfo.Checked == true && ((string)context.RouteData.Values["action"] == "SaveAndApproveTokenReplacementOrder" || (string)context.RouteData.Values["action"] == "SaveAndApproveTokenDeactivationOrder"))
                {
                    _cache.Set(sessionId + "_authorizedCustomer", authorizedCustomer);
                    _cache.Set(sessionId + "_Language", customerTokenInfo.Language);
                    _cache.Set(sessionId + "_SourceType", customerTokenInfo.SourceType);
                    _cache.Set(sessionId + "_ClientIp", context.HttpContext.Connection.RemoteIpAddress.ToString());
                }
                else
                {
                    if (!string.IsNullOrEmpty(request.Otp))
                    {
                        string otp = request.Otp;
                        if (!string.IsNullOrEmpty(sessionId) && !string.IsNullOrEmpty(otp))
                        {
                            if (customerTokenInfo == null || (customerTokenInfo != null && otp != customerTokenInfo?.Otp))
                            {
                                context.Result = ResponseExtensions.ToHttpResponse(response);
                            }
                            else
                            {
                                customerTokenInfo.Checked = true;
                                _cache.Set(sessionId + "_authorizedCustomer", authorizedCustomer);
                                _cache.Set(sessionId + "_Language", customerTokenInfo.Language);
                                _cache.Set(sessionId + "_SourceType", customerTokenInfo.SourceType);
                                _cache.Set(sessionId + "_ClientIp", context.HttpContext.Connection.RemoteIpAddress.ToString());
                            }
                        }
                        else
                        {
                            context.Result = ResponseExtensions.ToHttpResponse(response);
                        }
                    }
                    else
                    {
                        context.Result = ResponseExtensions.ToHttpResponse(response);
                    }
                }
            }
            else
            {
                context.Result = ResponseExtensions.ToHttpResponse(response);
            }
        }