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)); } }
#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)); }
#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)); } }
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)); } }