Exemplo n.º 1
0
        private void LockAgain(object Sender, RoutedEventArgs e)
        {
            Debug.WriteLine("Locking again");
            SmartLock.Lock();

            rootPage.Ble.quickLockMainService.UpdateAuthenticationState(false);
            rootPage.Ble.quickLockMainService.UpdateUnlockState(false);
        }
        public void DeleteSmartLock(SmartLock smartLock)
        {
            if (smartLock == null)
            {
                throw new ArgumentNullException(nameof(smartLock));
            }

            _context.SmartLocks.Remove(smartLock);
        }
        public void UpdateSmartLock(SmartLock smartLock)
        {
            foreach (var smartLockUser in smartLock.SmartLockUsers)
            {
                smartLockUser.SmartLockId = smartLock.Id;
            }

            foreach (var smartLockGroup in smartLock.SmartLockGroups)
            {
                smartLockGroup.SmartLockId = smartLock.Id;
            }

            _context.Entry(smartLock).State = EntityState.Modified;
        }
Exemplo n.º 4
0
        private void Service_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName.Equals("InvalidRequest"))
            {
                rootPage.NotifyUser("Invalid request!", NotifyType.ErrorMessage);
            }

            else if (e.PropertyName.Equals("InvalidPin"))
            {
                rootPage.NotifyUser("Invalid password, access denied!", NotifyType.ErrorMessage);
            }

            else if (e.PropertyName.Equals("Unauthenticated"))
            {
                rootPage.NotifyUser("Unauthenticated, access denied!", NotifyType.ErrorMessage);
            }


            // new command value received only after successful authentication
            if (e.PropertyName.Equals("LockState"))
            {
                Debug.WriteLine("Received LockState update");

                if (rootPage.Ble.quickLockMainService.isUnlocked)
                {
                    rootPage.NotifyCorrect(scenarioName);
                    Solved.Visibility = Visibility.Visible;
                    //tbd next time (if isSolved)
                    //                rootPage.NotifyUser($"Correct password, unlocking!", NotifyType.StatusMessage);
                    SmartLock.Unlock();

                    //VoiceUnlocking.AutoPlay = true;
                    VoiceUnlocking.Play();
                }
                //received "lock" command, but it should be locked anyway ;)
                else
                {
                    rootPage.NotifyUser("Locking...", NotifyType.StatusMessage);
                    SmartLock.Lock();
                }
            }
        }
        public void AddSmartLock(SmartLock smartLock)
        {
            if (smartLock == null)
            {
                throw new ArgumentNullException(nameof(smartLock));
            }

            foreach (var smartLockUser in smartLock.SmartLockUsers)
            {
                smartLockUser.SmartLockId = smartLock.Id;
            }

            foreach (var smartLockGroup in smartLock.SmartLockGroups)
            {
                smartLockGroup.SmartLockId = smartLock.Id;
            }

            smartLock.Id = Guid.NewGuid();

            _context.SmartLocks.Add(smartLock);
        }
        public void SmartLock()
        {
            UT_INIT();

            Report.GetDefault().PushHaltFlags( false, false );
            
                // SmartLock with null-users
                {
                                                                                                                                                  utWriter.lox.CntLogCalls= 0;
                    SmartLock sl= new SmartLock();      UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                }
            
                // SmartLock with threadlocks
                {
                    ThreadLock tl1 = new ThreadLock();
                    ThreadLock tl2 = new ThreadLock();
                    ThreadLock tl3 = new ThreadLock();
                    SmartLock  sl= new SmartLock();    UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( tl1 );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( tl2 );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( tl3 );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl3 );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl3 );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl2 );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl1 );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl1 );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                }
            
                // mixed
                {
                    ThreadLock tl1 = new ThreadLock();
                    ThreadLock tl2 = new ThreadLock();
                    ThreadLock tl3 = new ThreadLock();
                    SmartLock  sl= new SmartLock();     UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( tl1  );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( tl2  );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( tl2  );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.AddAcquirer   ( tl3  );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl1  );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl1  );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl3  );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Safe   );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl3  );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( tl2  );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 0 ); utWriter.lox.CntLogCalls= 0;
                    sl.RemoveAcquirer( null );          UT_TRUE( sl.GetSafeness() == Safeness.Unsafe );  UT_TRUE( utWriter.lox.CntLogCalls== 1 ); utWriter.lox.CntLogCalls= 0;
                }
                Report.GetDefault().PopHaltFlags();
        }
