public async Task <IActionResult> Lightning(string storeId, string cryptoCode) { var store = HttpContext.GetStoreData(); if (store == null) { return(NotFound()); } var vm = new LightningViewModel { CryptoCode = cryptoCode, StoreId = storeId }; await SetExistingValues(store, vm); if (vm.LightningNodeType == LightningNodeType.Internal) { var services = _externalServiceOptions.Value.ExternalServices.ToList() .Where(service => _externalServiceTypes.Contains(service.Type)) .Select(async service => new AdditionalServiceViewModel { DisplayName = service.DisplayName, ServiceName = service.ServiceName, CryptoCode = service.CryptoCode, Type = service.Type.ToString(), Link = await GetServiceLink(service) }) .Select(t => t.Result) .ToList(); // other services foreach ((string key, Uri value) in _externalServiceOptions.Value.OtherExternalServices) { if (_externalServiceNames.Contains(key)) { services.Add(new AdditionalServiceViewModel { DisplayName = key, ServiceName = key, Type = key.Replace(" ", ""), Link = Request.GetAbsoluteUriNoPathBase(value).AbsoluteUri }); } } vm.Services = services; } return(View(vm)); }
public IActionResult Lightning(string storeId, string cryptoCode) { var store = HttpContext.GetStoreData(); if (store == null) { return(NotFound()); } var vm = new LightningViewModel { CryptoCode = cryptoCode, StoreId = storeId }; SetExistingValues(store, vm); if (vm.LightningNodeType == LightningNodeType.Internal) { var services = _externalServiceOptions.Value.ExternalServices.ToList() .Where(service => ExternalServices.LightningServiceTypes.Contains(service.Type)) .Select(async service => { var model = new AdditionalServiceViewModel { DisplayName = service.DisplayName, ServiceName = service.ServiceName, CryptoCode = service.CryptoCode, Type = service.Type.ToString() }; try { model.Link = await service.GetLink(Request.GetAbsoluteUriNoPathBase(), _BtcpayServerOptions.NetworkType); } catch (Exception exception) { model.Error = exception.Message; } return(model); }) .Select(t => t.Result) .ToList(); // other services foreach ((string key, Uri value) in _externalServiceOptions.Value.OtherExternalServices) { if (ExternalServices.LightningServiceNames.Contains(key)) { services.Add(new AdditionalServiceViewModel { DisplayName = key, ServiceName = key, Type = key.Replace(" ", ""), Link = Request.GetAbsoluteUriNoPathBase(value).AbsoluteUri }); } } vm.Services = services; } return(View(vm)); }