public RegistrationTypeSelectionPageViewModel( INavigationService navigationService, IAnalyticService analyticService, IFirebaseAuthService authService, IUserDialogs dialogs) : base(navigationService) { Title = "Registration Type"; analyticService.TrackScreen("registration-type"); Tradesman = ReactiveCommand.CreateFromTask(async() => { await dialogs.AlertAsync("Coming Soon!").ConfigureAwait(false); analyticService.TrackTapEvent("register-as-tradesman"); //await navigationService.NavigateAsync(nameof(TradesmentRegistrationPage)).ConfigureAwait(false); }); Contractor = ReactiveCommand.CreateFromTask(async() => { analyticService.TrackTapEvent("register-as-contractor"); await navigationService.NavigateAsync( nameof(ContractorRegistrationPage), new NavigationParameters { { "user_id", _userId } }).ConfigureAwait(false); }); GoBack = ReactiveCommand.CreateFromTask <Unit, Unit>(async _ => { var result = await dialogs.ConfirmAsync( new ConfirmConfig { Title = "Cancel Account Creation?", Message = "Are you sure you want to cancel account creation? This will discard any information you have entered so far", OkText = "Yes", CancelText = "No" }); if (result) { analyticService.TrackTapEvent("cancel-account-creation"); // make sure we log out so the user has to log in again await authService.Logout(); await NavigationService.NavigateToLoginPageAsync().ConfigureAwait(false); } return(Unit.Default); }); NavigatingTo .Where(args => args.ContainsKey("user_id")) .Select(args => args["user_id"].ToString()) .BindTo(this, x => x._userId); }
public CoffeeDetailViewModel(ICoffeeService coffeeService) { NavigatingTo .Where(x => x.ContainsKey("Id")) .Select(x => x["Id"]) .Cast <Guid>() .SelectMany(coffeeService.Read) .Where(x => x != null) .ToProperty(this, x => x.Detail, out _detail) .DisposeWith(Garbage); }
public ContractorRegistrationPageViewModel( INavigationService navigationService, IAnalyticService analyticService) : base(navigationService) { Title = "Contractor"; analyticService.TrackScreen( "registration-page", new Dictionary <string, string> { { "registration-type", "contractor" } }); // store the fields in an enumerable for easy use later on in this class _validatableFields = new IValidity[] { CompanyName, CompanyEmail, CompanyUrl, AddressLineOne, AddressLineTwo, City, State, Zip, PrimaryPhone, SecondaryPhone, SocialNetwork1, SocialNetwork2, SocialNetwork3, PrimaryContact }; AddValidationRules(); NavigatingTo .Where(args => args.ContainsKey("user_id")) .Select(args => args["user_id"].ToString()) .BindTo(this, x => x._userId); Next = ReactiveCommand.CreateFromTask(async() => { if (!IsValid()) { return; } var contractor = new ContractorAccount { AccountId = _userId, EmailAddress = CompanyEmail.Value, CompanyName = CompanyName.Value, CompanyUrl = CompanyUrl.Value, //PrimaryContact = PrimaryContact.Value, PhoneNumber = PrimaryPhone.Value, //SecondaryPhoneNumber = SecondaryPhone.Value, //PhysicalAddress = new Models.Address //{ // Address1 = AddressLineOne.Value, // Address2 = AddressLineTwo.Value, // City = City.Value, // State = State.Value, // PostalCode = Zip.Value //}, //SocialNetwork1 = SocialNetwork1.Value, //SocialNetwork2 = SocialNetwork2.Value, //SocialNetwork3 = SocialNetwork3.Value }; // TODO: ... await navigationService.NavigateAsync( nameof(TradeSpecialtiesPage), new NavigationParameters { { "account", contractor } }).ConfigureAwait(false); }); }