示例#1
0
        private void buttonDataImport_Click(object sender, EventArgs e)
        {
            Program.logEvent("User has selected to import data files");
            ImportFromUSBForm Importer = new ImportFromUSBForm();

            YesNoForm BoxesorAdmin = new YesNoForm(LanguageTranslation.IMPORT_QUESTION);

            BoxesorAdmin.ChangeButtonFontSize(30);
            BoxesorAdmin.ChangeTextYesButton(LanguageTranslation.USER);
            BoxesorAdmin.ChangeTextNoButton(LanguageTranslation.ACCESS);

            BoxesorAdmin.ShowDialog();
            if (BoxesorAdmin.YesResult)
            {
                Program.logEvent("User has selected to import User data files");
                Importer.ImportType = ImportType.User;
            }
            else if (!BoxesorAdmin.YesResult)
            {
                Program.logEvent("User has selected to import Access Code data files");
                Importer.ImportType = ImportType.AccessCode;
            }
            Importer.Arrived = false;
            Importer.ShowDialog();
        }
示例#2
0
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            Program.logEvent("User selected to add a new user");
            try
            {
                YesNoForm doAnotherDlg = new YesNoForm(LanguageTranslation.ADD_ANOTHER_USER);
                do
                {
                    string IDNumber = "";

                    //need to add swipe feature  TBD

                    LongNameEntryForm IDForm = new LongNameEntryForm(Program.USER_ID_LENGTH, false, false);
                    IDForm.UseSpaceBar = true;
                    IDForm.DialogTitle = LanguageTranslation.ENTER_ID;
                    IDForm.ShowDialog();

                    if (IDForm.Ok)
                    {
                        IDNumber = IDForm.Description;
                        Program.logEvent("User entered new user ID: " + IDNumber);

                        if (!Program.userMgr.IsUnique(IDNumber))
                        {
                            Program.logEvent("The user ID Number entered is not unique. User not added");
                            Program.ShowErrorMessage(LanguageTranslation.ID_NUM_NOT_UNIQUE, 3000);
                            return;
                        }
                    }
                    else
                    {
                        Program.logEvent("User cancelled addition");
                        return;
                    }

                    User user = new User(IDNumber);
                    AddUser(user);
                    Program.ShowErrorMessage(LanguageTranslation.USER_ADDED, 2500);

                    ModifyUsersForm ModifyNewUser = new ModifyUsersForm(user);
                    ModifyNewUser.ShowDialog();

                    doAnotherDlg.ShowDialog();
                } while (doAnotherDlg.YesResult);

                Program.userMgr.SaveFile();

                threeDArrayCreateAndSort();
            }
            catch (Exception ex)
            {
                throw new Exception("AddUsersForm:AddUser exception: " + ex.Message);
            }
        }
示例#3
0
 /// <summary>
 /// This method gives the ability for the customer to show customizable content and have customizable retrieval
 /// of reservation data for the user to confirm.
 /// </summary>
 /// <returns>a bool which states whether or not the data retrieval was successful</returns>
 internal virtual bool showReservationData(ref LocationData.LocationTransactionData transaction, ref YesNoForm ReservationConfirmScreen)
 {
     return(true);
 }
