/// <summary> /// Function for creating packet of booking to card reader /// </summary> /// <param name="reservation"></param> /// <returns></returns> public bool CreateBooking(Reservation reservation) { if (reservation.Person.CardNumber.Length == 8) { if (!CrName.findCrGroup(reservation.CardReader.Name)) { //while (!SetDate(reservation.CardReader.CrAddress)) ; //while (!SetTime(reservation.CardReader.CrAddress)) ; //while (!ClearPm(reservation.CardReader.CrAddress)) ; while (!ClearZm(reservation.CardReader.CrAddress)) { ; } while (!ClearAg(reservation.CardReader.CrAddress)) { ; } while (!EnablePm(reservation.CardReader.CrAddress)) { ; } while (!EnableZm(reservation.CardReader.CrAddress)) { ; } CrName.addCrGroup(new CrGroup() { Name = reservation.CardReader.Name, Addr = reservation.CardReader.CrAddress, IP = reservation.CardReader.IP, Port = reservation.CardReader.Port }); } if (!CrName.getCrGroupName(reservation.CardReader.Name).People.Exists(x => x.Campus_ID == reservation.Person.Campus_ID)) { CrName.getCrGroupName(reservation.CardReader.Name).People.Add(reservation.Person); int groupNum = CrName.findIndexPerson(reservation.CardReader.Name, reservation.Person.CardNumber) + 1; while (!AddNewPerson(reservation.CardReader.CrAddress, reservation.Person.CardNumber, groupNum)) { ; } while (!AddNewTimeZone(reservation.CardReader.CrAddress, reservation.StartTime, reservation.EndTime, groupNum)) { ; } while (!AddNewAccessGroup(reservation.CardReader.CrAddress, groupNum, groupNum)) { ; } return(true); } } return(false); }
/// <summary> /// Function executed every time the timer is (12.00 AM) /// </summary> /// <param name="stateInfo"></param> public void EnableRoom(Object stateInfo) { /*GroupNumber = 0; * ZoneNumber = 0;*/ var client = new RestClient("http://140.118.123.95:5555"); var request = new RestRequest("smr/reservations/today", Method.GET); Debug.WriteLine("GET TODAY's Information"); IRestResponse response = client.Execute(request); if (response.IsSuccessful) { foreach (CrGroup crGroup in CrName.getCrGroupDb()) { foreach (Person person in crGroup.People) { while (!GetConnected(crGroup.IP, crGroup.Port)) { ; } while (!RemovePerson(crGroup.Addr, person.CardNumber, crGroup.People.IndexOf(person) + 1)) { ; } } } CrName.clearCrGroup(); ReservationResponse resList = SimpleJson.DeserializeObject <ReservationResponse>(response.Content); foreach (Reservation reservation in resList.Data) { while (!GetConnected(reservation.CardReader.IP, reservation.CardReader.Port)) { ; } if (CreateBooking(reservation)) { Timer _countTimer = new Timer(CountTap, reservation, countTime(reservation.EndTime), Timeout.Infinite); } } } }