示例#1
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));
            }
        }
示例#2
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));
        }
示例#3
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));
            }
        }
示例#4
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));
            }
        }