public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } Delay = await _context.Delay .Include(d => d.Ticket).FirstOrDefaultAsync(m => m.ID == id); if (Delay == null) { return(NotFound()); } ViewData["TicketID"] = new SelectList(_context.Set <Ticket>(), "ID", "TicketName"); using (var httpClient = new HttpClient()) { using (var response = await httpClient.GetAsync("http://api.irail.be/stations/?format=json&lang=en")) { string apiResponse = await response.Content.ReadAsStringAsync(); StationApi stationApi = new StationApi(); stationApi = JsonConvert.DeserializeObject <StationApi>(apiResponse); StationApiQ = stationApi.Station.AsQueryable <TrainStation>().OrderBy(s => s.Name); } } return(Page()); }
protected override void HandleRequest() { string stationToken = Parameters["session_token"]; string userID = Parameters["user_ID"]; if (stationToken == null || userID == null) { throw new FormatException("One of parameters is missing: email/password/session_token/userID"); } StationApi.SignOff(new WebClient(), stationId, stationToken, userID); Model.DriverCollection.Instance.Remove(Query.EQ("_id", userID)); Driver driver = Model.DriverCollection.Instance.FindOne(); if (driver == null) { Model.StationCollection.Instance.RemoveAll(); } RespondSuccess(); }
private string SignUpStation(string email, string password, WebClient agent) { StationApi api = StationApi.SignUp(agent, stationId, email, password); api.LogOn(agent, StatusChecker.GetDetail()); return(api.Token); }
public async Task OnGetAsync(string sortOrder, string searchString, int?pageIndex) { currentSort = sortOrder; IdSort = String.IsNullOrEmpty(sortOrder) ? "id_desc" : ""; NameSort = sortOrder == "name_desc" ? "name_asce" : "name_desc"; CurrentFilter = searchString; /*ApiClient<TrainStation> apiClient = new ApiClient<TrainStation>(new Uri("http://api.irail.be")); * List<TrainStation> trainStations = await apiClient.GetStrainStations(); * IQueryable<TrainStation> stationApiQ = trainStations.AsQueryable<TrainStation>;*/ IQueryable <TrainStation> stationApiQ; using (var httpClient = new HttpClient()) { using (var response = await httpClient.GetAsync("http://api.irail.be/stations/?format=json&lang=en")) { string apiResponse = await response.Content.ReadAsStringAsync(); StationApi stationApi = new StationApi(); stationApi = JsonConvert.DeserializeObject <StationApi>(apiResponse); stationApiQ = stationApi.Station.AsQueryable <TrainStation>(); } } if (!String.IsNullOrEmpty(searchString)) { stationApiQ = stationApiQ.Where(s => s.Name.Contains(searchString) || s.ID.Contains(searchString)); } switch (sortOrder) { case "id_desc": stationApiQ = stationApiQ.OrderByDescending(s => s.ID); break; case "name_desc": stationApiQ = stationApiQ.OrderByDescending(s => s.Name); break; case "name_asce": stationApiQ = stationApiQ.OrderBy(s => s.Name); break; default: stationApiQ = stationApiQ.OrderBy(s => s.ID); break; } StationList = PaginatedList <TrainStation> .Create(stationApiQ, pageIndex ?? 1, 10); }
// GET: Default public async Task <IActionResult> Index() { PaginatedList <TrainStation> stationList = (PaginatedList <TrainStation>) new List <TrainStation>(); using (var httpClient = new HttpClient()) { using (var response = await httpClient.GetAsync("http://api.irail.be/stations/?format=json&lang=en")) { string apiResponse = await response.Content.ReadAsStringAsync(); StationApi stationApi = new StationApi(); stationApi = JsonConvert.DeserializeObject <StationApi>(apiResponse); stationList = PaginatedList <TrainStation> .Create((IQueryable <TrainStation>) stationApi.Station, 1, 10); } } return(View(stationList)); }
public async Task <IActionResult> OnGetAsync() { ViewData["TicketID"] = new SelectList(_context.Set <Ticket>(), "ID", "TicketName"); using (var httpClient = new HttpClient()) { using (var response = await httpClient.GetAsync("http://api.irail.be/stations/?format=json&lang=en")) { string apiResponse = await response.Content.ReadAsStringAsync(); StationApi stationApi = new StationApi(); stationApi = JsonConvert.DeserializeObject <StationApi>(apiResponse); StationApiQ = stationApi.Station.AsQueryable <TrainStation>().OrderBy(s => s.Name); } } return(Page()); }
public async Task OnGetAsync(string id) { using (var httpClient = new HttpClient()) { using (var response = await httpClient.GetAsync("http://api.irail.be/stations/?format=json&lang=en")) { string apiResponse = await response.Content.ReadAsStringAsync(); StationApi stationApi = new StationApi(); stationApi = JsonConvert.DeserializeObject <StationApi>(apiResponse); IQueryable <TrainStation> stationApiQ = stationApi.Station.AsQueryable <TrainStation>(); Station = stationApiQ.FirstOrDefault(s => s.ID == id); } string StationId = Station.ID.Substring(Station.ID.Length - 9); UrlPictureStation = "https://github.com/iRail/stations/blob/master/Pictures/" + StationId + ".jpg?raw=true"; } }
protected override void HandleRequest() { string email = Parameters["email"]; string password = Parameters["password"]; try { StationInfo stationInfo = StationCollection.Instance.FindOne(); if (stationInfo != null) { logger.DebugFormat("Station logon with stationId = {0}", stationInfo.Id); StationLogOnResponse logonRes; if (email != null && password != null) { using (WebClient agent = new WebClient()) { Driver driver = DriverCollection.Instance.FindOne(Query.EQ("email", email)); if (driver == null) { throw new InvalidOperationException("User is not registered to this station"); } // station.logon must be called before user.login to handle non-existing driver case logonRes = StationApi.LogOn(new WebClient(), stationInfo.Id, email, password, StatusChecker.GetDetail()); User user = User.LogIn(agent, email, password); // update user's session token driver.session_token = user.Token; DriverCollection.Instance.Save(driver); } } else { StationApi api = new StationApi(stationInfo.Id, stationInfo.SessionToken); logonRes = api.LogOn(new WebClient(), StatusChecker.GetDetail()); } // update session in DB stationInfo.SessionToken = logonRes.session_token; StationCollection.Instance.Save(stationInfo); logger.Debug("Station logon successfully, disable block auth of function server"); functionServer.BlockAuth(false); } logger.Debug("Start function server"); functionServer.Start(); stationTimer.Start(); logger.Debug("Start function server successfully"); RespondSuccess(); } catch (WammerCloudException e) { if (e.WammerError == 0x4000 + 3) // driver already registered another station { logger.Error("Driver already registered another station"); // force user re-register the station on next startup CleanDB(); // function server should be stopped if driver's info is removed logger.Debug("Try to stop function server"); functionServer.Stop(); stationTimer.Stop(); throw new ServiceUnavailableException("Driver already registered another station", (int)StationApiError.AlreadyHasStaion); } else if (e.WammerError == 0x4000 + 4) // user does not exist { logger.Error("Driver account does not exist"); // force user re-register the station on next startup CleanDB(); // function server should be stopped if driver's info is removed logger.Debug("Try to stop function server"); functionServer.Stop(); stationTimer.Stop(); throw; } else { throw; } } }