Esempio n. 1
0
        public IEnumerable <TrainAvailableChairsRequest> TrainAvailableChairsRequestBuilder(GetRoutesResponse routesResponse)
        {
            List <TrainAvailableChairsRequestItem> requestItems = new List <TrainAvailableChairsRequestItem>();

            foreach (Route route in routesResponse.Data.Routes)
            {
                foreach (Train train in route.Train)
                {
                    if (int.TryParse(train.Trainno, out int trainNumber) && DateTime.TryParseExact(train.DepartureTime, "dd/MM/yyyy HH:mm:ss", null, DateTimeStyles.None, out DateTime departureTime) && int.TryParse(train.OrignStation, out int originStation) && int.TryParse(train.DestinationStation, out int destinationStation))
                    {
                        TrainAvailableChairsRequestItem requestItem = new TrainAvailableChairsRequestItem()
                        {
                            trainNumber = trainNumber,
                            trainDate   = departureTime.Date,
                            fromStation = originStation,
                            destStation = destinationStation
                        };
                        requestItems.Add(requestItem);
                    }
                }
            }
            List <TrainAvailableChairsRequest> requests = new List <TrainAvailableChairsRequest>();

            for (int i = 0; i < requestItems.Count; i += 17)
            {
                TrainAvailableChairsRequest request = new TrainAvailableChairsRequest()
                {
                    lstTrainAvailableChairsQuery = requestItems.GetRange(i, Math.Min(17, requestItems.Count - i)).ToArray()
                };
                requests.Add(request);
            }
            return(requests);
        }
Esempio n. 2
0
        public async Task <TrainAvailableChairsResponse> TrainAvailableChairs(TrainAvailableChairsRequest request)
        {
            string json                    = JsonConvert.SerializeObject(request);
            string encodedJson             = json.Replace("\"", "%22");
            NameValueCollection parameters = HttpUtility.ParseQueryString(string.Empty);

            parameters["method"]  = "TrainAvailableChairs";
            parameters["jsonObj"] = encodedJson;
            UriBuilder ub = new UriBuilder()
            {
                Path  = "_layouts/15/SolBox/TrainAvailableChairsHandler.ashx",
                Query = HttpUtility.UrlDecode(parameters.ToString())
            };
            string     uri    = ub.Uri.PathAndQuery;
            HttpClient client = _clientFactory.CreateClient("RailApi");

            using (HttpResponseMessage response = await client.PostAsync(uri, null))
            {
                response.EnsureSuccessStatusCode();
                TrainAvailableChairsResponse result = await response.Content.ReadAsAsync <TrainAvailableChairsResponse>();

                if (result.clsResult.returnCode != 1)
                {
                    throw new Exception(result.clsResult.returnDescription);
                }
                return(result);
            }
        }