protected async override void OnAppearing() { base.OnAppearing(); var visitstate = authsetting.ReadVisitId(); if (visitstate.Count > 0) { VisitStatus status = await viewModel.LoadOrderState(visitstate[VISIT_ID_KEY]); int visit_int = status.Status; if (0 < visit_int & visit_int <= 5) { SetQRCode(true, true); } if (visit_int >= 6 & visit_int < 10) { SetWorksList(visitstate[VISIT_ID_KEY]); } if (visit_int >= 10 & visit_int < 12) { // сделано так, что если не получен пуш с кодом, то удалять заезд и начинать с начала ибо пока что более неоткуда брать этот код if (visitstate.ContainsKey(QR_KEY)) { SetWorksList(visitstate[VISIT_ID_KEY]); ShowClosedQRCode(visitstate[QR_KEY]); } else { authsetting.RemoveVisitId(visit_int.ToString()); SetQRCode(true, true); } } if (visit_int == 12 || visit_int == 13) { authsetting.RemoveVisitId(visit_int.ToString()); SetQRCode(true, true); } } else { SetQRCode(true, true); } MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_6, (obj, visitId) => { SetWorksList(visitId); }); MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_10, (obj, qr) => { ShowClosedQRCode(qr); }); MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_12, (obj, visitId) => { SetQRCode(true, true); }); MessagingCenter.Subscribe <PushService, string>(this, PushService.STATUS_13, (obj, visitId) => { SetQRCode(true, false); }); }
public void OnDataPushReceived(IDictionary <string, string> data) { if (data.ContainsKey(VISIT_ID_KEY) && data.ContainsKey(STATUS_KEY)) { Dictionary <string, string> _data = new Dictionary <string, string>(data); authsetting.AddOrUpdateVisitId(_data); int.TryParse(data[STATUS_KEY], out int status); if (status == 6) { MessagingCenter.Send(this, data[STATUS_KEY], data[VISIT_ID_KEY]); } if (status == 10) { MessagingCenter.Send(this, data[STATUS_KEY], data[QR_KEY]); System.Diagnostics.Debug.WriteLine(data[QR_KEY]); } if (status == 12) { MessagingCenter.Send(this, data[STATUS_KEY], data[VISIT_ID_KEY]); } if (status == 13) { authsetting.RemoveVisitId(data[VISIT_ID_KEY]); MessagingCenter.Send(this, data[STATUS_KEY], data[VISIT_ID_KEY]); } } }