/* * Initializes the hospitals but does not add them to the map */ public async Task InitialiseHospitalsWithoutAddingToMap() { ClinicianAPI clinicianApi = new ClinicianAPI(); Tuple <HttpStatusCode, List <Hospital> > tuple = await clinicianApi.GetHospitals(); switch (tuple.Item1) { case HttpStatusCode.OK: Console.WriteLine("Organ map hospitals retrieved successfully"); hospitals = tuple.Item2; break; case HttpStatusCode.ServiceUnavailable: await DisplayAlert("", "Server unavailable, check connection", "OK"); break; case HttpStatusCode.InternalServerError: await DisplayAlert("", "Server error retrieving hospitals, please try again (500)", "OK"); break; } }
private async Task InitialiseHospitals() { ClinicianAPI clinicianApi = new ClinicianAPI(); Tuple <HttpStatusCode, List <Hospital> > tuple = await clinicianApi.GetHospitals(); switch (tuple.Item1) { case HttpStatusCode.OK: Console.WriteLine("Organ map hospitals retrieved successfully"); hospitals = tuple.Item2; foreach (Hospital currentHospital in hospitals) { Console.WriteLine("Tracking positions"); Position finalPosition = new Position(currentHospital.latitude, currentHospital.longitude); var pin = new CustomPin { CustomType = ODMSPinType.HOSPITAL, Position = finalPosition, Label = currentHospital.name, Address = currentHospital.address, }; // We add to this list to track our pins with additional information (like hospital or donor) customMap.CustomPins.Add(pin.Position, pin); lock (customMap.Pins) { customMap.Pins.Add(pin); } } break; case HttpStatusCode.ServiceUnavailable: await DisplayAlert("", "Server unavailable, check connection", "OK"); break; case HttpStatusCode.InternalServerError: await DisplayAlert("", "Server error retrieving hospitals, please try again (500)", "OK"); break; } }
/* * Called when the Save button is pressed, reads + validates input fields and pushes changes to the API */ private async void SaveClicked(object sender, EventArgs e) { Models.Clinician loggedInClinician = ClinicianController.Instance.LoggedInClinician; string name = InputValidation.Trim(NameInput.Text); string givenAddress = InputValidation.Trim(AddressInput.Text); string givenRegion = InputValidation.Trim(RegionInput.Text); // Birth names if (!InputValidation.IsValidTextInput(name, false, false)) { await DisplayAlert("", "Please enter a valid name", "OK"); return; } // Address if (!InputValidation.IsValidTextInput(givenAddress, true, true)) { await DisplayAlert("", "Please enter a valid address", "OK"); return; } // Set user attributes to the new fields loggedInClinician.name = name; loggedInClinician.workAddress = givenAddress; loggedInClinician.region = givenRegion; ClinicianAPI clinicianAPI = new ClinicianAPI(); HttpStatusCode clinicianUpdated = await clinicianAPI.UpdateClinician(); switch (clinicianUpdated) { case HttpStatusCode.Created: await DisplayAlert("", "Clinician details successfully updated", "OK"); break; case HttpStatusCode.BadRequest: await DisplayAlert("", "Clinician details update failed (400)", "OK"); break; case HttpStatusCode.ServiceUnavailable: await DisplayAlert("", "Server unavailable, check connection", "OK"); break; case HttpStatusCode.Unauthorized: await DisplayAlert("", "Unauthorised to modify profile", "OK"); break; case HttpStatusCode.InternalServerError: await DisplayAlert("", "Server error, please try again (500)", "OK"); break; } }