示例#4
0
        internal override bool confirmReservation(ref LocationData.LocationTransactionData transaction)
        {
            int                    intReturnValue = 0;
            SqlCommand             comm           = new SqlCommand(); //This is needed because there is no public contructor for SqlParameterCollection
            SqlParameterCollection Parameters     = comm.Parameters;
            SqlParameterCollection ReturnParameters;

            try
            {
                if (!transaction.ReturningKey)
                {
                    //Add Input Values
                    Parameters.Add(Program.SqlManager.CreateParameter("ResvNum", ParameterDirection.Input, transaction.AccessCode, SqlDbType.VarChar));
                    Parameters.Add(Program.SqlManager.CreateParameter("KioskDateOut", ParameterDirection.Input, String.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), SqlDbType.VarChar));
                    Parameters.Add(Program.SqlManager.CreateParameter("KioskNumOut", ParameterDirection.Input, Program.KIOSK_ID.PadLeft(4, '0'), SqlDbType.VarChar));
                    //Add Return Value
                    Parameters.Add(Program.SqlManager.CreateParameter("Return_Val", ParameterDirection.ReturnValue, 0, SqlDbType.Int));

                    ReturnParameters = Program.SqlManager.SqlStoredProcedure("SPA_TestResvNum", Parameters);
                    if (ReturnParameters == null) //Error msg already given by SQLManager
                    {
                        return(false);
                    }

                    //set the return code (of the stored procedure) to the results sent back.
                    intReturnValue = (int)ReturnParameters["Return_Val"].Value;

                    switch (intReturnValue)
                    {
                    case 1:
                        //Success
                        return(true);

                    case 2:
                        //Failure: Reservation does not exist
                        Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000);
                        Program.logEvent("Reservation Confirmation Error: Reservation Does not exist");
                        Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Reservation Confirmation Error: Reservation Does not exist", "", 0);
                        return(false);

                    case 3:
                        //Failure: Current Date is not correct for your reservation
                        Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000);
                        Program.logEvent("Reservation Confirmation Error: The pickup date for the reservation is not the current date");
                        Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Reservation Confirmation Error: The pickup date for the reservation is not the current date", "", 0);
                        return(false);

                    case 4:
                        //Failure: Reservation is for a different key cabinet
                        Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000);
                        Program.logEvent("Reservation Confirmation Error: The Reservation is not for this kiosk location");
                        Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Reservation Confirmation Error: The Reservation is not for this kiosk location", "", 0);
                        return(false);
                    }
                }
                else
                {
                    //Add Input Values
                    Parameters.Add(Program.SqlManager.CreateParameter("ResvNum", ParameterDirection.Input, transaction.AccessCode, SqlDbType.VarChar));
                    Parameters.Add(Program.SqlManager.CreateParameter("KioskDateIn", ParameterDirection.Input, String.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), SqlDbType.VarChar));
                    Parameters.Add(Program.SqlManager.CreateParameter("KioskNumIn", ParameterDirection.Input, Program.KIOSK_ID.PadLeft(4, '0'), SqlDbType.VarChar));
                    //Add Return Value
                    Parameters.Add(Program.SqlManager.CreateParameter("Return_Val", ParameterDirection.ReturnValue, 0, SqlDbType.Int));

                    ReturnParameters = Program.SqlManager.SqlStoredProcedure("SPA_TestResvRtn", Parameters);
                    if (ReturnParameters == null) //Error msg already given by SQLManager
                    {
                        return(false);
                    }

                    //set the return code (of the stored procedure) to the results sent back.
                    intReturnValue = (int)ReturnParameters["Return_Val"].Value;

                    switch (intReturnValue)
                    {
                    case 1:
                        //Success
                        if (transaction.ReturningKey)
                        {
                            YesNoForm yesno = new YesNoForm("");
                            return(getBoxNum(ref transaction, ref yesno));
                        }

                        return(true);

                    case 15:
                        //Failure: Reservation does not exist
                        Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000);
                        Program.logEvent("Reservation Return Confirmation Error: Reservation Does not exist");
                        Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Reservation Return Confirmation Error: Reservation Does not exist", "", 0);
                        return(false);

                    case 16:
                        //Failure: Reservation is for a different key cabinet
                        Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000);
                        Program.logEvent("Reservation Return Confirmation Error: The Reservation is not for this kiosk location");
                        Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Reservation Return Confirmation Error: The Reservation is not for this kiosk location", "", 0);
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                //An application exception was thrown - process/display exception.
                Program.logEvent("GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message);
                Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message, "", 0);
                return(false);
            }
            return(true);
        }
示例#5
0
 internal override bool showReservationData(ref LocationTransactionData transaction, ref YesNoForm ReservationConfirmScreen)
 {
     return(getBoxNum(ref transaction, ref ReservationConfirmScreen));
 }
