public IHttpActionResult PutTripPassenger(int id, TripPassenger tripPassenger) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != tripPassenger.TripPassengerID) { return(BadRequest()); } db.Entry(tripPassenger).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TripPassengerExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
private async void UpdateTripDetail(Object sender, EventArgs e) { Android.Net.ConnectivityManager cm = (Android.Net.ConnectivityManager)context.GetSystemService(Context.ConnectivityService); if (cm.ActiveNetworkInfo == null) { Toast.MakeText(context, "Network error. Try again later.", ToastLength.Long).Show(); } { iTripDetail.originLatLng = originLatLng.Latitude.ToString() + "," + originLatLng.Longitude.ToString(); iTripDetail.destinationLatLng = destLatLng.Latitude.ToString() + "," + destLatLng.Longitude.ToString(); iTripDetail.arriveTime = onTimeSet.ToString(); iTripDetail.days = tvDay.Text.ToString(); string duration = txtviewDuration.Text.ToString(); int totalInSecond; // If duration is more than 1 hour if (duration.Length > 8) { int hour = int.Parse(duration.Substring(0, duration.Length - 14)); int min = int.Parse(duration.Substring(duration.Length - 7, 2).Trim()); totalInSecond = (hour * 3600) + (min * 60); } else { int min = int.Parse(duration.Substring(0, duration.Length - 5).Trim()); totalInSecond = min * 60; } iTripDetail.duration = totalInSecond; iTripDetail.cost = Double.Parse(txtviewCost.Text.ToString().Substring(2, txtviewCost.Text.ToString().Length - 2), System.Globalization.CultureInfo.InvariantCulture); iTripDetail.distanceStr = txtviewDistance.Text.ToString(); iTripDetail.durationStr = txtviewDuration.Text.ToString(); iTripDetail.costStr = txtviewCost.Text.ToString(); if (switchFemaleOnly.Checked) { iTripDetail.femaleOnly = "Yes"; } else { iTripDetail.femaleOnly = "No"; } RunOnUiThread(() => { progress.Show(); }); TripPassenger tripPassenger = new TripPassenger(iTripDetail); await RESTClient.UpdateTripPassengerAsync(context, tripPassenger); RunOnUiThread(() => { progress.Dismiss(); }); Intent intent = new Intent(context, typeof(TripPassListViewActivity)); intent.AddFlags(ActivityFlags.ClearTop); this.StartActivity(intent); } }
private async void CreateClick(Object sender, EventArgs e) { if (ValidateData()) { iTrip.distance = distanceValue; iTrip.duration = durationValue; iTrip.cost = Double.Parse(txtviewCost.Text.ToString().Substring(2, txtviewCost.Text.ToString().Length - 2), System.Globalization.CultureInfo.InvariantCulture); iTrip.distanceStr = txtviewDistance.Text.ToString(); iTrip.durationStr = txtviewDuration.Text.ToString(); iTrip.costStr = txtviewCost.Text.ToString(); // Assign user input and request POST to REST API iTrip.arriveTime = onTimeSet.ToString(); iTrip.days = tvDay.Text.ToString(); if (switchFemaleOnly.Checked) { iTrip.femaleOnly = "Yes"; } else { iTrip.femaleOnly = "No"; } TripDriver tripDriver; TripPassenger tripPassenger; progress.SetMessage("Creating trip..."); RunOnUiThread(() => { progress.Show(); }); if (iMember.type.Equals("Driver")) { tripDriver = new TripDriver(iTrip); tripDriver.DriverID = iMember.MemberID; tripDriver.availableSeat = int.Parse(spinnerSeat.SelectedItem.ToString()); var json = JsonConvert.SerializeObject(tripDriver); await RESTClient.CreateTripDriverAsync(this, tripDriver); } else { tripPassenger = new TripPassenger(iTrip); tripPassenger.PassengerID = iMember.MemberID; var json = JsonConvert.SerializeObject(tripPassenger); await RESTClient.CreateTripPassengerAsync(this, tripPassenger); } RunOnUiThread(() => { progress.Dismiss(); }); Intent intent = new Intent(this, typeof(MainActivity)); intent.SetFlags(ActivityFlags.NewTask | ActivityFlags.ClearTask); StartActivity(intent); Finish(); } }
public static async Task UpdateTripPassengerAsync(TripPassenger tripPassenger) { HttpResponseMessage response = await client.PutAsJsonAsync("api/TripPassengers?id=" + tripPassenger.TripPassengerID, tripPassenger); if (!response.IsSuccessStatusCode) { Console.WriteLine("Error occur when updating trip driver"); } }
public IHttpActionResult GetTripPassenger(int id) { TripPassenger tripPassenger = db.TripPassengers.Find(id); if (tripPassenger == null) { return(NotFound()); } return(Ok(tripPassenger)); }
public IHttpActionResult PostTripPassenger(TripPassenger tripPassenger) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.TripPassengers.Add(tripPassenger); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = tripPassenger.TripPassengerID }, tripPassenger)); }
//TripPassenger public static async Task CreateTripPassengerAsync(Context c, TripPassenger tripPassenger) { HttpResponseMessage response = await client.PostAsJsonAsync("api/TripPassengers", tripPassenger); if (response.IsSuccessStatusCode) { Toast.MakeText(c, "Trip successfully created.", ToastLength.Short).Show(); } else { Toast.MakeText(c, "Failed to create passenger's trip.", ToastLength.Short).Show(); } }
public static async Task UpdateTripPassengerAsync(Context c, TripPassenger tripPassenger) { HttpResponseMessage response = await client.PutAsJsonAsync("api/TripPassengers?id=" + tripPassenger.TripPassengerID, tripPassenger); if (response.IsSuccessStatusCode) { Toast.MakeText(c, "Updated trip details.", ToastLength.Short).Show(); } else { Toast.MakeText(c, "Failed to update.", ToastLength.Short).Show(); } }
public IHttpActionResult PutTripDriver(int id, string tripPassengerID, TripDriver tripDriver) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != tripDriver.TripDriverID) { return(BadRequest()); } db.Entry(tripDriver).State = EntityState.Modified; // Remove TripPassengerID from the TripDriver data string[] tripPassengerIDs = tripPassengerID.Split(','); foreach (string tempID in tripPassengerIDs) { int tID = int.Parse(tempID); TripPassenger tripPassenger = (from t in db.TripPassengers where t.TripPassengerID == tID select t).First(); tripPassenger.TripDriverID = null; // Remove the particular request Request request = (from t in db.Requests where t.SenderID == tID && t.DriverID == id select t).First(); db.Requests.Remove(request); } try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TripDriverExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IHttpActionResult PutTripPassenger(int id, int tripDriverID, TripPassenger tripPassenger) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != tripPassenger.TripPassengerID) { return(BadRequest()); } db.Entry(tripPassenger).State = EntityState.Modified; // Remove TripPassengerID from the TripDriver data TripDriver tripDriver = (from t in db.TripDrivers where t.TripDriverID == tripDriverID select t).First(); string[] passengers = tripDriver.PassengerIDs.ToString().Split(',').Where(s => s != tripPassenger.TripPassengerID.ToString()).ToArray(); tripDriver.PassengerIDs = string.Join(",", passengers); // Remove the particular request Request request = (from t in db.Requests where t.SenderID == tripPassenger.TripPassengerID && t.DriverID == tripDriverID select t).First(); db.Requests.Remove(request); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!TripPassengerExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public static async Task QuitCarpoolPassengerAsync(Context c, TripPassenger tripPassenger) { string tripDriverID = tripPassenger.TripDriverID.ToString(); tripPassenger.TripDriverID = null; HttpResponseMessage response = await client.PutAsJsonAsync("api/TripPassengers?id=" + tripPassenger.TripPassengerID + "&tripDriverID=" + tripDriverID, tripPassenger); if (response.IsSuccessStatusCode) { Toast.MakeText(c, "Quit from the carpool.", ToastLength.Short).Show(); } else { Toast.MakeText(c, "Failed to quit.", ToastLength.Short).Show(); } }
public IHttpActionResult DeleteTripDriver(int id) { TripDriver tripDriver = db.TripDrivers.Find(id); if (tripDriver == null) { return(NotFound()); } if (!string.IsNullOrEmpty(tripDriver.PassengerIDs)) { // Remove TripPassengerID from the TripDriver data string[] tripPassengerIDs = tripDriver.PassengerIDs.Split(','); foreach (string tempID in tripPassengerIDs) { int tID = int.Parse(tempID); TripPassenger tripPassenger = (from t in db.TripPassengers where t.TripPassengerID == tID select t).First(); tripPassenger.TripDriverID = null; // Remove the particular request List <Request> requests = (from t in db.Requests where t.DriverID == id select t).ToList(); foreach (Request tempRequest in requests) { db.Requests.Remove(tempRequest); } } db.SaveChanges(); } db.TripDrivers.Remove(tripDriver); db.SaveChanges(); return(Ok(tripDriver)); }
public IHttpActionResult DeleteTripPassenger(int id) { TripPassenger tripPassenger = db.TripPassengers.Find(id); if (tripPassenger == null) { return(NotFound()); } if (!tripPassenger.TripDriverID.Equals(null)) { if (!tripPassenger.TripDriverID.Equals("")) { // Remove TripPassengerID from the TripDriver data TripDriver tripDriver = (from t in db.TripDrivers where t.TripDriverID == tripPassenger.TripDriverID select t).First(); string[] passengers = tripDriver.PassengerIDs.ToString().Split(',').Where(s => s != id.ToString()).ToArray(); tripDriver.PassengerIDs = string.Join(",", passengers); if (string.IsNullOrEmpty(tripDriver.PassengerIDs)) { tripDriver.PassengerIDs = string.Empty; } // Remove the particular request Request request = (from t in db.Requests where t.SenderID == tripPassenger.TripPassengerID && t.DriverID == tripPassenger.TripDriverID select t).First(); db.Requests.Remove(request); } } db.TripPassengers.Remove(tripPassenger); db.SaveChanges(); return(Ok(tripPassenger)); }
public override View GetView(int position, View convertView, ViewGroup parent) { var view = convertView; if (view == null) { view = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.TripPassDetailsRow, parent, false); var femaleOnly = view.FindViewById <TextView>(Resource.Id.trip_row_female); var origin = view.FindViewById <TextView>(Resource.Id.trip_row_origin); var dest = view.FindViewById <TextView>(Resource.Id.trip_row_destination); var day = view.FindViewById <TextView>(Resource.Id.trip_row_day); var arriveTime = view.FindViewById <TextView>(Resource.Id.trip_row_time); var distance = view.FindViewById <TextView>(Resource.Id.trip_row_distance); var duration = view.FindViewById <TextView>(Resource.Id.trip_row_duration); var cost = view.FindViewById <TextView>(Resource.Id.trip_row_cost); var button = view.FindViewById <TextView>(Resource.Id.trip_row_button); view.Tag = new TripViewHolder() { Female = femaleOnly, Origin = origin, Dest = dest, Day = day, ArriveTime = arriveTime, Distance = distance, Duration = duration, Cost = cost, mButton = button }; } var holder = (TripViewHolder)view.Tag; // Convert time to hh:mm tt format var time = trips[position].arriveTime.Split(':'); int totalInSecond = (int.Parse(time[0]) * 3600) + (int.Parse(time[1]) * 60); TimeSpan onTimeSet = TimeSpan.FromSeconds(totalInSecond); string strTime = DateTime.ParseExact(onTimeSet.ToString(@"hh\:mm"), "HH:mm", null).ToString("hh:mm tt", CultureInfo.GetCultureInfo("en-US")); // Convert "Mon,Tue,Wed..." to "Mon • Tue • Wed..." format string strDay = trips[position].days.Replace(",", " • "); // Check if is female only if (trips[position].femaleOnly.Equals("No")) { holder.Female.SetHeight(0); holder.Female.Visibility = ViewStates.Invisible; } holder.Origin.Text = trips[position].origin; holder.Dest.Text = trips[position].destination; holder.Day.Text = strDay; holder.ArriveTime.Text = strTime; holder.Distance.Text = trips[position].distanceStr; holder.Duration.Text = " • Approx " + trips[position].durationStr; holder.Cost.Text = trips[position].costStr; if (trips[position].Requests.Count <= 0) { if (trips[position].TripDriverID.Equals(null)) { holder.mButton.Text = "Search Driver"; } } else if (trips[position].Requests[0].status.Equals("Pending")) { holder.mButton.Text = "Cancel Request"; } else if (trips[position].Requests[0].status.Equals("Accepted")) { holder.mButton.Text = "View Driver"; } else if (trips[position].Requests[0].status.Equals("Rejected")) { holder.mButton.Text = "Search Driver"; } holder.mButton.Click += async(sender, e) => { Android.Net.ConnectivityManager cm = (Android.Net.ConnectivityManager)context.GetSystemService(Context.ConnectivityService); if (cm.ActiveNetworkInfo == null) { Toast.MakeText(context, "Network error. Try again later.", ToastLength.Long).Show(); } if (holder.mButton.Text.Equals("Search Driver")) { //Intent intent = new Intent(context, typeof(DriverListViewActivity)).SetFlags(ActivityFlags.NewTask); Intent intent = new Intent(context, typeof(SearchDriverListViewActivity)); intent.AddFlags(ActivityFlags.ReorderToFront); intent.PutExtra("Trip", JsonConvert.SerializeObject(trips[position])); context.StartActivity(intent); } else if (holder.mButton.Text.Equals("View Driver")) { Intent intent = new Intent(context, typeof(ViewDriverProfileActivity)); intent.AddFlags(ActivityFlags.ReorderToFront); intent.PutExtra("Trip", JsonConvert.SerializeObject(trips[position])); context.StartActivity(intent); } else if (holder.mButton.Text.Equals("Cancel Request")) { trips[position].Requests[0].status = "Cancelled"; await RESTClient.DeleteRequestAsync(context, trips[position].Requests[0]); holder.mButton.Text = "Search Driver"; } else if (trips[position].Requests[0].status.Equals("Accepted")) { holder.mButton.Text = "View Driver"; } else if (trips[position].Requests[0].status.Equals("Rejected")) { holder.mButton.Text = "Search Driver"; } }; view.Click += (sender, e) => { Android.Net.ConnectivityManager cm = (Android.Net.ConnectivityManager)context.GetSystemService(Context.ConnectivityService); if (cm.ActiveNetworkInfo == null) { Toast.MakeText(context, "Network error. Try again later.", ToastLength.Long).Show(); } else { Intent intent = new Intent(context, typeof(TripPassDetailsRow_Edit)); // Send intent extra to notify the trip is editable // Condition = no passenger in the trip yet AND no passenger send request for this trip if (holder.mButton.Text.Equals("View Driver")) { intent.PutExtra("Status", "Has Driver"); } else if (holder.mButton.Text.Equals("Cancel Request")) { intent.PutExtra("Status", "Has Request"); } else if (holder.mButton.Text.Equals("Search Driver")) { intent.PutExtra("Status", "No Driver No Request"); } intent.PutExtra("Trip", JsonConvert.SerializeObject(trips[position])); ((Activity)context).StartActivityForResult(intent, 0); } }; view.LongClick += (sender, e) => { Dialog dialog = new Dialog(context); dialog.SetContentView(Resource.Layout.Custom_Dialog_Action); TextView quitCarpool = (TextView)dialog.FindViewById(Resource.Id.quit); TextView deleteTrip = (TextView)dialog.FindViewById(Resource.Id.delete); if (trips[position].TripDriverID.Equals(null)) { quitCarpool.Visibility = ViewStates.Gone; } quitCarpool.Click += async(sender2, e2) => { progress.SetMessage("Disjoining....."); progress.Show(); TripPassenger tp = new TripPassenger(trips[position]); await RESTClient.QuitCarpoolPassengerAsync(context, tp); Intent intent = new Intent(context, typeof(TripPassListViewActivity)); ((Activity)context).Finish(); ((Activity)context).StartActivity(intent); dialog.Dismiss(); }; deleteTrip.Click += async(sender2, e2) => { progress.SetMessage("Deleting....."); progress.Show(); await RESTClient.DeleteTripPassengerAsync(context, trips[position].TripPassengerID); Intent intent = new Intent(context, typeof(TripPassListViewActivity)); ((Activity)context).Finish(); ((Activity)context).StartActivity(intent); dialog.Dismiss(); }; dialog.Show(); }; return(view); }