Пример #1
0
        public void RunPassenger(Packet pkt)
        {
            Code code;

            try
            {
                if (CheckAuthorizedUser(pkt.guid))
                {
                    AccessInfo info = new AccessInfoDB().SelectNowAccessibleInfo(pkt.guid, pkt.carId);
                    if (info != null)
                    {
                        if (info.access_dt == default(DateTime))
                        {
                            if (pkt.psgCnt == info.psgCnt)
                            {
                                UpdateLogMsgWithName("Accessed passenger count: " + info.psgCnt);
                                pkt.accessId = info.seq;
                                code         = Code.SUCCESS_PASSENGER;
                            }
                            else
                            {
                                code = Code.NOT_MATCH_PASSENGER_CNT;
                            }
                        }
                        else
                        {
                            code = Code.ALREADY_ACCESS;
                        }
                    }
                    else
                    {
                        code = Code.NOT_FND_ACCESS_INFO;
                    }
                }
                else
                {
                    code = Code.INVALID_USER;
                }
            }
            catch (Exception e)
            {
                code       = Code.ERROR;
                pkt.errMsg = e.Message;
            }
            SendResponse(pkt, code);

            // if code is SUCCESS_PASSENGER, Open gate and update access date
            if (code == Code.SUCCESS_PASSENGER)
            {
                new AccessInfoDB().UpdateAccessDate(pkt.accessId);
            }
        }
Пример #2
0
        private void Window_Initialized(object sender, EventArgs e)
        {
            m_userDB    = new UserDB();
            m_accessDB  = new AccessInfoDB();
            m_carDB     = new CarInfoDB();
            m_historyDB = new AccessHisDB();

            m_avrMgr = new AverageInfoManager();

            m_user = new MyPerson();
            m_car  = new CarInfo();

            toolStripCbCount.ItemsSource   = selectCountCbDatas;
            toolStripCbCount.SelectedIndex = 2;

            dtpAvgDate.SelectedDate   = DateTime.Today;
            cbChartType.ItemsSource   = chartTypeCbdatas;
            cbChartType.SelectedIndex = 0;
        }
Пример #3
0
        private void UserForm_Load(object sender, EventArgs e)
        {
            m_userDB    = new UserDB();
            m_accessDB  = new AccessInfoDB();
            m_carDB     = new CarInfoDB();
            m_historyDB = new AccessHisDB();

            m_avrMgr = new AverageInfoManager();

            m_user = new MyPerson();
            m_car  = new CarInfo();

            toolStripCbCount.Items.AddRange(selectCountCbDatas);
            toolStripCbCount.SelectedIndex = 2;
            toolStripCbCount.DropDownStyle = ComboBoxStyle.DropDownList;

            dtpAvgDate.Format       = DateTimePickerFormat.Custom;
            dtpAvgDate.CustomFormat = "yyyy년 MM월 dd일 (ddd)";
            cbChartType.Items.AddRange(chartTypeCbdatas);
            cbChartType.SelectedIndex = 0;

            InitDataGridViews();
            UpdateComponents();
        }
Пример #4
0
        public MyPerson RunAtOnce(Packet pkt)
        {
            UserManager fpm   = new UserManager();
            MyPerson    match = null;
            Code        code;

            try
            {
                MyPerson guest = fpm.Enroll(BBDataConverter.ImageToByte(pkt.fingerPrint), "guest");
                match = fpm.recognition(guest);
                if (match != null)
                {
                    bool isMatch = CheckLoginUser(match.Id, pkt.userId);
                    if (isMatch)
                    {
                        SetLoginUser(match);
                        UpdateLogMsgWithName("Step1: Check fingerprint(" + "Matched person(" + match.Name.ToString() + ")" + ")");
                        code = Code.SUCCESS_AUTH;
                        AccessInfo access = new AccessInfoDB().SelectNowAccessibleInfo(GetLoginUser().Guid, pkt.carId);
                        if (access != null)
                        {
                            if (access.access_dt == default(DateTime))
                            {
                                if (pkt.psgCnt == access.psgCnt)
                                {
                                    UpdateLogMsgWithName("Step2: Check passenger count(" + access.psgCnt + ")");
                                    code         = Code.SUCCESS_PASSENGER;
                                    pkt.accessId = access.seq;
                                    OrderInfo order = new OrderInfoManager().FindOrderInfoByAccessId(access.seq);
                                    if (order != null)
                                    {
                                        UpdateLogMsgWithName("Step3: Find Order Info(" + order.orderId + ")");
                                        pkt.order = order;
                                        code      = Code.SUCCESS_ORDER;
                                    }
                                    else
                                    {
                                        code = Code.NOT_FND_ORDER_INFO;
                                    }
                                }
                                else
                                {
                                    code = Code.NOT_MATCH_PASSENGER_CNT;
                                }
                            }
                            else
                            {
                                code = Code.ALREADY_ACCESS;
                            }
                        }
                        else
                        {
                            code = Code.NOT_FND_ACCESS_INFO;
                        }
                    }
                    else
                    {
                        code = Code.NOT_MATCH_LOGIN_FP;
                    }
                }
                else
                {
                    Console.WriteLine("Not found matched fingerprint.");
                    code = Code.NOT_FND_FINGERPRINT;
                }
            }
            catch (Exception e)
            {
                code       = Code.ERROR;
                pkt.errMsg = e.Message;
            }
            if (code == Code.SUCCESS_AUTH || code == Code.SUCCESS_ORDER || code == Code.SUCCESS_PASSENGER)
            {
                UpdateLogMsgWithName("Success authentication.");
                // if code is SUCCESS, Open gate and update access date
                new AccessInfoDB().UpdateAccessDate(pkt.accessId);
            }
            else
            {
                UpdateLogMsgWithName("Failed authentication.(" + GetMessage(code.ToString()) + ")");
            }

            SendResponse(pkt, code);

            return(match);
        }
Пример #5
0
 public AccessInfoManager()
 {
     db = new AccessInfoDB();
 }