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);
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
 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);
                }
            }
        }