public async Task ViewModelInitializationSendsChangeTabMessageTest() { bool messageReceived = false; var mainViewModel = new MainViewModel(); var tabParam = new TabParameter { TabIndex = 2 }; Xamarin.Forms.MessagingCenter.Subscribe <MainViewModel, int>(this, MessageKeys.ChangeTab, (sender, arg) => { messageReceived = true; }); await mainViewModel.InitializeAsync(tabParam); Assert.True(messageReceived); }
private async void LookupBikeInfo() { if (IsBusy) { return; } IsBusy = true; string uuid = Preferences.Get("UUID", ""); string user = Preferences.Get("Email", ""); string token = Preferences.Get("Token", ""); if (user != "" && token == "") { user = ""; } bool isMyBike = false; if (uuid != "") { try { UIDInfo result = await DataStore.GetInfo(user, token, uuid); if (result.FrameNumber == null) { await DialogService.Show("UUID unknown", $"The scanned UUID {uuid} is unknown", "Ok"); Status = (int)FrameNumberStatusType.UIDNotRegistered; Preferences.Set("UUID", ""); UUID = uuid; Brand = ""; Model = ""; ProductionYear = ""; } else { if (result.Owner != null && token != "" && user != "") { if (string.Equals(result.Owner.Email, user, StringComparison.InvariantCultureIgnoreCase)) { isMyBike = true; } } Brand = result.FrameNumber.Manufacturer; string model = result.FrameNumber.Model + " "; if (result.FrameNumber.Frame != "") { model += result.FrameNumber.Frame; } Model = model; UUID = result.FrameNumber.UID; Status = result.FrameNumberStatus.Status; Preferences.Set("BrandModel", Brand + " " + Model); Stolen = (Status == (int)FrameNumberStatusValue.Stolen); Registered = isMyBike && (Status != (int)FrameNumberStatusValue.Unregistered && Status != (int)FrameNumberStatusValue.Unknown); Preferences.Set("RegisteredToBike", Registered ? "1" : "0"); NotRegistered = !Registered; // Make sure we show 'stolen' if (Stolen) { NotRegistered = false; } FrameNumberStatus = result.FrameNumberStatus; ProductionYear = result.FrameNumber.ProductionDate.Year > 0 ? result.FrameNumber.ProductionDate.Year.ToString() : ""; if (result.FrameNumberExtras != null) { FrameNumberExtras = result.FrameNumberExtras; } /* string extras = ""; * if (result.FrameNumberExtras != null) * { * foreach (FrameNumberExtra ext in result.FrameNumberExtras) * { * if (extras != "") * extras += ", "; * string thisExtra = ""; * if (ext.ExtraBrand != "") * thisExtra += " "; * if (ext.ExtraModel != "") * thisExtra = ext.ExtraModel + " "; * if (ext.ExtraType != "") * thisExtra = ext.ExtraType; * extras += thisExtra.Trim(); * } * Extras = extras; * }*/ DocumentCount = result.FrameNumberDocuments != null ? result.FrameNumberDocuments.Count : 0; Documents = result.FrameNumberDocuments ?? new List <FrameNumberDocument>(); MessageCount = result.NumberOfMessages; var messageViewModel = ViewModelLocator.Resolve <MessagesViewModel>(); if (messageViewModel != null) { MessagingCenter.Send(messageViewModel, MessageKeys.UpdateMessageCount, MessageCount); } if (NotRegistered) { ImagePath = Constants.DefaultProfileImage; } else if (result.ProfileImage != "") { ImagePath = result.ProfileImage; Preferences.Set("ProfileImage", ImagePath); } } IsBusy = false; } catch (Exception e) { AnalyticsService.TrackError(e, new Dictionary <string, string> { { "Method", "BikeDetailViewModel.LookupBikeInfo" } }); } } else { if (hasShowWarning == false) { await DialogService.Show("No scans", "No bike has been scanned. Please scan a bike..", "Ok"); } hasShowWarning = true; Status = (int)FrameNumberStatusType.UIDNotRegistered; UUID = uuid; Brand = ""; Model = ""; TabParameter tabParameter = new TabParameter() { TabIndex = 1 }; await NavigationService.NavigateToAsync <MainViewModel>(tabParameter); } IsBusy = false; }