Exemplo n.º 7
0
        public void SmartLock()
        {
            UT_INIT();

            Report.GetDefault().PushHaltFlags(false, false);

            // SmartLock with null-users
            {
                utWriter.lox.CntLogCalls = 0;
                SmartLock sl = new SmartLock();      UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.AddAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls    = 0;
                sl.AddAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.AddAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls   = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls = 0;
            }

            // SmartLock with threadlocks
            {
                ThreadLock tl1 = new ThreadLock();
                ThreadLock tl2 = new ThreadLock();
                ThreadLock tl3 = new ThreadLock();
                SmartLock  sl  = new SmartLock();    UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.AddAcquirer(tl1);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls    = 0;
                sl.AddAcquirer(tl2);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.AddAcquirer(tl3);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.RemoveAcquirer(tl3);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls   = 0;
                sl.RemoveAcquirer(tl3);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls   = 0;
                sl.RemoveAcquirer(tl2);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.RemoveAcquirer(tl1);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.RemoveAcquirer(tl1);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls = 0;
            }

            // mixed
            {
                ThreadLock tl1 = new ThreadLock();
                ThreadLock tl2 = new ThreadLock();
                ThreadLock tl3 = new ThreadLock();
                SmartLock  sl  = new SmartLock();     UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.AddAcquirer(tl1);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls     = 0;
                sl.AddAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.AddAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.AddAcquirer(tl2);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls       = 0;
                sl.AddAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.AddAcquirer(tl2);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls       = 0;
                sl.AddAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls      = 0;
                sl.AddAcquirer(tl3);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls       = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls   = 0;
                sl.RemoveAcquirer(tl1);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls    = 0;
                sl.RemoveAcquirer(tl1);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls    = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls   = 0;
                sl.RemoveAcquirer(tl3);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls    = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Safe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls   = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls = 0;
                sl.RemoveAcquirer(tl3);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls  = 0;
                sl.RemoveAcquirer(tl2);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 0); utWriter.lox.CntLogCalls  = 0;
                sl.RemoveAcquirer(null);          UT_TRUE(sl.GetSafeness() == Safeness.Unsafe);  UT_TRUE(utWriter.lox.CntLogCalls == 1); utWriter.lox.CntLogCalls = 0;
            }
            Report.GetDefault().PopHaltFlags();
        }
Exemplo n.º 8
0
        public void Start()
        {
            Console.WriteLine("Starting smartobject...");

            Console.WriteLine("What is my Address?");

            Console.Write("-> ");
            string address = Console.ReadLine();

            IPAddress ipAddress;

            if (!string.IsNullOrEmpty(address) && IPAddress.TryParse(address, out ipAddress))
            {
                Console.WriteLine("What is my port?");

                Console.Write("-> ");
                string portStr = Console.ReadLine();

                int port = 0;

                if (!string.IsNullOrEmpty(portStr) && int.TryParse(portStr, out port))
                {
                    if (SmartManagerService.Register(address, port))
                    {
                        Console.WriteLine("Choose my type:");
                        Console.WriteLine("1 - TV");
                        Console.WriteLine("2 - Air Conditioner");
                        Console.WriteLine("3 - Light");
                        Console.WriteLine("4 - Water heater");
                        Console.WriteLine("5 - Lock");

                        Console.Write("->");
                        string type = Console.ReadLine();

                        SmartThing smartThing = null;

                        switch (type)
                        {
                        case "1":
                            smartThing = new SmartTV();

                            break;

                        case "2":
                            smartThing = new SmartAirConfitioner();

                            break;

                        case "3":
                            smartThing = new SmartLight();

                            break;

                        case "4":
                            smartThing = new SmartWaterHeater();

                            break;

                        case "5":
                            smartThing = new SmartLock();

                            break;

                        default:
                            Console.WriteLine("Invalid choice...");

                            break;
                        }

                        if (smartThing != null)
                        {
                            new Listener().Listen(ipAddress, port, smartThing);
                        }
                    }

                    else
                    {
                        Console.WriteLine("Sorry... Could not register myself to the manager...");
                    }
                }

                else
                {
                    Console.WriteLine("Port not valid...");
                }
            }

            else
            {
                Console.WriteLine("Invalid address...");
            }

            Console.WriteLine("Smart object shutting down...");
        }
Exemplo n.º 9
0
 public void DeleteSmartLock(SmartLock smartLock)
 {
     throw new NotImplementedException();
 }