BuildModel(EditBtcPayServerDataViewModel viewModel, ExternalServiceData mainModel) { if (viewModel.Action == "unpair") { viewModel.Seed = null; } //current External Service data var oldData = mainModel.Get <BtcPayServerExternalServiceData>(); if (oldData.Seed == viewModel.Seed && oldData.Server == viewModel.Server) { viewModel.LastCheck = oldData.LastCheck; viewModel.MonitoredInvoiceStatuses = oldData.MonitoredInvoiceStatuses; viewModel.PairedDate = oldData.PairedDate; } else { viewModel.PairedDate = DateTime.Now; } mainModel.Set((BtcPayServerExternalServiceData)viewModel); var service = new BtcPayServerService(mainModel); if (!ModelState.IsValid) { var serviceData = service.GetData(); return(null, new EditBtcPayServerDataViewModel() { Seed = serviceData.Seed ?? new Mnemonic(Wordlist.English, WordCount.Twelve).ToString(), Server = serviceData.Server, PairingUrl = await service.GetPairingUrl(mainModel.Name), Paired = await service.CheckAccess() }); } if (!await service.CheckAccess()) { viewModel.Seed = viewModel.Seed ?? new Mnemonic(Wordlist.English, WordCount.Twelve).ToString(); service.SetData(viewModel); viewModel.PairingUrl = await service.GetPairingUrl(mainModel.Name); viewModel.Paired = false; if (!string.IsNullOrEmpty(viewModel.PairingCode)) { var client = service.ConstructClient(); await client.AuthorizeClient(new PairingCode(viewModel.PairingCode)); if (!await service.CheckAccess()) { ModelState.AddModelError(string.Empty, "Could not pair with pairing code"); return(null, viewModel); } } ModelState.AddModelError(string.Empty, "Cannot proceed until paired"); return(null, viewModel); } return(mainModel, null); }
public virtual T GetData() { return(_data.Get <T>()); }
public T GetData() { return(_data.Get <T>()); }