/// <summary>
        /// Change Configuration Time Accordin to Needs
        /// </summary>
        /// <param name="requestModel"></param>
        /// <returns></returns>
        public BaseResponseModel ChangeTime(ConfigurationTimeModel requestModel)
        {
            BaseResponseModel responseModel = new BaseResponseModel();

            VerificationCase.SmsReceivingInterval = requestModel.SmsReceivingInterval;
            VerificationCase.SmsSendingInterval = requestModel.SmsSendingInterval;
            VerificationCase.threeAttemptsByServer = requestModel.threeAttemptsByServer;
            VerificationCase.SenderInactiveTime = requestModel.SenderInactiveTime;
            VerificationCase.MaximumWaitTime = requestModel.MaximumWaitTime;

            responseModel.IsValid = true;
            responseModel.Error = null;
            return responseModel;
        }
        /// <summary>
        /// Add Pool If Not Already Exist
        /// </summary>
        /// <param name="PoolName"></param>
        /// <param name="ParentPoolName"></param>
        /// <param name="CountryCode"></param>
        /// <returns></returns>
        public BaseResponseModel AddPool(string PoolName, string ParentPoolName, List<string> CountryCode)
        {
            BaseResponseModel responseModel = new BaseResponseModel();

            var IsExist = VerificationCase.PoolList.Where(x => x.PoolName == PoolName).Any(); //Check If Pool exist
            if (IsExist)
            {
                responseModel.IsValid = false;
                responseModel.Error = "Pool With Same Name Already Exist";
                return responseModel;
            }

            if(CountryCode  == null || CountryCode.Count == 0)
            {
                responseModel.IsValid = false;
                responseModel.Error = "Add Atleast One Country To Pool";
                return responseModel;
            }


            if (ParentPoolName == "")  //Mark PoolName as Null if Not Given
            {
                ParentPoolName = null;
            }

            VerificationCase.PoolList.Add(   //Add To Pool
                new CountryPoolModel()
                {
                    PoolName = PoolName,
                    ParentPoolName = ParentPoolName,
                    CountryCodes = CountryCode
                });

            responseModel.IsValid = true;
            responseModel.Error = null;
            return responseModel;
        }
        /// <summary>
        /// Retrurn Sms Response to Client
        /// </summary>
        /// <param name="requestId"></param>
        /// <returns></returns>
        public BaseResponseModel Verifystatus(int requestId)
        {
            BaseResponseModel responseModel = new BaseResponseModel();

            var IfRequestExist = listOfSmsModel.Where(x => x.UniqueId == requestId).Any();

            if (!IfRequestExist)
            {
                responseModel.IsValid = false;
                responseModel.Error = "Service Unavailable Try Again Later";
                return responseModel;
            }

            var GetSmsRequestObject = listOfSmsModel.Where(x => x.UniqueId == requestId).FirstOrDefault();

            if (GetSmsRequestObject.IsSmsSuccessfull == true)
            {
                responseModel.IsValid = true;
                responseModel.Error = null;
                return responseModel;
            }

            else
            {
                responseModel.IsValid = false;
                if (GetSmsRequestObject.ErrorMessage == "InvalidNumber Or NetworkProblem")
                {
                    responseModel.Error = GetSmsRequestObject.ErrorMessage;
                    return responseModel;
                }

                responseModel.Error = "Service Unavailable Try Again Later";
                return responseModel;
            }
        }