public TCScannerRegister Post(TCScannerRegisterInput scannerToRegister) { String newId = TokenProvider.getInstance().takeUUID(); String registerToken = TokenProvider.getInstance().takeToken("_"); DbScanner scannerInDb = new DbScanner(); scannerInDb.name = scannerToRegister.name; scannerInDb.description = scannerToRegister.description; scannerInDb.manufacturer = scannerToRegister.manufacturer; scannerInDb.model = scannerToRegister.model; scannerInDb.serial_number = scannerToRegister.serial_number; scannerInDb.id = newId; scannerInDb.registerToken = registerToken; db.DbScanners.Add(scannerInDb); db.SaveChanges(); String root = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority); TCScannerRegister ret = new TCScannerRegister(); ret.scannerId = newId; String queryString = String.Format("?scannerId={0}&token={1}", newId, registerToken); ret.pollingUrl = root + "/api/polling" + queryString; ret.inviteUrl = root + "/api/claim" + queryString; return(ret); }
private TCScannerClaim UserAddScanner(string scannerId, string token) { String username; var tokens = GetAuthen(out username); if (false == tokens) { // Error: invalid user token return(null); } // link user & scanner DbScanner scannerInDb = db.DbScanners.FirstOrDefault(u => (u.id == scannerId)); if (scannerInDb != null && scannerInDb.registerToken == token) { String accessToken = TokenProvider.getInstance().takeToken(username); String refreshToken = TokenProvider.getInstance().takeToken(username); DbUserScanner userScanner = new DbUserScanner(); userScanner.name = username; userScanner.scannerId = scannerInDb.id; db.DbUserScanners.Add(userScanner); db.SaveChanges(); //string mqttServer = System.Configuration.ConfigurationManager.AppSettings["mqtt"]; TCScannerClaim scanner = new TCScannerClaim(); FillScannerInfoFromDb(scanner, scannerInDb); return(scanner); } // Error: invalid scanner id & scanner token return(null); }
public void DbScannerFolderScanTest() { // GIVEN var testDirectory = CreateTestDirectoryWithTables(out var dataTables); // WHEN var scanner = new DbScanner(); var actualDataTables = scanner.GetDatabaseTables(testDirectory.FullName).ToList(); // THEN AssertAreEqual(dataTables, actualDataTables); }
public void DbScannerFilteredListTest() { // GIVEN var testDirectoryInfo = CreateTestDirectoryWithTables(out var dataTables); var inputDirectory = testDirectoryInfo.FullName; var filteredTableList = dataTables.GetRange(0, 2); var filteredTableNames = filteredTableList.Select(dataTable => dataTable.TableName); //WHEN var scanner = new DbScanner(); var actualDataTables = scanner.GetDatabaseTables(inputDirectory, filteredTableNames).ToList(); //THEN AssertAreEqual(filteredTableList, actualDataTables); }
private void FillScannerInfoFromDb(TCScannerClaim scannerInfo, DbScanner scannerInDb) { scannerInfo.id = scannerInDb.id; scannerInfo.model = scannerInDb.model; scannerInfo.support_url = scannerInDb.support_url; scannerInfo.version = scannerInDb.version; scannerInfo.setup_url = scannerInDb.setup_url; scannerInfo.uptime = scannerInDb.uptime; scannerInfo.name = scannerInDb.name; scannerInfo.clientId = scannerInDb.clientId; scannerInfo.semantic_state = scannerInDb.semantic_state; scannerInfo.serial_number = scannerInDb.serial_number; scannerInfo.manufacturer = scannerInDb.manufacturer; scannerInfo.firmware = scannerInDb.firmware; scannerInfo.connection_state = scannerInDb.connection_state; scannerInfo.device_state = scannerInDb.device_state; scannerInfo.description = scannerInDb.description; scannerInfo.update_url = scannerInDb.update_url; scannerInfo.type = scannerInDb.type; }
private void OutputMatchesInput(string inputDirectory, string outputDirectory) { var dataTables = new DbScanner().GetDatabaseTables(inputDirectory); foreach (var table in dataTables) { var tablePath = Path.Combine(table.TableFolderPath, table.TableName + ".db"); Assert.True(File.Exists(tablePath)); var paradoxTable = new ParadoxTable(table.TableFolderPath, table.TableName); var csvTableRecords = File.ReadAllLines(Path.Combine(outputDirectory, table.TableName + ".csv")); // very basic check for now Assert.Equal(paradoxTable.RecordCount, csvTableRecords.Length); foreach (var record in csvTableRecords) { var columnCount = record.Split(';').Length; Assert.Equal(paradoxTable.FieldCount, columnCount); } } }