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