public void ConfigureServices(IServiceCollection services) { var web3ServiceProvider = new Web3ProviderService(); var accountsService = new AccountsService(web3ServiceProvider); var newBlockProcessingService = new NewBlockProcessingService(web3ServiceProvider); var toastsViewModel = new ToastsViewModel(); var blocksViewModel = new BlocksViewModel(newBlockProcessingService); var latestBlockTransactionsViewModel = new LatestBlockTransactionsViewModel(web3ServiceProvider); var newAccountPrivateKeyViewModel = new NewAccountPrivateKeyViewModel(); var accountsViewModel = new AccountsViewModel(accountsService, newAccountPrivateKeyViewModel); var accountsTransactionMonitoringService = new AccountsTransactionMonitoringService(accountsService, web3ServiceProvider); services.AddSingleton <IWeb3ProviderService, Web3ProviderService>((x) => web3ServiceProvider); services.AddSingleton <IAccountsService, AccountsService>((x) => accountsService); services.AddSingleton <NewBlockProcessingService>(newBlockProcessingService); services.AddSingleton <ToastsViewModel>(toastsViewModel); services.AddSingleton <BlocksViewModel>(blocksViewModel); services.AddSingleton <LatestBlockTransactionsViewModel>(latestBlockTransactionsViewModel); services.AddTransient <BlockTransactionsViewModel>(); services.AddSingleton <AccountsViewModel>(accountsViewModel); services.AddSingleton <NewAccountPrivateKeyViewModel>(newAccountPrivateKeyViewModel); services.AddSingleton <SendTransactionViewModel>(); services.AddSingleton <SendErc20TransactionViewModel>(); services.AddSingleton(accountsTransactionMonitoringService); services.AddSingleton <TransactionWithReceiptViewModel>(); services.AddFlexGrid(cfg => { cfg.ApplyConfiguration(new TransactionsViewModelGridConfiguration()); }); services.AddSingleton <Web3UrlViewModel>(); services.AddStorage(); }
private void OnMouseMove(object sender, MouseEventArgs e) { Vector delta = (e.GetPosition(Viewport) - oldMousePos); BlocksViewModel vm = (BlocksViewModel)((FrameworkElement)sender).DataContext; // TODO: Ugly dependency on the model here! ProjectionCamera camera = (ProjectionCamera)Viewport.Camera; Vector3D left = Vector3D.CrossProduct(camera.LookDirection, camera.UpDirection); left.Normalize(); switch (cameraDragMode) { case CameraDragMode.Pan: delta *= 0.01; Vector3D deltaMove = Vector3D.Add(left * -delta.X, camera.UpDirection * delta.Y); Point3D newCameraPosition = vm.CameraPosition.Add(deltaMove); vm.CameraPosition = newCameraPosition; Point3D newCameraAimPoint = vm.CameraAimPoint.Add(deltaMove); vm.CameraAimPoint = newCameraAimPoint; break; case CameraDragMode.Rotate: delta *= 0.01; Vector3D v = vm.CameraAimPoint.VectorTo(vm.CameraPosition).Cartesian2Spherical(); v.Y -= delta.X; v.Z -= delta.Y; vm.CameraPosition = vm.CameraAimPoint.Add(v.Spherical2Cartesian()); break; } oldMousePos = e.GetPosition(Viewport); }
public App(string[] args = null, IFileProvider fileProvider = null) { var hostBuilder = MobileBlazorBindingsHost.CreateDefaultBuilder() .ConfigureServices((hostContext, services) => { // Adds web-specific services such as NavigationManager services.AddBlazorHybrid(); // Register app-specific services //services.AddSingleton<CounterState>(); var web3ServiceProvider = new Web3ProviderService(); var accountsService = new AccountsService(web3ServiceProvider); var newBlockProcessingService = new NewBlockProcessingService(web3ServiceProvider); var toastsViewModel = new ToastsViewModel(); var blocksViewModel = new BlocksViewModel(newBlockProcessingService); var latestBlockTransactionsViewModel = new LatestBlockTransactionsViewModel(web3ServiceProvider); var newAccountPrivateKeyViewModel = new NewAccountPrivateKeyViewModel(); var accountsViewModel = new AccountsViewModel(accountsService, newAccountPrivateKeyViewModel); var accountsTransactionMonitoringService = new AccountsTransactionMonitoringService(accountsService, web3ServiceProvider); services.AddSingleton <IWeb3ProviderService, Web3ProviderService>((x) => web3ServiceProvider); services.AddSingleton <IAccountsService, AccountsService>((x) => accountsService); services.AddSingleton <NewBlockProcessingService>(newBlockProcessingService); services.AddSingleton <ToastsViewModel>(toastsViewModel); services.AddSingleton <BlocksViewModel>(blocksViewModel); services.AddSingleton <LatestBlockTransactionsViewModel>(latestBlockTransactionsViewModel); services.AddTransient <BlockTransactionsViewModel>(); services.AddSingleton <AccountsViewModel>(accountsViewModel); services.AddSingleton <NewAccountPrivateKeyViewModel>(newAccountPrivateKeyViewModel); services.AddSingleton <SendTransactionViewModel>(); services.AddSingleton <SendErc20TransactionViewModel>(); services.AddSingleton(accountsTransactionMonitoringService); services.AddSingleton <TransactionWithReceiptViewModel>(); services.AddSingleton <Web3UrlViewModel>(); services.AddFlexGrid(cfg => { cfg.ApplyConfiguration(new TransactionsViewModelGridConfiguration()); }); }) .UseWebRoot("wwwroot"); if (fileProvider != null) { hostBuilder.UseStaticFiles(fileProvider); } else { hostBuilder.UseStaticFiles(); } var host = hostBuilder.Build(); MainPage = new ContentPage(); NavigationPage.SetHasNavigationBar(MainPage, false); host.AddComponent <Main>(parent: MainPage); }
private void OnMouseWheel(object sender, MouseWheelEventArgs e) { double delta = e.Delta * 0.01; BlocksViewModel vm = (BlocksViewModel)((FrameworkElement)sender).DataContext; // TODO: Ugly dependency on the model here! ProjectionCamera camera = (ProjectionCamera)Viewport.Camera; Vector3D deltaMove = camera.LookDirection * delta; Point3D newCameraPosition = camera.Position.Add(deltaMove); camera.Position = newCameraPosition; Point3D newCameraAimPoint = vm.CameraAimPoint.Add(deltaMove); vm.CameraAimPoint = newCameraAimPoint; }
public static MauiApp CreateMauiApp() { var builder = MauiApp.CreateBuilder(); builder .RegisterBlazorMauiWebView() .UseMauiApp <App>() .ConfigureFonts(fonts => { fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular"); }); builder.Services.AddBlazorWebView(); var services = builder.Services; var web3ServiceProvider = new Web3ProviderService(); var accountsService = new AccountsService(web3ServiceProvider); var newBlockProcessingService = new NewBlockProcessingService(web3ServiceProvider); var toastsViewModel = new ToastsViewModel(); var blocksViewModel = new BlocksViewModel(newBlockProcessingService); var latestBlockTransactionsViewModel = new LatestBlockTransactionsViewModel(web3ServiceProvider); var newAccountPrivateKeyViewModel = new NewAccountPrivateKeyViewModel(); var accountsViewModel = new AccountsViewModel(accountsService, newAccountPrivateKeyViewModel); var accountsTransactionMonitoringService = new AccountsTransactionMonitoringService(accountsService, web3ServiceProvider); services.AddSingleton <IWeb3ProviderService, Web3ProviderService>((x) => web3ServiceProvider); services.AddSingleton <IAccountsService, AccountsService>((x) => accountsService); services.AddSingleton <NewBlockProcessingService>(newBlockProcessingService); services.AddSingleton <ToastsViewModel>(toastsViewModel); services.AddSingleton <BlocksViewModel>(blocksViewModel); services.AddSingleton <LatestBlockTransactionsViewModel>(latestBlockTransactionsViewModel); services.AddTransient <BlockTransactionsViewModel>(); services.AddSingleton <AccountsViewModel>(accountsViewModel); services.AddSingleton <NewAccountPrivateKeyViewModel>(newAccountPrivateKeyViewModel); services.AddSingleton <SendTransactionViewModel>(); services.AddSingleton <SendErc20TransactionViewModel>(); services.AddSingleton(accountsTransactionMonitoringService); services.AddSingleton <TransactionWithReceiptViewModel>(); services.AddSingleton <Web3UrlViewModel>(); services.AddFlexGrid(cfg => { cfg.ApplyConfiguration(new TransactionsViewModelGridConfiguration()); }); return(builder.Build()); }
private void TestHit(Point screenPos) { VisualTreeHelper.HitTest(Viewport, null, result => { if (result is RayMeshGeometry3DHitTestResult rayHitResult) { if (rayHitResult.ModelHit is GeometryModel3D model) { BlocksViewModel vm = (BlocksViewModel)DataContext; // TODO: Ugly dependency on the model here! vm.GeometryModelClicked(model); } return(HitTestResultBehavior.Stop); } return(HitTestResultBehavior.Continue); }, new PointHitTestParameters(screenPos)); }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddServerSideBlazor(); //NOTE: Server side singleton, just for local usage and sample, you would not want to use the Account services in server mode /// use the Metamask integration in other templates var web3ServiceProvider = new Web3ProviderService(); var accountsService = new AccountsService(web3ServiceProvider); var newBlockProcessingService = new NewBlockProcessingService(web3ServiceProvider); var toastsViewModel = new ToastsViewModel(); var blocksViewModel = new BlocksViewModel(newBlockProcessingService); var latestBlockTransactionsViewModel = new LatestBlockTransactionsViewModel(web3ServiceProvider); var newAccountPrivateKeyViewModel = new NewAccountPrivateKeyViewModel(); var accountsViewModel = new AccountsViewModel(accountsService, newAccountPrivateKeyViewModel); var accountsTransactionMonitoringService = new AccountsTransactionMonitoringService(accountsService, web3ServiceProvider); services.AddSingleton <IWeb3ProviderService, Web3ProviderService>((x) => web3ServiceProvider); services.AddSingleton <IAccountsService, AccountsService>((x) => accountsService); services.AddSingleton <NewBlockProcessingService>(newBlockProcessingService); services.AddSingleton <ToastsViewModel>(toastsViewModel); services.AddSingleton <BlocksViewModel>(blocksViewModel); services.AddSingleton <LatestBlockTransactionsViewModel>(latestBlockTransactionsViewModel); services.AddTransient <BlockTransactionsViewModel>(); services.AddSingleton <AccountsViewModel>(accountsViewModel); services.AddSingleton <NewAccountPrivateKeyViewModel>(newAccountPrivateKeyViewModel); services.AddSingleton <SendTransactionViewModel>(); services.AddSingleton <SendErc20TransactionViewModel>(); services.AddSingleton(accountsTransactionMonitoringService); services.AddSingleton <TransactionWithReceiptViewModel>(); services.AddFlexGridServerSide(cfg => { cfg.ApplyConfiguration(new TransactionsViewModelGridConfiguration()); }); services.AddSingleton <Web3UrlViewModel>(); }
public BlockList() { InitializeComponent(); Vm = new BlocksViewModel(); BindingContext = Vm; }