Esempio n. 1
0
        public IActionResult GetTrainSchedule([FromBody] TrainScheduleRequest Request) //string trainNo,string station, DateTime date,long? userSession)
        {
            try
            {
                string uri = string.Empty;
                if (!ModelState.IsValid || string.IsNullOrEmpty(Request.request.trainNo))
                {
                    return(Ok(new Application_ResponseWrapper()
                    {
                        ResponseCode = "1000", ResponseMessage = "Invalid model", Status = "failed"
                    }));
                }

                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"
                    }));
                }
                if (!string.IsNullOrEmpty(Convert.ToString(Request.request.journeyDate)) || !string.IsNullOrEmpty(Request.request.startingStationCode))
                {
                    uri = _irctcUrl + "taenqservices/trnscheduleEnq/" + Request.request.trainNo + "?" + "journeyDate=" + Convert.ToString(Request.request.journeyDate) + "&&" + "startingStationCode=" + Request.request.startingStationCode;
                }
                else
                {
                    uri = _irctcUrl + "taenqservices/trnscheduleEnq/" + Request.request.trainNo;
                }

                CommunicationLog("OxiRail", "TrainSceduleEnquiry IN->>:" + uri + ":" + JsonConvert.SerializeObject(Request.request).ToString(), Request.userSession);
                var response = _enquiry.GetTrainSchedule(uri, Request.userSession, _authInfo);
                CommunicationLog("OxiRail", "TrainSceduleEnquiry OUT->>" + JsonConvert.SerializeObject(response).ToString(), Request.userSession);

                var trainScheduleResponse = JsonConvert.DeserializeObject <TrainScheduleResponse>(response.ToString());
                if (trainScheduleResponse.stationList == null)
                {
                    var errorResponse = JsonConvert.DeserializeObject <ErrorResponse>(response.ToString());
                    return(Ok(new Application_ResponseWrapper()
                    {
                        ResponseCode = "0", ResponseMessage = errorResponse.errorMessage, Status = "Error", ResponseResult = ""
                    }));
                }
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = trainScheduleResponse
                }));
            }
            catch (Exception ex)
            {
                return(Ok(new Application_ResponseWrapper()
                {
                    ResponseCode = "1005", ResponseMessage = "Api_Error", Status = "Error", ResponseResult = ex
                }));
            }
        }