public IActionResult ResetUserPassword(PasswordResetRequest request)
        {
            if (ModelState.IsValid)
            {
                SingleResponse <bool> response = new SingleResponse <bool>();

                var loginInfo = new LoginInfo();

                loginInfo.UserName = request.UserName;

                loginInfo.OTP = request.OTP;

                loginInfo.IpAddress = Request.HttpContext.Connection.RemoteIpAddress.ToString();

                response.Result = _xbSecurity.ResetUserPassword(loginInfo);

                response.ResultCode = ResultCodes.normal;

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 2
0
 public IActionResult GetAccounts()
 {
     if (ModelState.IsValid)
     {
         SingleResponse <List <Account> > response = new SingleResponse <List <Account> >();
         response.ResultCode = ResultCodes.normal;
         response.Result     = _xbService.GetAccounts();
         Parallel.ForEach(response.Result, x => x.HasContractFile = _xbService.HasUploadedContract(x.AccountNumber, 3));
         Parallel.ForEach(response.Result, m =>
         {
             if (m.AccountType == 11)
             {
                 m.ArcaBalance = _xbService.GetArcaBalance(m.AccountDescription.Substring(0, 16).Trim());
                 if (m.AccountNumber == "220000295380000" && Convert.ToBoolean(_config["TestVersion"]))
                 {
                     m.ArcaBalance = null;
                 }
             }
         });
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
Exemplo n.º 3
0
        public IActionResult SaveMatureOrder(MatureOrderRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <long>()
                {
                    ResultCode = ResultCodes.normal
                };
                if (request.Order.Type == OrderType.LoanMature)
                {
                    request.Order.Description = _xbInfoService.GetLoanMatureTypesForIBanking()
                                                .Where(x => x.Key == ((int)request.Order.MatureType)
                                                       .ToString())
                                                .First().Value;
                }
                if (request.Order.MatureType == MatureType.PartialRepayment)
                {
                    request.Order.MatureType = MatureType.RepaymentByCreditCode;
                }
                ActionResult saveResult = _xbService.SaveMatureOrder(request.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));
            }
        }
Exemplo n.º 4
0
        public IActionResult FastOverdraftValidations(CardNumberRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <long>()
                {
                    ResultCode = ResultCodes.normal
                };

                List <ActionError> result = _xbService.FastOverdraftValidations(request.CardNumber);

                if (result != null && result.Count > 0)
                {
                    response.ResultCode  = ResultCodes.failed;
                    response.Description = utils.GetActionResultErrors(result);
                }
                else
                {
                    response.ResultCode = ResultCodes.normal;
                }

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
 public IActionResult GetPeriodicDataChangeOrder(IdRequest request)
 {
     if (ModelState.IsValid)
     {
         var  authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
         bool hasPermission      = true;
         var  order    = _xbService.GetPeriodicDataChangeOrder(request.Id);
         var  response = new SingleResponse <PeriodicTransferDataChangeOrder>();
         if (authorizedCustomer.LimitedAccess != 0)
         {
             if (_xbService.HasProductPermission(order.DebitAccount.AccountNumber))
             {
                 hasPermission               = false;
                 response.ResultCode         = ResultCodes.failed;
                 response.Result.Description = "Տվյալները հասանելի չեն։";
             }
         }
         if (hasPermission)
         {
             if (order.Quality == OrderQuality.Declined)
             {
                 order.RejectReason = _xbService.GetOrderRejectReason(request.Id, order.Type);
             }
             response.Result     = order;
             response.ResultCode = ResultCodes.normal;
         }
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
        public IActionResult GetPeriodicTransfer(ProductIdRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <PeriodicTransfer>()
                {
                    ResultCode = ResultCodes.normal
                };
                response.Result = _xbService.GetPeriodicTransfer(request.ProductId);
                if (response.Result != null)
                {
                    if (response.Result.FeeAccount != null && (response.Result.FeeAccount.AccountNumber == "0" || response.Result.FeeAccount.AccountNumber == null))
                    {
                        response.Result.FeeAccount = null;
                    }
                    if (response.Result.ChargeType == 0)
                    {
                        response.Result.ChargeType = 1;
                    }
                    else
                    {
                        response.Result.ChargeType = 2;
                    }
                }

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
        public IActionResult SaveUtilityPeriodicPaymentOrder(PeriodicUtilityPaymentOrderRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <long>()
                {
                    ResultCode = ResultCodes.normal
                };
                ActionResult saveResult = _xbService.SaveUtilityPeriodicPaymentOrder(request.Order);

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

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                if (request == null)
                {
                    foreach (var item in ModelState.Keys)
                    {
                        if (item.ToString().ToLower() == "order.CheckDaysCount".ToLower())
                        {
                            return(ValidationError.GetTypeValidationErrorResponse(item, _localizer["Սխալ ստուգման օրերի քանակ"]));
                        }
                    }
                }
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
        public IActionResult SavePeriodicDataChangeOrder(PeriodicTransferDataChangeOrderRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <long>()
                {
                    ResultCode = ResultCodes.normal
                };
                if (request.Order.ChargeType == 1)
                {
                    request.Order.ChargeType = 0;
                }
                else if (request.Order.ChargeType == 2)
                {
                    request.Order.ChargeType = 1;
                }
                ActionResult saveResult = _xbService.SavePeriodicDataChangeOrder(request.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));
            }
        }
 public IActionResult GetBudgetPaymentOrder(IdRequest request)
 {
     if (ModelState.IsValid)
     {
         var  authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
         bool hasPermission      = true;
         var  order = _xBService.GetBudgetPaymentOrder(request.Id);
         order.ReceiverAccount.AccountNumber = order.ReceiverBankCode + order.ReceiverAccount.AccountNumber;
         SingleResponse <BudgetPaymentOrder> response = new SingleResponse <BudgetPaymentOrder>();
         response.ResultCode = ResultCodes.normal;
         if (authorizedCustomer.LimitedAccess != 0)
         {
             if (!_xBService.HasProductPermission(order.DebitAccount.AccountNumber) || (order.FeeAccount != null && order.FeeAccount.AccountNumber != "0" && !_xBService.HasProductPermission(order.FeeAccount.AccountNumber)))
             {
                 hasPermission               = false;
                 response.ResultCode         = ResultCodes.failed;
                 response.Result.Description = "Տվյալները հասանելի չեն։";
             }
         }
         if (hasPermission)
         {
             response.ResultCode = ResultCodes.normal;
             response.Result     = order;
         }
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
Exemplo n.º 10
0
        public IActionResult SaveBudgetPaymentOrder(BudgetPaymentOrderRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <long>()
                {
                    ResultCode = ResultCodes.normal
                };
                if (request.Order.ReceiverAccount.AccountNumber.StartsWith("10300"))
                {
                    request.Order.ReceiverBankCode = 10300; // ոստիկանության բանկի կոդ
                    request.Order.ReceiverAccount.AccountNumber = request.Order.ReceiverAccount.AccountNumber.Substring(5);
                }
                ActionResult saveResult = _xBService.SaveBudgetPaymentOrder(request.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));
            }
        }
Exemplo n.º 11
0
        public IActionResult GetMessages(MessagesRequest request)
        {
            if (ModelState.IsValid)
            {
                SingleResponse <List <Message> > response = new SingleResponse <List <Message> >();
                response.ResultCode = ResultCodes.normal;
                response.Result     = _xbService.GetMessages(request.DateFrom, request.DateTo, request.Type);
                if (request.Type == MessageType.Message)
                {
                    response.Result.AddRange(_xbService.GetMessages(request.DateFrom, request.DateTo, MessageType.Reminder));
                    response.Result.AddRange(_xbService.GetMessages(request.DateFrom, request.DateTo, MessageType.TransactionRefusal));
                }


                RegexOptions options = RegexOptions.None;
                Regex        regex   = new Regex("[ ]{2,}", options);
                for (int i = 0; i < response.Result.Count; i++)
                {
                    response.Result[i].Description = regex.Replace(response.Result[i].Description, " ");
                }

                response.Result = response.Result.OrderByDescending(x => x.SentDate).ToList();
                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 12
0
        public IActionResult GetDeposits(ProductQualityFilterRequest request)
        {
            if (ModelState.IsValid)
            {
                var authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                SingleResponse <List <Deposit> > response = new SingleResponse <List <Deposit> >()
                {
                    ResultCode = ResultCodes.normal
                };
                response.Result = _xbService.GetDeposits(request.Filter);
                if (authorizedCustomer.LimitedAccess != 0)
                {
                    response.Result.RemoveAll(m => _xbService.HasProductPermission(m.DepositAccount.AccountNumber, (ulong)m.ProductId));
                }

                Parallel.ForEach(response.Result, dep =>
                {
                    dep.ProductNote = _xbService.GetProductNote(Convert.ToDouble(dep.ProductId));
                });

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
 public IActionResult GetCardsForNewCreditLine(OrderTypeRequest request)
 {
     if (ModelState.IsValid)
     {
         SingleResponse <List <Card> > response = new SingleResponse <List <Card> >();
         response.Result = _xbService.GetCardsForNewCreditLine(request.OrderType);
         foreach (var card in response.Result)
         {
             if (card.CardNumber != null)
             {
                 card.ArCaBalance = _xbService.GetArcaBalance(card.CardNumber);
                 if (card.CardAccount.AccountNumber == "220000295380000" && Convert.ToBoolean(_config["TestVersion"]))
                 {
                     card.ArCaBalance = null;
                 }
             }
         }
         response.ResultCode = ResultCodes.normal;
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
 public IActionResult ValidateRegistrationCode([FromHeader][Required] string deviceTypeDescription, ValidateRegistrationCode request)
 {
     if (ModelState.IsValid)
     {
         var response = new SingleResponse <bool>()
         {
             ResultCode = ResultCodes.normal
         };
         byte language = 0;
         //Լեզու
         if (!string.IsNullOrEmpty(Request.HttpContext.Request.Headers["language"]))
         {
             byte.TryParse(Request.HttpContext.Request.Headers["language"], out language);
         }
         response.Result = _xbSecurity.CheckRegistrationCode(request.RegistrationCode, deviceTypeDescription, request.UserName);
         if (response.Result != true)
         {
             response.ResultCode  = ResultCodes.validationError;
             response.Description = _localizer["Մուտքագրված տվյալներ սխալ են կամ ոչ լիարժեք: Խնդրում ենք ստուգել օգտագործողի անունը և ակտիվացման կոդը։"];// "Wrong data. Please check the username and the activation code.";
         }
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
Exemplo n.º 15
0
 public IActionResult GetAccount(AccountNumberRequest request)
 {
     if (ModelState.IsValid)
     {
         SingleResponse <Account> response = new SingleResponse <Account>()
         {
             ResultCode = ResultCodes.normal
         };
         response.Result = _xbService.GetAccount(request.AccountNumber);
         response.Result.HasContractFile = _xbService.HasUploadedContract(response.Result.AccountNumber, 3);
         var overdraft = _xbService.GetCreditLines(ProductQualityFilter.Opened)
                         .Where(x => x.ConnectAccount.AccountNumber == response.Result.AccountNumber).ToList();
         response.Result.Overdraft = overdraft.FirstOrDefault();
         foreach (var item in overdraft)
         {
             if (item.Type == 25)
             {
                 response.Result.Overdraft = item;
             }
         }
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
Exemplo n.º 16
0
        public IActionResult GetLoan(ProductIdRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <Loan>()
                {
                    ResultCode = ResultCodes.normal
                };
                response.Result = _xbService.GetLoan(request.ProductId);
                response.Result.HasContractFile = _xbService.HasUploadedContract(response.Result.LoanAccount.AccountNumber, 0);

                List <ProductOtherFee> fees = new List <ProductOtherFee>();
                fees = _xbService.GetProductOtherFees(response.Result.ProductId).Where(x => x.Type == 1).ToList();

                if (fees.Count > 0)
                {
                    response.Result.RepaymentAmount = fees[0].Amount;
                }



                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 17
0
 public IActionResult GetAvailableCardsForCreditLine(ProductQualityFilterRequest request)
 {
     if (ModelState.IsValid)
     {
         var authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
         var response           = new SingleResponse <List <Card> >()
         {
             ResultCode = ResultCodes.normal
         };
         response.Result = _xbService.GetAvailableCardsForCreditLine(request.Filter);
         if (authorizedCustomer.LimitedAccess != 0)
         {
             response.Result.RemoveAll(m => !_xbService.HasProductPermission(m.CardAccount.AccountNumber, (ulong)m.ProductId));
         }
         foreach (var card in response.Result)
         {
             if (card.CardNumber != null)
             {
                 card.ArCaBalance = _xbService.GetArcaBalance(card.CardNumber);
                 if (card.CardAccount.AccountNumber == "220000295380000" && Convert.ToBoolean(_config["TestVersion"]))
                 {
                     card.ArCaBalance = null;
                 }
             }
         }
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
Exemplo n.º 18
0
        public IActionResult GetOpenedCards()
        {
            if (ModelState.IsValid)
            {
                SingleResponse <List <Card> > response = new SingleResponse <List <Card> >()
                {
                    ResultCode = ResultCodes.normal
                };
                List <Card> cards = _xbService.GetCards(ProductQualityFilter.Opened);
                cards.AddRange(_xbService.GetLinkedCards());

                foreach (var card in cards)
                {
                    card.ArCaBalance = _xbService.GetArcaBalance(card.CardNumber);
                    if (card.CardAccount.AccountNumber == "220000295380000" && Convert.ToBoolean(_config["TestVersion"]))
                    {
                        card.ArCaBalance = null;
                    }
                    card.CVVNote = _xbService.GetCVVNote((ulong)card.ProductId);
                }
                response.Result = cards;
                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 19
0
 public IActionResult GetPlasticCardOrder(OrderIdRequest request)
 {
     if (ModelState.IsValid)
     {
         var response = new SingleResponse <PlasticCardOrder>()
         {
             ResultCode = ResultCodes.normal
         };
         response.Result = _xbService.GetPlasticCardOrder(request.OrderId);
         if (response.Result.ServiceFeePeriodicityType == (ServiceFeePeriodicityType)_xBInfoService.GetServiceFeePeriodocityTypes()[0].Key)
         {
             response.Result.ServiceFeePeriodicityTypeDescription = _xBInfoService.GetServiceFeePeriodocityTypes()[0].Value;
         }
         else
         {
             response.Result.ServiceFeePeriodicityTypeDescription = _xBInfoService.GetServiceFeePeriodocityTypes()[1].Value;
         }
         if (response.Result.Quality == OrderQuality.Declined)
         {
             response.Result.RejectReason = _xbService.GetOrderRejectReason(request.OrderId, response.Result.Type);
         }
         response.Result.PlasticCard.ProductId = (ulong)_xbService.GetCardProductId(response.Result.PlasticCard.MainCardNumber, response.Result.CustomerNumber);
         return(ResponseExtensions.ToHttpResponse(response));
     }
     else
     {
         return(ValidationError.GetValidationErrorResponse(ModelState));
     }
 }
Exemplo n.º 20
0
        public IActionResult ApprovePlasticCardOrder(ApproveIdRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <long>()
                {
                    ResultCode = ResultCodes.normal
                };

                PlasticCardOrder order = _cacheHelper.GetApprovalOrder <PlasticCardOrder>(request.Id);
                if (order.Attachments != null)
                {
                    foreach (var item in order.Attachments)
                    {
                        item.AttachmentInBase64 = _xbService.GetOrderAttachmentInBase64(item.Id);
                    }
                }
                ActionResult saveResult = _xbService.ApprovePlasticCardOrder(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));
            }
        }
Exemplo n.º 21
0
        public IActionResult UpdateCustomerAccountRestConfig(RestConfigRequest request)
        {
            if (ModelState.IsValid)
            {
                SingleResponse <long> response = new SingleResponse <long>();
                var authorizedCustomer         = _cacheHelper.GetAuthorizedCustomer();

                request.ConfigurationItems.ForEach(item => {
                    item.CustomerNumber      = authorizedCustomer.CustomerNumber;
                    item.DigitalUserId       = authorizedCustomer.UserId;
                    item.RegistrationDate    = DateTime.Now;
                    item.ConfigurationTypeId = 2;
                });

                ActionResult saveResult = _xbService.UpdateCustomerAccountRestConfig(request.ConfigurationItems);
                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));
            }
        }
Exemplo n.º 22
0
        public IActionResult GetUserInfo()
        {
            SingleResponse <AuthorizationResponse> response = new SingleResponse <AuthorizationResponse>();

            string sessionId = "";
            byte   language  = 0;

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

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

            OnlineBankingUser onlineUserData = _xbSecurityService.CheckAuthorization(sessionId, language);

            if (onlineUserData.AuthorizationResult.IsAuthorized)
            {
                CustomerMainData customerMainData = _xbService.GetCustomerMainData(ulong.Parse(onlineUserData.CustomerNumber));

                if (customerMainData.CustomerType != 6)
                {
                    var str     = customerMainData.CustomerDescription;
                    var symbols = new string[] { "«", "»" };
                    foreach (var s in symbols)
                    {
                        str = str.Replace(s, "");
                    }

                    customerMainData.CustomerDescription = str;
                }

                response.Result           = new AuthorizationResponse();
                response.Result.SessionId = onlineUserData.SessionID;
                response.Result.PasswordChangeRequirement = onlineUserData.ChangeRequirement;
                response.Result.UserPermission            = onlineUserData.Permission;
                response.Result.FullName                 = customerMainData.CustomerDescription;
                response.Result.FullNameEnglish          = customerMainData.CustomerDescriptionEng;
                response.Result.IsLastConfirmer          = onlineUserData.IsLastConfirmer;
                response.Result.CustomerType             = (XBS.CustomerTypes)onlineUserData.TypeOfClient;
                response.Result.SecondConfirmRequirement = onlineUserData.SecondConfirm;
                response.Result.IsEmployee               = _xbService.IsEmployee(ulong.Parse(onlineUserData.CustomerNumber));
                response.Result.UserName                 = onlineUserData.UserName;
                response.ResultCode = ResultCodes.normal;
                try
                {
                    response.Result.TotalAvailableBalance = _xbService.GetUserTotalAvailableBalance(onlineUserData.UserID, ulong.Parse(onlineUserData.CustomerNumber));
                }
                catch (Exception)
                {
                    response.Result.TotalAvailableBalance = null;
                }
            }
            return(ResponseExtensions.ToHttpResponse(response));
        }
Exemplo n.º 23
0
        public IActionResult CheckSMSVerificationCodeByRegistrationToken([FromBody] VerificationCodeRequest request, [FromHeader(Name = "RegistrationToken")] string registrationToken)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <bool>();
                response.ResultCode = ResultCodes.normal;
                RegistrationCustomerData data;

                if (!string.IsNullOrEmpty(request.VerificationCode))
                {
                    data = new RegistrationCustomerData()
                    {
                        VerificationCode = request.VerificationCode, RegistrationToken = registrationToken
                    };
                    var result = _registrationManager.ContinueRegistrationProcess(data, RegistrationProcessSteps.CheckSMSVerificationCodeByRegistrationToken);

                    response.Description = result.Description;

                    if (result.ResultCode == ResultCode.Normal)
                    {
                        response.Result = true;
                    }
                    else if (result.ResultCode == ResultCode.ValidationError)
                    {
                        response.ResultCode = ResultCodes.validationError;
                    }
                }

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 24
0
        public IActionResult RegistratePhysicalCustomer([FromBody] CustomerRegParams regParams)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <CustomerRegistrationProcessResult>();
                response.ResultCode            = ResultCodes.normal;
                _registrationManager.RegParams = regParams;

                switch (regParams.RegType)
                {
                case TypeOfPhysicalCustomerRegistration.ByPersonalInformation:
                    response.Result = _registrationManager.RegistrateByPersonalInformation();
                    break;

                case TypeOfPhysicalCustomerRegistration.ByBankProductInformation:
                    response.Result = _registrationManager.RegistrateByBankProductInformation();
                    break;
                }

                //Որպեսզի front-end-ում parse-ի error chta
                if (response.Result.RegistrationResponseData.Count == 0)
                {
                    response.Result.RegistrationResponseData = null;
                }

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 25
0
        public IActionResult GetCards(ProductQualityFilterRequest request)
        {
            if (ModelState.IsValid)
            {
                var authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();

                SingleResponse <List <Card> > response = new SingleResponse <List <Card> >()
                {
                    ResultCode = ResultCodes.normal
                };
                List <Card> cards = _xbService.GetCards(request.Filter);
                if (request.Filter == ProductQualityFilter.Closed)
                {
                    cards = _xbService.GetClosedCardsForDigitalBanking();
                }
                else
                {
                    cards = _xbService.GetCards(request.Filter);
                    if (request.Filter == ProductQualityFilter.All)
                    {
                        cards.RemoveAll(m => m.ClosingDate != null);
                        cards.AddRange(_xbService.GetClosedCardsForDigitalBanking());
                        cards.AddRange(_xbService.GetnotActivatedVirtualCards());
                    }
                    cards.AddRange(_xbService.GetLinkedCards());
                }

                foreach (var card in cards)
                {
                    if (card.CardNumber != null)
                    {
                        card.ArCaBalance             = _xbService.GetArcaBalance(card.CardNumber);
                        card.CardAccount.ArcaBalance = card.ArCaBalance;
                        if (card.CardAccount.AccountNumber == "220000295380000" && Convert.ToBoolean(_config["TestVersion"]))
                        {
                            card.ArCaBalance = null;
                        }
                        card.CVVNote     = _xbService.GetCVVNote((ulong)card.ProductId);
                        card.FilialName  = _xBInfoService.GetFilialName(card.FilialCode);
                        card.ProductNote = _xbService.GetProductNote(card.ProductId);
                        if (card.Type == 51)  //VISA VIRTUAL
                        {
                            card.RealCVV = _xbService.GetVirtualCardDetails(card.CardNumber)?.Cvv;
                        }
                    }
                }
                response.Result = cards;
                if (authorizedCustomer.LimitedAccess != 0)
                {
                    response.Result.RemoveAll(m => !_xbService.HasProductPermission(m.CardAccount.AccountNumber, (ulong)m.ProductId));
                }
                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 26
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));
            }
        }
Exemplo n.º 27
0
        public IActionResult GetCard(ProductIdRequest request)
        {
            if (ModelState.IsValid)
            {
                SingleResponse <Card> response = new SingleResponse <Card>()
                {
                    ResultCode = ResultCodes.normal
                };
                Card card = new Card();
                card            = _xbService.GetCard(request.ProductId);
                card.CardStatus = _xbService.GetCardStatus(request.ProductId);
                if (card.CardStatus.StatusDescription == "ՏՐ")
                {
                    card.CardStatus.StatusDescription = _localizer["Տրամադրված"];
                }
                else
                {
                    card.CardStatus.StatusDescription = _localizer["Չտրամադրված"];
                }

                card.Password = _xbService.GetCardMotherName(request.ProductId);
                CardAdditionalInfo addInfo = _xbService.GetCardAdditionalInfo(request.ProductId);
                card.CardSMSPhone            = addInfo.SMSPhone;
                card.ReportReceivingType     = addInfo.ReportReceivingType;
                card.CardEmail               = addInfo.Email;
                card.ArCaBalance             = _xbService.GetArcaBalance(card.CardNumber);
                card.CardAccount.ArcaBalance = card.ArCaBalance;
                if (card.CardAccount.AccountNumber == "220000295380000" && Convert.ToBoolean(_config["TestVersion"]))
                {
                    card.ArCaBalance = null;
                }
                if (card.Type == 34 || card.Type == 40)
                {
                    card.CashBack = _xbService.GetCashBackAmount(request.ProductId);
                }
                if (card.Type == 41 || card.Type == 40)
                {
                    var MR = _xbService.GetCardMembershipRewards(card.CardNumber);
                    if (MR == null)
                    {
                        card.BonusBalance = 0;
                    }
                    else
                    {
                        card.BonusBalance = MR.BonusBalance;
                    }
                }
                card.FilialName = _xBInfoService.GetFilialName(card.FilialCode);
                response.Result = card;
                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
        public IActionResult GetCreditLine(ProductIdRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = new SingleResponse <CreditLine>()
                {
                    ResultCode = ResultCodes.normal
                };
                response.Result = _xbService.GetCreditLine(request.ProductId);
                response.Result.HasContractFile = _xbService.HasUploadedContract(response.Result.LoanAccount.AccountNumber, 1);
                List <CreditLineGrafik> grafik = _xbService.GetCreditLineGrafik((ulong)response.Result.ProductId);
                if (grafik.Count != 0)
                {
                    grafik.Sort((x, y) => x.EndDate.CompareTo(y.EndDate));
                    var selectedRow = grafik.Find(x => x.EndDate >= _xbService.GetNextOperDay() && x.Amount - x.MaturedAmount > 0);

                    if (selectedRow != null)
                    {
                        response.Result.NextRepaymentAmount = selectedRow.Amount - selectedRow.MaturedAmount;
                        response.Result.NextRepaymentDate   = selectedRow.EndDate;
                    }
                }
                //վարտային վարկային քիժ
                if (response.Result.ConnectAccount.AccountType == 11)
                {
                    response.Result.CardSystem = _xbService.GetCardByCardNumber(response.Result.CardNumber).CardSystem;
                }
                //Քարտային վարկային գիծ
                if (response.Result.ConnectAccount.AccountType == 11)
                {
                    response.Result.LoanAccount.CardSystem = _xbService.GetCardByCardNumber(response.Result.LoanAccount.ProductNumber).CardSystem;
                }

                response.Result.TotalDebt = Math.Abs(response.Result.Quality == 11 || response.Result.Quality == 12 ? response.Result.OutCapital : response.Result.CurrentCapital)
                                            + Math.Abs(response.Result.CurrentRateValue) + Math.Abs(response.Result.PenaltyAdd) + response.Result.JudgmentRate;
                if ((!string.IsNullOrWhiteSpace(response.Result.CardNumber)) && response.Result.CardNumber != "0")
                {
                    CreditLine overdraft = _xbService.GetCardOverDraft(response.Result.CardNumber);
                    response.Result.CardOverdraft = Math.Abs(overdraft.Quality == 11 || overdraft.Quality == 12 ? overdraft.OutCapital : overdraft.CurrentCapital)
                                                    + Math.Abs(overdraft.CurrentRateValue) + Math.Abs(overdraft.PenaltyAdd) + overdraft.JudgmentRate;
                    response.Result.TotalDebt += response.Result.CardOverdraft;
                }

                response.Result.PenaltyAdd -= response.Result.JudgmentRate;

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
Exemplo n.º 29
0
        public IActionResult GetMatureOrder(IdRequest request)
        {
            if (ModelState.IsValid)
            {
                var  authorizedCustomer = _cacheHelper.GetAuthorizedCustomer();
                bool hasPermission      = true;
                var  order = _xbService.GetMatureOrder(request.Id);
                order.SubType = 2;
                if (order.MatureType == MatureType.PartialRepayment)
                {
                    order.MatureType         = MatureType.PartialRepaymentByGrafik;
                    order.SubTypeDescription = _xbInfoService.GetLoanMatureTypesForIBanking().Where(x => x.Key == "9").FirstOrDefault().Value;
                }
                else if (order.MatureType == MatureType.RepaymentByCreditCode)
                {
                    order.MatureType         = MatureType.PartialRepayment;
                    order.SubTypeDescription = _xbInfoService.GetLoanMatureTypesForIBanking().Where(x => x.Key == "2").FirstOrDefault().Value;
                }
                else if (order.MatureType == MatureType.FullRepayment && order.Quality == OrderQuality.Draft)
                {
                    order.MatureType         = MatureType.PartialRepayment;
                    order.SubTypeDescription = _xbInfoService.GetLoanMatureTypesForIBanking().Where(x => x.Key == "2").FirstOrDefault().Value;
                }
                SingleResponse <MatureOrder> response = new SingleResponse <MatureOrder>();
                if (authorizedCustomer.LimitedAccess != 0)
                {
                    if (!_xbService.HasProductPermission(order.Account.AccountNumber))
                    {
                        hasPermission               = false;
                        response.ResultCode         = ResultCodes.failed;
                        response.Result.Description = "Տվյալները հասանելի չեն։";
                    }
                }

                if (hasPermission)
                {
                    if (order.Quality == OrderQuality.Declined)
                    {
                        order.RejectReason = _xbService.GetOrderRejectReason(request.Id, order.Type);
                    }
                    response.Result     = order;
                    response.ResultCode = ResultCodes.normal;
                }

                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }
        public IActionResult GetCreditLines(ProductQualityFilterRequest request)
        {
            if (ModelState.IsValid)
            {
                SingleResponse <List <CreditLine> > response = new SingleResponse <List <CreditLine> >();
                response.Result = _xbService.GetCreditLines(request.Filter);
                response.Result.RemoveAll(m => m.Type == 25 || m.Type == 18 || m.Type == 46 || m.Type == 36 || m.Type == 60);
                Parallel.ForEach(response.Result, x => x.HasContractFile = _xbService.HasUploadedContract(x.LoanAccount.AccountNumber, 1));
                Parallel.ForEach(response.Result, item =>
                {
                    List <CreditLineGrafik> grafik = _xbService.GetCreditLineGrafik((ulong)item.ProductId);
                    if (grafik.Count != 0)
                    {
                        grafik.Sort((x, y) => x.EndDate.CompareTo(y.EndDate));
                        var selectedRow = grafik.Find(x => x.EndDate >= _xbService.GetNextOperDay() && x.Amount - x.MaturedAmount > 0);

                        if (selectedRow != null)
                        {
                            item.NextRepaymentAmount = selectedRow.Amount - selectedRow.MaturedAmount;
                            item.NextRepaymentDate   = selectedRow.EndDate;
                        }
                    }
                    if (!string.IsNullOrWhiteSpace(item.CardNumber))
                    {
                        item.CardSystem = _xbService.GetCardSystem(item.CardNumber);
                    }
                    if (!string.IsNullOrWhiteSpace(item.LoanAccount.ProductNumber))
                    {
                        item.LoanAccount.CardSystem = _xbService.GetCardSystem(item.LoanAccount.ProductNumber);
                    }

                    item.TotalDebt = Math.Abs(item.Quality == 11 || item.Quality == 12 ? item.OutCapital : item.CurrentCapital)
                                     + Math.Abs(item.CurrentRateValue) + Math.Abs(item.PenaltyAdd) + item.JudgmentRate;
                    if ((!string.IsNullOrWhiteSpace(item.CardNumber)) && item.CardNumber != "0")
                    {
                        CreditLine overdraft = _xbService.GetCardOverDraft(item.CardNumber);
                        item.CardOverdraft   = Math.Abs(overdraft.Quality == 11 || overdraft.Quality == 12 ? overdraft.OutCapital : overdraft.CurrentCapital)
                                               + Math.Abs(overdraft.CurrentRateValue) + Math.Abs(overdraft.PenaltyAdd) + overdraft.JudgmentRate;
                        item.TotalDebt += item.CardOverdraft;
                    }

                    item.PenaltyAdd -= item.JudgmentRate;
                });
                response.ResultCode = ResultCodes.normal;
                return(ResponseExtensions.ToHttpResponse(response));
            }
            else
            {
                return(ValidationError.GetValidationErrorResponse(ModelState));
            }
        }