示例#6
0
        private bool getBoxNum(ref LocationTransactionData transaction, ref YesNoForm ReservationConfirmScreen)
        {
            //
            //Put new stored procedure into place
            //Confirm Operator Number
            //Set BoxNumber
            //Display Destination & Return Time
            //
            int intReturnValue = 0;
            OregonStateUTransactionData transData = (OregonStateUTransactionData)transaction;
            SqlCommand             comm           = new SqlCommand();//This is needed because there is no public contructor for SqlParameterCollection
            SqlParameterCollection Parameters     = comm.Parameters;
            SqlParameterCollection ReturnParameters;

            try
            {
                //Add inputs
                Parameters.Add(Program.SqlManager.CreateParameter("ResvNum", ParameterDirection.Input, transData.AccessCode, SqlDbType.VarChar));
                Parameters.Add(Program.SqlManager.CreateParameter("OperNum", ParameterDirection.Input, transData.OperatorNumber, SqlDbType.VarChar));
                Parameters.Add(Program.SqlManager.CreateParameter("KioskDateOut", ParameterDirection.Input, String.Format("{0:yyyy/MM/dd HH:mm:ss}", DateTime.Now), SqlDbType.VarChar));
                Parameters.Add(Program.SqlManager.CreateParameter("KioskNumOut", ParameterDirection.Input, Program.KIOSK_ID.PadLeft(4, '0'), SqlDbType.VarChar));
                Parameters.Add(Program.SqlManager.CreateParameter("KeyNumMax", ParameterDirection.Input, Program.NUMBER_RELAYS, SqlDbType.Int));
                Parameters.Add(Program.SqlManager.CreateParameter("KeyMode", ParameterDirection.Input, transaction.ReturningKey, SqlDbType.Int));
                //Add Outputs & Return
                Parameters.Add(Program.SqlManager.CreateParameter("KeyNumOut", ParameterDirection.Output, 0, SqlDbType.Int));
                Parameters.Add(Program.SqlManager.CreateParameter("DestCity", ParameterDirection.Output, "", SqlDbType.VarChar, 20));
                Parameters.Add(Program.SqlManager.CreateParameter("DueDate", ParameterDirection.Output, "", SqlDbType.VarChar, 20));
                Parameters.Add(Program.SqlManager.CreateParameter("Return_Val", ParameterDirection.ReturnValue, 0, SqlDbType.Int));

                ReturnParameters = Program.SqlManager.SqlStoredProcedure("SPA_GetBoxNum", Parameters);
                if (ReturnParameters == null) //Error msg already given by SQLManager
                {
                    return(false);
                }

                //set the return code (of the stored procedure) to the results sent back.
                intReturnValue = (int)ReturnParameters["Return_Val"].Value;
                Program.logEvent("Show Reservation Data: Return Value - " + intReturnValue);
                switch (intReturnValue)
                {
                case 1:
                    //Success
                    Program.logEvent("Show Reservation Data: Box Number - " + (int)ReturnParameters["KeyNumOut"].Value);
                    transaction.BoxNumber = (int)ReturnParameters["KeyNumOut"].Value;
                    Program.logEvent("Destination City: " + (string)ReturnParameters["DestCity"].Value);
                    Program.logEvent("Due Date: " + (string)ReturnParameters["DueDate"].Value);

                    if (!transaction.ReturningKey)
                    {
                        //return time prep
                        string   dt       = (string)ReturnParameters["DueDate"].Value;
                        string[] datetime = dt.Replace("  ", " ").Split(' ');
                        Program.logEvent("ScreenPrint Datetime0:" + datetime[0]);
                        Program.logEvent("ScreenPrint Datetime1:" + datetime[1]);
                        Program.logEvent("ScreenPrint Datetime2:" + datetime[2]);
                        Program.logEvent("ScreenPrint Datetime3:" + datetime[3]);

                        ReservationConfirmScreen.setFormMessage("Trip To:\r\n" + (string)ReturnParameters["DestCity"].Value + "\r\nDue Back:\r\n" + datetime[0] + '-' + datetime[1] + '-' + datetime[2].Remove(0, 2) + ' ' + datetime[3].Remove(datetime[3].Length - 2, 2));
                        Program.logEvent("Reservation Confirmation In Progress");
                    }
                    return(true);

                case 5:
                    //Failure -
                    Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000);
                    Program.logEvent("Failure - can't find data - perhaps RES_MAIN table reservation row does not exist");
                    Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Failure - can't find data - perhaps RES_MAIN table reservation row does not exist", "", 0);
                    return(false);

                case 6:
                    //Failure -
                    Program.ShowErrorMessage("Sorry Your Entry Did\r\nNot Find A Match\r\nPlease Re-Enter Or\r\nCall " + Program.SERVICE_MANAGER_NUMBER, 5000);
                    Program.logEvent("Failure - Key # not in range");
                    Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "Failure - Key # not in range", "", 0);
                    return(false);
                }
            }
            catch (Exception ex)
            {
                //An application exception was thrown - process/display exception.
                Program.logEvent("GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message);
                Program.SqlManager.ErrorDatabaseEntry(transaction.AccessCode, "", DateTime.Now.ToString(), Program.KIOSK_ID, 0, "GENERAL EXCEPTION:" + "ReservationConfirmation: " + ex.Message, "", 0);
                return(false);
            }
            return(true);
        }
