public async Task <ActionResult <RaceItem> > PostRaceItem(RaceItem item) { //item.Owner = User.Identity.Name; item.FreeSeats = item.Seats; _context.RaceItems.Add(item); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetRaceItem), new { id = item.Id }, item)); }
public static RaceItem ProcessJSONToRaceItem(String jsonString) { RaceItem raceItem = JsonConvert.DeserializeObject <RaceItem>(jsonString); JObject json = JObject.Parse(jsonString); JArray runners = (JArray)json["runners"]; List <RunnerItem> runnerList = runners.ToObject <List <RunnerItem> >(); runnerList.Sort((x, y) => x.Odds.CompareTo(y.Odds)); raceItem.SetRunnerList(runnerList); return(raceItem); }
public void updateRace(RaceItem raceItem) { LRaceCourse.Text = string.Format(Strings.info_course, raceItem.GetCourse()); DateTime raceTime; if (DateTime.TryParse(raceItem.GetTime(), out raceTime)) { LRaceTime.Text = string.Format(Strings.info_race_time, raceTime.ToString()); int minutesUntilRace = (int)(raceTime - DateTime.Now).TotalMinutes; LMinutesTillRace.Text = string.Format(Strings.info_minutes_till_race, minutesUntilRace); } LRaceDistance.Text = string.Format(Strings.info_distance, raceItem.GetDistance().ToString()); this.LvRunners.ItemsSource = raceItem.GetRunnerList(); }
public async Task <IActionResult> PutRaceItem(long id, RaceItem item) { if (id != item.Id) { return(BadRequest()); } var authorizationResult = await _authorizationService .AuthorizeAsync(User, item, "IsOwnerPolicy"); if (authorizationResult.Succeeded) { _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); } else if (User.Identity.IsAuthenticated) { if (item.Participants == null) { item.Participants = new string[item.Seats]; } if (item.Participants.Contains(User.Identity.Name)) { return(Content("Jestes juz zapisany do tego przejazdu.")); } if (item.FreeSeats > 0) { item.Participants[item.Seats - item.FreeSeats] = User.Identity.Name; item.FreeSeats--; _context.Entry(item).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); } return(Content("Brak wolnych miejsc")); } else { return(new ChallengeResult()); } }
//handle getting the race updates every mRetryDelay private bool UpdateRace() { String raceJsonString = GetRaceData.DownloadRaceData(); if (Runnning && raceJsonString != null) { RaceItem raceItem = ProcessRaceItem.ProcessJSONToRaceItem(raceJsonString); if (Runnning && raceItem != null) { Device.BeginInvokeOnMainThread(() => MainPage.updateRace(raceItem) ); } } if (Runnning) { UpdateRaceAfterDelay(RetryDelay); } return(false); }