public override void OnMessageReceived(RemoteMessage message) { int applicationId = -1; string header = ""; if (message.Data.Keys.Contains("applicationid")) { foreach (var item in message.Data.Values) { try { applicationId = int.Parse(item); } catch (Exception e) { header = item; } } CMSapp.Models.Application app = ApplicationController.GetApplication(applicationId); List <Passenger> pass = PassengerController.GetPassengers(applicationId); if (header == "SECURITY") { Console.WriteLine("Got application for security to book cab for"); DataHandler.AddSecurityApplication(applicationId, app, pass); //Security calls company and books cab //Enters cab details and presses submit } else if (header == "MANAGER") { Console.WriteLine("Got application for manager to review"); //Update unread application count DataHandler.unreadApplications++; if (Xamarin.Forms.Application.Current.Properties.ContainsKey(Constants.unreadApplications)) { Xamarin.Forms.Application.Current.Properties[Constants.unreadApplications] = DataHandler.unreadApplications; } SendNotification("You have " + DataHandler.unreadApplications + " new application(s) to review."); //Update the reviewpassengers ui DataHandler.AddReviewApplication(applicationId, app, pass); HomePage.viewModel.UpdateHomePageUI_OnReceivingReviewApplication(); DataHandler.saveCurrentReviewApplications(ApplicationReviewPage.viewModel.ReviewAppList.ToList()); } else if (header == "EMPLOYEE") { Console.WriteLine("Application approved by manager"); CMSapp.Models.Application application = ApplicationController.GetApplication(applicationId); HomePage.viewModel.DisplayAppList.Clear(); HomePage.viewModel.DisplayAppList.Add(new CMSapp.ViewModels.HomePageApplication { applicationid = applicationId.ToString(), application_status = application.application_status, cab_required_time = application.cab_required_time, submission_datetime = Convert.ToDateTime(application.submission_datetime).ToString() }); } else if (header == "CAB_BOOKED") { Cab cab = CabController.GetCab(applicationId); //Update cab details HomePage.viewModel.DisplayCabList.Clear(); HomePage.viewModel.DisplayCabList.Add(new CMSapp.ViewModels.HomePageCab { applicationid = cab.applicationid, expected_arrival_time = cab.expected_arrival_time, booking_time = cab.booking_time, cab_no = cab.cab_no, cab_status = cab.cab_status, driver_contact_no = cab.driver_contact_no, driver_name = cab.driver_name }); HomePage.viewModel.UpdateHomePageUI_OnCabBooked(); } else if (header == "CAB_ARRIVED") { Cab cab = CabController.GetCab(applicationId); //Update cab details HomePage.viewModel.DisplayCabList.Clear(); HomePage.viewModel.DisplayCabList.Add(new CMSapp.ViewModels.HomePageCab { applicationid = cab.applicationid, expected_arrival_time = cab.expected_arrival_time, booking_time = cab.booking_time, cab_no = cab.cab_no, cab_status = cab.cab_status, driver_contact_no = cab.driver_contact_no, driver_name = cab.driver_name }); HomePage.viewModel.UpdateHomePageUI_OnCabArrived(); } else { Console.WriteLine("Invalid header"); } } }