/// <summary>
        /// To desirealizeObject_On_TypeBase
        /// </summary>
        /// <param name="type"></param>
        /// <param name="response"></param>
        /// <returns></returns>
        private object desirealizeObject_On_TypeBase(int type, object response)
        {
            try
            {
                switch (type)
                {
                case 1:
                {
                    FareEnquiry_Response_Type1 Response = (FareEnquiry_Response_Type1)response;
                    return(Response);
                }

                case 2:
                {
                    FareEnquiry_Response_Type2 Response = (FareEnquiry_Response_Type2)response;
                    return(Response);
                }

                default:
                {
                    FareEnquiry_Response_Type3 Response = (FareEnquiry_Response_Type3)response;
                    return(Response);
                }
                }
            }
            catch
            {
                return(response);
            }
        }
        public IActionResult Fetch_NonTransact_TrainFare([FromBody] TrainFareRequest Request) //parameter will be as like /N
        {
            object        response = "";
            ErrorResponse error    = new ErrorResponse();

            if (!ModelState.IsValid || string.IsNullOrEmpty(Request.trainNo) || string.IsNullOrEmpty(Request.journyDate) || string.IsNullOrEmpty(Request.trainFrom) || string.IsNullOrEmpty(Request.trainTo) || string.IsNullOrEmpty(Request.trainClass) || string.IsNullOrEmpty(Request.quota))
            {
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "1000", ResponseMessage = "Invalid model", Status = "failed", ResponseResult = ""
                }));
            }
            if (string.IsNullOrEmpty(_irctcUrl) || string.IsNullOrEmpty(_irctc_userName) || string.IsNullOrEmpty(_irctc_password))
            {
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "1001", ResponseMessage = "No IRCTC configuration found", Status = "failed"
                }));
            }
            _irctcUrl = _irctcUrl + "taenqservices/avlFareenquiry/" + Request.trainNo + "/" + Request.journyDate + "/" + Request.trainFrom + "/" + Request.trainTo + "/" + Request.trainClass + "/" + Request.quota + "/N";
            try
            {
                CommunicationLog("OxiRail", "availableFareenquiry OUT->>" + JsonConvert.SerializeObject(Request.request).ToString(), Request.userSession);
                switch (Convert.ToInt32(Request.request.enquiryType))
                {
                case 1:
                {
                    FareEnquiry_Response_Type1 Response = new FareEnquiry_Response_Type1();
                    response = _booking.FindFareEnquiry(_irctcUrl, Request.request, Request.userSession, _authInfo);
                    Response = (FareEnquiry_Response_Type1)JsonConvert.DeserializeObject(response.ToString(), typeof(FareEnquiry_Response_Type1));
                    if (Response.bkgCfg != null)
                    {
                        error.Dispose();
                        CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(response).ToString(), Request.userSession);
                        return(Ok(new Application_ResponseWrapper()
                            {
                                ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = Response
                            }));
                    }
                    else
                    {
                        error = (ErrorResponse)JsonConvert.DeserializeObject(response.ToString(), typeof(ErrorResponse));
                        CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(error).ToString(), Request.userSession);
                        return(Ok(new Application_ResponseWrapper()
                            {
                                ResponseCode = "1000", ResponseMessage = error.errorMessage, Status = "Error", ResponseResult = ""
                            }));
                    }
                }

                case 2:
                {
                    FareEnquiry_Response_Type2 Response = new FareEnquiry_Response_Type2();
                    response = _booking.FindFareEnquiry(_irctcUrl, Request.request, Request.userSession, _authInfo);
                    Response = (FareEnquiry_Response_Type2)JsonConvert.DeserializeObject(response.ToString(), typeof(FareEnquiry_Response_Type2));
                    if (Response.bkgCfg != null)
                    {
                        error.Dispose();
                        CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(Response).ToString(), Request.userSession);
                        return(Ok(new Application_ResponseWrapper()
                            {
                                ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = Response
                            }));
                    }
                    else
                    {
                        error = (ErrorResponse)JsonConvert.DeserializeObject(response.ToString(), typeof(ErrorResponse));
                        CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(error).ToString(), Request.userSession);
                        return(Ok(new Application_ResponseWrapper()
                            {
                                ResponseCode = "1000", ResponseMessage = error.errorMessage, Status = "Error", ResponseResult = ""
                            }));
                    }
                }

                default:
                {
                    FareEnquiry_Response_Type3 Response = new FareEnquiry_Response_Type3();
                    response = _booking.FindFareEnquiry(_irctcUrl, Request.request, Request.userSession, _authInfo);
                    Response = (FareEnquiry_Response_Type3)JsonConvert.DeserializeObject(response.ToString(), typeof(FareEnquiry_Response_Type3));
                    if (Response.bkgCfg != null)
                    {
                        error.Dispose();
                        CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(Response).ToString(), Request.userSession);
                        return(Ok(new Application_ResponseWrapper()
                            {
                                ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = Response
                            }));
                    }
                    else
                    {
                        error = (ErrorResponse)JsonConvert.DeserializeObject(response.ToString(), typeof(ErrorResponse));
                        CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(error).ToString(), Request.userSession);
                        return(Ok(new Application_ResponseWrapper()
                            {
                                ResponseCode = "1000", ResponseMessage = error.errorMessage, Status = "Error", ResponseResult = ""
                            }));
                    }
                }
                }
            }
            catch (Exception e)
            {
                CommunicationLog("OxiRail", e.ToString(), Request.userSession);
                error.Dispose();
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "1000", ResponseMessage = "Api_Error or IRCTC Service Down", Status = "Error", ResponseResult = e
                }));
            }
        }