Ejemplo n.º 1
0
        public static async Task <NfcReaderType> GetNfcReaderTypeFromDbAsync(ApplicationDbContext dbContext = null)
        {
            using (UnitOfWork unitOfWork = (dbContext == null) ? new UnitOfWork() : new UnitOfWork(dbContext))
            {
                NfcReaderType nfcReaderType = await unitOfWork.SettingRepository.GetNfcReaderTypeAsync();

                return(nfcReaderType);
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> PostNfcReaderType(NfcReaderType type)
        {
            try
            {
                await _unitOfWork.SettingRepository.SetNfcReaderTypeAsync(type);

                await _unitOfWork.SaveChangesAsync();
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }

            return(CreatedAtAction("PostNfcReaderType", null));
        }
Ejemplo n.º 3
0
        public async Task UnitOfWork_SettingRepository_GetDefaultNfcReaderType_ShouldReturnCorrectValue()
        {
            string dbName = Guid.NewGuid().ToString();

            using (IUnitOfWork unitOfWork = new UnitOfWork(GetDbContext(dbName)))
            {
                // Arrange
                NfcReaderType expectedNfcReaderType = NfcReaderType.uFr;

                // Act
                NfcReaderType nfcReaderType = await unitOfWork.SettingRepository.GetNfcReaderTypeAsync();

                // Assert
                Assert.AreEqual(expectedNfcReaderType, nfcReaderType);
            }
        }
Ejemplo n.º 4
0
        public async Task SetNfcReaderTypeAsync(NfcReaderType nfcReaderType)
        {
            var nfcReaderTypeInDb = await _dbContext.Settings
                                    .SingleOrDefaultAsync(s => s.Name == P04_NfcReaderType);

            if (nfcReaderTypeInDb == null)
            {
                Setting newSetting = new Setting
                {
                    Name  = P04_NfcReaderType,
                    Type  = 2,
                    Value = nfcReaderType.ToString()
                };

                _dbContext.Add(newSetting);
            }
            else
            {
                nfcReaderTypeInDb.Value = nfcReaderType.ToString();
            }
        }
Ejemplo n.º 5
0
        public async Task UnitOfWork_SettingRepository_SetTwoNfcReaderTypes_ShouldReturnSecondNfcReaderType()
        {
            string dbName = Guid.NewGuid().ToString();

            using (IUnitOfWork unitOfWork = new UnitOfWork(GetDbContext(dbName)))
            {
                // Arrange
                NfcReaderType expectedNfcReaderType1 = NfcReaderType.uFr;
                NfcReaderType expectedNfcReaderType2 = NfcReaderType.RC522;
                await unitOfWork.SettingRepository.SetNfcReaderTypeAsync(expectedNfcReaderType1);

                unitOfWork.SaveChanges();
                await unitOfWork.SettingRepository.SetNfcReaderTypeAsync(expectedNfcReaderType2);

                unitOfWork.SaveChanges();

                // Act
                NfcReaderType nfcReaderType = await unitOfWork.SettingRepository.GetNfcReaderTypeAsync();

                // Assert
                Assert.AreEqual(expectedNfcReaderType2, nfcReaderType);
            }
        }
Ejemplo n.º 6
0
        public async Task <NfcReaderType> GetNfcReaderTypeAsync()
        {
            NfcReaderType defaultValue = NfcReaderType.uFr;

            var nfcReaderType = await _dbContext.Settings
                                .SingleOrDefaultAsync(s => s.Name == P04_NfcReaderType);

            if (nfcReaderType == null)
            {
                return(defaultValue);
            }
            else
            {
                try
                {
                    return((NfcReaderType)Enum.Parse(typeof(NfcReaderType), nfcReaderType.Value));
                }
                catch
                {
                    return(defaultValue);
                }
            }
        }
Ejemplo n.º 7
0
        static async Task <int> Main(string[] args)
        {
            string   _actEnvironment      = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
            bool     _card_in_field_uFR   = false;
            int      _card_in_field_RC522 = 0;
            DateTime _dateOld             = DateTime.Now;
            int      cyleTime             = 300; // milliseconds
            char     c;

            Mode          _operationMode = Mode.Read;
            NfcReaderType _nfcReaderType = NfcReaderType.uFr;

            try
            {
                // Check database
                FunctionsCCT.CheckDatabase();
                FunctionsCCT.AddRemoveDummyInDb();

                // Delete persons older then storage time (default 30 days) from database
                await FunctionsCCT.DeletePersonsOutsideStoragePeriode();

                // Get NfcReaderType from database
                _nfcReaderType = await FunctionsCCT.GetNfcReaderTypeFromDbAsync();

                // Start NFC-Reader programm
                Functions_uFR.headline();

                // Start PipeServer
                var pipeServer = new PipeServer(autoRun: true);

                // Init Reader
                switch (_nfcReaderType)
                {
                case NfcReaderType.uFr:
                    Functions_uFR.reader_automaticOpen();
                    break;

                case NfcReaderType.RC522:
                    if (_actEnvironment != null && _actEnvironment.StartsWith("RPI"))
                    {
                        // toDo
                    }
                    break;

                default:
                    Console.WriteLine("Kein gültiger NFC-Readertyp angewählt");
                    break;
                }

                do
                {
                    while ((!Console.IsInputRedirected)? !Console.KeyAvailable : true)
                    {
                        // Get message from Web - Application
                        string message           = pipeServer.ReceiceMessage();
                        string nfcNewDataContent = string.Empty;

                        switch (message)
                        {
                        case "SetReadMode":
                            _operationMode = Mode.Read;
                            break;

                        case "SetWriteMode":
                            _operationMode = Mode.Write;
                            break;

                        default:
                            if (!string.IsNullOrEmpty(message))
                            {
                                nfcNewDataContent = message;
                            }
                            break;
                        }

                        if (_operationMode == Mode.Read)
                        {
                            switch (_nfcReaderType)
                            {
                            case NfcReaderType.uFr:
                                ReadCycle_uFR(ref _card_in_field_uFR);
                                break;

                            case NfcReaderType.RC522:
                                ReadCycle_RC522(_actEnvironment, ref _card_in_field_RC522);
                                break;

                            default:
                                Console.WriteLine("Kein gültiger NFC-Readertyp angewählt");
                                break;
                            }
                        }
                        else if (_operationMode == Mode.Write)
                        {
                            switch (_nfcReaderType)
                            {
                            case NfcReaderType.uFr:
                                WriteCycle_uFR(nfcNewDataContent);
                                break;

                            case NfcReaderType.RC522:
                                WriteCycle_RC522(_actEnvironment, nfcNewDataContent);
                                break;

                            default:
                                Console.WriteLine("Kein gültiger NFC-Readertyp angewählt");
                                break;
                            }
                        }

                        //ReadCycle_RC522(_actEnvironment, ref _card_in_field_RC522); // to delete

                        Thread.Sleep(cyleTime);

                        // Delete persons older then storage time (default 30 days) from database
                        if (DateTime.Now.Date != _dateOld.Date)
                        {
                            await FunctionsCCT.DeletePersonsOutsideStoragePeriode();
                        }
                        _dateOld = DateTime.Now;
                    }

                    c = Console.ReadKey(true).KeyChar;
                } while (c != '\x1b');
            }
            catch (System.FormatException ex)
            {
                Console.WriteLine($"Unexpected error occured:");
                WriteExceptions(ex);
            }

            Functions_RC522.ResetSignals();
            return(0);
        }