public async Task <IActionResult> VerifyOtp(int profileId, [FromBody] VerifyOtpRequest request)
        {
            var verifyOtpCommand = new VerifyOtpCommand(profileId, request);
            var result           = await mediator.Send(verifyOtpCommand);

            return(StatusCode((int)result.Code, result.Value));
        }
        public void UnitTest2(VerifyOtpRequest verifyOtpRequest)
        {
            var ActualResult = _smsBiz.VerifyOtpSms(verifyOtpRequest);

            Assert.NotNull(ActualResult);
            Assert.NotNull(ActualResult.ErrorList);
            Assert.True(ActualResult.StatusCode == 400);
            Assert.Null(ActualResult.Response);
        }
        public async Task <IHttpActionResult> VerifyOTP(VerifyOtpRequest verifyOtp)
        {
            try
            {
                var isOTPValid = await _unitOfWork.GetForgotPasswordRepository().VerifyOTP(verifyOtp.OTP, verifyOtp.UserId);

                if (isOTPValid)
                {
                    return(Ok("OTP is valid"));
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
        /// <summary>
        /// Verifies the otp.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public async Task <APIResponse> VerifyOtp(ProfileIdDetails details, VerifyOtpRequest request)
        {
            try
            {
                var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName);

                var         param       = JsonConvert.SerializeObject(request);
                HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json");

                var response = await client.PostAsync(servicesConfig.Identity + IdentityServiceOperation.VerifyOtp(details.ProfileId), contentPost);

                return(new APIResponse(response.StatusCode));
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception in method 'VerifyOtp()'");
                var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                return(new APIResponse(exMessage, HttpStatusCode.InternalServerError));
            }
        }
        public SmsApiResponse VerifyOtpSms(VerifyOtpRequest smsRequest)
        {
            SmsApiResponse smsApiResponse = new SmsApiResponse()
            {
                StatusCode = 200
            };

            if (smsRequest != null)
            {
                if (string.IsNullOrWhiteSpace(smsRequest.Mobile))
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest.Mobile) + " is required.", nameof(smsRequest.Mobile));
                    return(smsApiResponse);
                }

                if (!Regex.IsMatch(smsRequest.Mobile, RegexPattern.mobile_number_validation_Patterns.GetCombinedPattern()))
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest.Mobile) + " should be valid. Format -: xxxxxxxxxx ", nameof(smsRequest.Mobile));
                    return(smsApiResponse);
                }

                if (smsRequest.CountryCode <= 0)
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest.CountryCode) + " is required.", nameof(smsRequest.CountryCode));
                    return(smsApiResponse);
                }

                if (string.IsNullOrWhiteSpace(smsRequest.Otp))
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest.Otp) + " is required.", nameof(smsRequest.Otp));
                    return(smsApiResponse);
                }

                Msg91VerifyOtpRequest msg91VerifyOtpRequest = new Msg91VerifyOtpRequest()
                {
                    mobile = string.Format("{0}{1}", smsRequest.CountryCode, smsRequest.Mobile),
                    otp    = smsRequest.Otp
                };

                Msg91ApiResponse msg91ApiResponse = _msg91.VerifyOtpSms(msg91VerifyOtpRequest);
                if (msg91ApiResponse.StatusCode == 200)
                {
                    BaseResponse baseResponse = msg91ApiResponse.MessageResponse;
                    if (string.Equals(baseResponse.Type, "error", StringComparison.OrdinalIgnoreCase))
                    {
                        smsApiResponse.StatusCode = 400;
                        smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, baseResponse.Message);
                    }
                    else
                    {
                        smsApiResponse.StatusCode = 200;
                        smsApiResponse.Response   = new SmsResponse()
                        {
                            Message = baseResponse.Message, RequestId = baseResponse.RequestId, Type = baseResponse.Type
                        };
                    }
                }
                else
                {
                    smsApiResponse.StatusCode = 400;
                    smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, "otp not verified");
                }
            }
            else
            {
                smsApiResponse.StatusCode = 400;
                smsApiResponse.ErrorList  = GetSmsApiValidationResponses(1001, nameof(smsRequest) + " is required.", nameof(smsRequest));
            }
            return(smsApiResponse);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="VerifyOtpCommand"/> class.
 /// </summary>
 /// <param name="profileId">The profile identifier.</param>
 /// <param name="request">The request.</param>
 public VerifyOtpCommand(int profileId, VerifyOtpRequest request)
 {
     Request   = request;
     ProfileId = profileId;
 }
        public async Task <IActionResult> VerifyOtp(int profileId, [FromBody] VerifyOtpRequest request)
        {
            var result = await userService.VerifyOtp(new ProfileIdDetails(profileId), request);

            return(StatusCode((int)result.Code, result.Value));
        }
 public SmsApiResponse VerifyOtp(VerifyOtpRequest verifyOtpRequest)
 {
     return(_smsBiz.VerifyOtpSms(verifyOtpRequest));
 }
Example #9
0
        public IActionResult PostRedemption([FromBody] AccountStatementViewModel model)
        {
            var _user = new AuthenticateResponse
            {
                MembershipKey = 1006979,                   //1007435,
                EmailAddress  = "*****@*****.**", //"*****@*****.**",
                FirstName     = "Tolulope",
                LastName      = "Olusakin",
                FullName      = "Olusakin Tolulope S" //"Funmilayo Ruth Adeyemi",
                                                      //MembershipKey = 1007435,
                                                      //EmailAddress = "*****@*****.**",
                                                      //FirstName = "Funmilayo",
                                                      //LastName = "Adeyemi",
                                                      //FullName = "Funmilayo Ruth Adeyemi",
            };
            var _sessionID = "fb2e77d.47a0479900504cb3ab4a1f626d174d2d";

            try
            {
                var redeemedProducts = "RedeemedProducts::";
                var json             = JsonConvert.SerializeObject(model.Product);
                var list             = JsonConvert.DeserializeObject <List <RedemptionProduct> >(json);
                foreach (var item in list)
                {
                    redeemedProducts += "ProductCode:" + item.ProductCode + ";";
                    redeemedProducts += "Amount:" + item.Amount + ";";
                }
                ;

                Redemption redemption = new Redemption
                {
                    CustomerReference = _user.MembershipKey.ToString(),
                    RedeemedProducts  = redeemedProducts,
                    Amount            = model.TotalAmount,
                    Reason            = model.Reason,
                    ReasonOther       = model.ReasonOthers
                };

                db.Redemptions.Add(redemption);
                db.SaveChanges();

                var accountsRequest = new SummaryRequest
                {
                    MembershipNumber = _user.MembershipKey
                };
                var accountsResponse = _clientService.GetAccountSummary(accountsRequest);

                VerifyOtpRequest OtpRequest = new VerifyOtpRequest {
                    OtpCode = model.Otp, SessionId = _sessionID.ToString()
                };

                var reRequest = new RedemptionRequest
                {
                    MembershipNumber = _user.MembershipKey.ToString(),
                    Products         = model.Product,
                    TotalAmount      = model.TotalAmount,
                    VerifyOtp        = OtpRequest,
                    Source           = "Client Portal"
                };
                var reResponse = _clientService.Redemption(reRequest);

                if (reResponse != null)
                {
                    return(Json(reResponse));
                }
                else
                {
                    return(StatusCode((int)HttpStatusCode.ExpectationFailed, "No response from the server."));
                }
            }
            catch (Exception ex)
            {
                TempData["message"] = ViewBag.Message = ex.Message;
                Utilities.ProcessError(ex, _contentRootPath);
                _logger.LogError(null, ex, ex.Message);
            }
            return(View());
        }