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; }
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(); }
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(); }
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..."); }
public void DeleteSmartLock(SmartLock smartLock) { throw new NotImplementedException(); }