示例#7
0
        public bool EnrollFingerprints(string Userid, int Timeout, BiometricDataManager BioDataManager)
        {
            List <Fmd> PreenrollmentFmds = new List <Fmd>();

            if (Reader.Open(Constants.CapturePriority.DP_PRIORITY_EXCLUSIVE) != Constants.ResultCode.DP_SUCCESS)
            {
                Reader.Dispose();
                throw new Exception("Biometric Scanner Failed\r\nto Open for\r\nEnrollment");
            }

            GetStatus();

            DataResult <Fmd> resultEnrollment; int enrollmentcount = 0;

            SetLabelText(labelMessage, LanguageTranslation.NEW_SCAN_FINGERPRINT);
            do
            {
                CaptureResult Result = Reader.Capture(Constants.Formats.Fid.ANSI, Constants.CaptureProcessing.DP_IMG_PROC_DEFAULT, Timeout, Reader.Capabilities.Resolutions.First <int>());
                if (!CheckCaptureResult(Result))
                {
                    Reader.Dispose();
                    return(false);
                }
                DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(Result.Data, Constants.Formats.Fmd.ANSI);
                PreenrollmentFmds.Add(resultConversion.Data);

                resultEnrollment = DPUruNet.Enrollment.CreateEnrollmentFmd(Constants.Formats.Fmd.ANSI, PreenrollmentFmds);
                enrollmentcount++;

                SetLabelText(labelMessage, LanguageTranslation.AGAIN_SCAN_FINGERPRINT + enrollmentcount);
            } while ((resultEnrollment.ResultCode == Constants.ResultCode.DP_ENROLLMENT_NOT_READY) && (enrollmentcount <= 6));

            if (resultEnrollment.ResultCode == Constants.ResultCode.DP_ENROLLMENT_INVALID_SET)
            {
                Reader.Dispose();
                throw new Exception("Enrollment was unsuccessful.\r\nPlease try again.");
            }
            else if (resultEnrollment.ResultCode == Constants.ResultCode.DP_ENROLLMENT_NOT_READY)
            {
                Reader.Dispose();
                throw new Exception("Enrollment did not have\r\nsufficiently good scans.");
            }

            List <string> Prints = BioDataManager.FindIDByFingerprint(resultEnrollment.Data);

            if (Prints.Count > 0)
            {
                YesNoForm clearprints = new YesNoForm(LanguageTranslation.CLEAR_FINGERPRINT_QUESTION);
                clearprints.ShowDialog();

                if (clearprints.YesResult)
                {
                    foreach (string s in Prints)
                    {
                        BioDataManager.ClearFingerprint(s);
                    }
                    Program.ShowErrorMessage(LanguageTranslation.OLD_PRINTS_CLEARED, 3000);
                }
            }

            SetLabelText(labelMessage, LanguageTranslation.SAVING_FINGERPRINTS);
            BioDataManager.AddFingerprint(Userid, resultEnrollment.Data);
            BioDataManager.SaveFile();

            PreenrollmentFmds.Clear();
            Reader.Dispose();
            Thread.Sleep(2000);
            return(true);
        }