private void AccountForm_Load(object sender, EventArgs e) { // Adding AccountTypes to Selection ComboBox using (LeafSecurityEntities db = new LeafSecurityEntities()) { // Populating ComboList with AccountType(s). foreach (AccountType aType in db.AccountTypes) { accountTypeCombo.Items.Add(aType.TypeName); } if (m_accountInformation != null) { // Gathering User Information UserInformation userInfo = (from acc in db.UserInformations where acc.AccountID == m_accountInformation.AccountID select acc).First(); int accType = userInfo.AccountInformation.AccountType.TypeID; // Setting up AccountForm() // User Information firstNameTxt.Text = userInfo.FirstName.ToString(); lastNameTxt.Text = userInfo.LastName; if (userInfo.Email != null) { emailTxt.Text = userInfo.Email; } if (userInfo.PhoneNumber != null) { phoneNumberTxt.Text = userInfo.PhoneNumber; } if (userInfo.Address != null) { addressTxt.Text = userInfo.Address; } // If Admin Account Selected if (accType.Equals(1)) { accountTypeCombo.SelectedItem = accountTypeCombo.Items[0]; passwordTxt.Text = m_accountInformation.AccountUsername; confirmPasswordTxt.Text = m_accountInformation.AccountUsername; stringHashTxt.Text = "Admin Account Doesn't Contain This Item."; } // If User Account Seleted else { accountTypeCombo.SelectedIndex = 1; passwordTxt.Text = m_accountInformation.AccountUsername; } // AccountInformation usernameTxt.Text = userInfo.AccountInformation.AccountNumber; // BiometricInformation if (accType.Equals(2)) { // Gathering Fingerprint Information FingerprintTemplate fingerTemplate = (from acc in db.FingerprintTemplates where acc.AccountID == m_accountInformation.AccountID select acc).First(); // Only works for User Accounts stringHashTxt.Text = Path.GetFileName(fingerTemplate.MinutiaeTemplatePath.TemplatePath); generateHashBtn.Enabled = false; } } } // Enabling Sensor(s) m_FPM = new SGFingerPrintManager(); device_name = SGFPMDeviceName.DEV_FDU03; // ...Initializing Port Address port_addr = (Int32)SGFPMPortAddr.USB_AUTO_DETECT; // ...Initializing Device (HSDUO03P) m_FPM.Init(device_name); iError = m_FPM.OpenDevice(port_addr); fingerprint_device_connected = true; if (iError != (Int32)SGFPMError.ERROR_NONE) { //DialogResult res = MessageBox.Show(this, "Are you sure you have a fingerprint sensor connected?", // "Fingerprint Sensor not Connected", MessageBoxButtons.OK, MessageBoxIcon.Error); //Console.WriteLine("OpenDevice() Error : " + iError); fingerprint_device_connected = false; } if (fingerprint_device_connected) { // Hiding Some Controls, // These controls are only used when fingerprint is not available. imageFilePath.Hide(); templatePathLbl.Hide(); openTempFileBtn.Hide(); groupBox3.Height = 450; // ...Enabling Auto-On Feature m_FPM.EnableAutoOnEvent(true, (int)this.Handle); AutoReadFingerprint_chk.Checked = true; // Getting Device Info SGFPMDeviceInfoParam pInfo = new SGFPMDeviceInfoParam(); pInfo = new SGFPMDeviceInfoParam(); iError = m_FPM.GetDeviceInfo(pInfo); if (iError == (Int32)SGFPMError.ERROR_NONE) { img_w = pInfo.ImageWidth; img_h = pInfo.ImageHeight; img_dpi = pInfo.ImageDPI; } } else { // Hiding Some Controls, // These controls are only used when fingerprint is available. FingerprintPreviewBox.Hide(); AutoReadFingerprint_chk.Hide(); ReadFingerprintBtn.Hide(); fingerprint_preview_lbl.Hide(); } // disabling buttons that are used afer selecting account type AutoReadFingerprint_chk.Checked = false; AutoReadFingerprint_chk.Enabled = false; FingerprintPreviewBox.Hide(); copyHashBtn.Enabled = false; ReadFingerprintBtn.Enabled = false; openTempFileBtn.Enabled = false; imageFilePath.Enabled = false; }
private void doneBtn_Click(object sender, EventArgs e) { errorEncountered = false; using (LeafSecurityEntities db = new LeafSecurityEntities()) { // Checking Personal Information Data. (First Name) if (firstNameTxt.Text.Length.Equals(0)) { errorEncountered = true; firstNameLbl.ForeColor = Color.Red; errorLbl.Show(); } // Checking Personal Information Data. (Last Name) if (lastNameTxt.Text.Length.Equals(0)) { errorEncountered = true; lastNameLbl.ForeColor = Color.Red; errorLbl.Show(); } // Checking Personal Information Data. (Email) if (emailTxt.Text.Length.Equals(0)) { inputTab.SelectTab(0); emailLbl.ForeColor = Color.Blue; DialogResult result = MessageBox.Show("Are you sure you want to leave some fields blank", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.No) { errorEncountered = true; } } // Checking Personal Information Data. (Phone Number) if (phoneNumberTxt.Text.Length.Equals(0)) { inputTab.SelectTab(0); phoneNumberLbl.ForeColor = Color.Blue; DialogResult result = MessageBox.Show("Are you sure you want to leave some fields blank", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.No) { errorEncountered = true; } } // Checking Personal Information Data. if (addressTxt.Text.Length.Equals(0)) { inputTab.SelectTab(0); addressLbl.ForeColor = Color.Blue; DialogResult result = MessageBox.Show("Are you sure you want to leave some fields blank", "Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.No) { errorEncountered = true; } } // Checking Account Data IEnumerable <AccountInformation> anotherAcc = from acc in db.AccountInformations where acc.AccountNumber == usernameTxt.Text select acc; if (!anotherAcc.Count().Equals(0)) { errorEncountered = true; usernameLbl.ForeColor = Color.Red; usernameErrorTooltip.SetToolTip(this.usernameLbl, "User name exists"); usernameErrorTooltip.SetToolTip(this.usernameTxt, "User name exists"); errorLbl.Show(); } if (usernameTxt.Text.Length.Equals(0)) { errorEncountered = true; usernameLbl.ForeColor = Color.Red; usernameErrorTooltip.SetToolTip(this.usernameLbl, "User name not entered."); usernameErrorTooltip.SetToolTip(this.usernameTxt, "User name not entered."); errorLbl.Show(); } if (passwordTxt.Text.Length.Equals(0)) { errorEncountered = true; passwordLbl.ForeColor = Color.Red; confirmPasswordLbl.ForeColor = Color.Red; passwordErrorTooltip.SetToolTip(this.passwordLbl, "Password not entered."); passwordErrorTooltip.SetToolTip(this.confirmPasswordLbl, "Password not entered."); passwordErrorTooltip.SetToolTip(this.passwordTxt, "Password not entered."); passwordErrorTooltip.SetToolTip(this.confirmPasswordTxt, "Password not entered."); errorLbl.Show(); } if (!passwordTxt.Text.Equals(confirmPasswordTxt.Text) && accountTypeCombo.SelectedIndex.Equals(0)) { errorEncountered = true; passwordLbl.ForeColor = Color.Red; confirmPasswordLbl.ForeColor = Color.Red; passwordErrorTooltip.SetToolTip(this.passwordLbl, "Password does not match."); passwordErrorTooltip.SetToolTip(this.confirmPasswordLbl, "Password does not match."); passwordErrorTooltip.SetToolTip(this.passwordTxt, "Password does not match."); passwordErrorTooltip.SetToolTip(this.confirmPasswordTxt, "Password does not match."); errorLbl.Show(); } if (accountTypeCombo.SelectedIndex == -1) { errorEncountered = true; accountTypeLbl.ForeColor = Color.Red; accountTypeErrorTooltip.SetToolTip(this.accountTypeLbl, "Account type not selected."); accountTypeErrorTooltip.SetToolTip(this.accountTypeCombo, "Account type not selected."); } // Checking Template Information // If account type does require fingerprint template if (!accountTypeCombo.SelectedIndex.Equals(0)) { // If template file not provided // and If template is nessesary, meaning fingerprint sensor is not connected if (imageFilePath.Text.Length.Equals(0) && !fingerprint_device_connected) { errorEncountered = true; templatePathLbl.ForeColor = Color.Red; templatePathErrorTooltip.SetToolTip(this.templatePathLbl, "Template not provided."); errorLbl.Show(); } if (!File.Exists(imageFilePath.Text) && !fingerprint_device_connected) { errorEncountered = true; templatePathLbl.ForeColor = Color.Red; templatePathErrorTooltip.SetToolTip(this.templatePathLbl, "Template file doest not exist."); errorLbl.Show(); } // if Fingerprint Sensor is connected but // fingerprint not read yet. if (!this.fingerprintTaken) { errorEncountered = true; fingerprint_preview_lbl.ForeColor = Color.Red; templatePathErrorTooltip.SetToolTip(this.fingerprint_preview_lbl, "Fingerprint Not Provided."); errorLbl.Show(); } } // Entering Verified Data if (!errorEncountered) { if (accountTypeCombo.SelectedIndex.Equals(0)) { // Account Information AccountInformation accountInfo = new AccountInformation(); accountInfo.AccountNumber = usernameTxt.Text; accountInfo.AccountUsername = passwordTxt.Text; accountInfo.TypeID = 1; // Since Account Type 'Admin' is identified as 1 accountInfo.AccountCreationDate = DateTime.Now; db.AccountInformations.Add(accountInfo); db.SaveChanges(); Console.WriteLine("Account ID: {0}", accountInfo.AccountID); // User Information UserInformation userInformation = new UserInformation(); //userInformation.AccountID = (from accTemp in db.AccountInformations // where accTemp.AccountNumber == accountInfo.AccountNumber // select accTemp).First().AccountID; userInformation.AccountID = accountInfo.AccountID; userInformation.FirstName = firstNameTxt.Text; userInformation.LastName = lastNameTxt.Text; userInformation.PhoneNumber = phoneNumberTxt.Text; userInformation.Email = emailTxt.Text; userInformation.Address = addressTxt.Text; db.UserInformations.Add(userInformation); db.SaveChanges(); MessageBox.Show(String.Format("User {0} added to database.", userInformation.FirstName + " " + userInformation.LastName), "User successfully added to database", MessageBoxButtons.OK, MessageBoxIcon.Information); Console.WriteLine("User ID: {0}", userInformation.UserID); Console.WriteLine("Account added to database."); } // If User Account Type is created. else if (accountTypeCombo.SelectedIndex.Equals(1)) { // Account Information AccountInformation accountInfo = new AccountInformation(); accountInfo.AccountNumber = usernameTxt.Text; accountInfo.AccountUsername = passwordTxt.Text; accountInfo.TypeID = 2; // Since Account Type 'User' is identified as 2 accountInfo.AccountCreationDate = DateTime.Now; db.AccountInformations.Add(accountInfo); db.SaveChanges(); Console.WriteLine("Account ID: {0}", accountInfo.AccountID); // User Information UserInformation userInformation = new UserInformation(); //userInformation.AccountID = (from accTemp in db.AccountInformations // where accTemp.AccountNumber == accountInfo.AccountNumber // select accTemp).First().AccountID; userInformation.AccountID = accountInfo.AccountID; userInformation.FirstName = firstNameTxt.Text; userInformation.LastName = lastNameTxt.Text; userInformation.PhoneNumber = phoneNumberTxt.Text; userInformation.Email = emailTxt.Text; userInformation.Address = addressTxt.Text; db.UserInformations.Add(userInformation); db.SaveChanges(); // Minutiae TemplatePath Information DirectoryOps.DefaultApplicationDirectory appDatabaseDir = new DirectoryOps.DefaultApplicationDirectory(Program.defaultApplicationDatabaseDirName); DirectoryOps.DefaultApplicationDirectory matlabGeneratedDir = new DirectoryOps.DefaultApplicationDirectory(Program.defaultMatlabGeneratedDirName); /* Declaring variables used to store: * tempFingerprintFileName - Temporary Fingerprint File from fingerprint sensor. * generatedTemplateFileName - Matlab Generated Minutiea Template File. * */ string tempFingerprintFileName; string generatedTemplateFileName; // Generating Template file using matlab // If fingerprint sensor is connected, generateTemplate() using sensor image // else use fingerprint image from image file if (fingerprint_device_connected) { tempFingerprintFileName = saveFingerprintImage(); generatedTemplateFileName = generateTemplate(tempFingerprintFileName); } else { generatedTemplateFileName = generateTemplate(); } try { if (FileOps.FileOperation.Save( Path.Combine(matlabGeneratedDir.Path, generatedTemplateFileName), appDatabaseDir.Path, stringHashTxt.Text)) { Console.WriteLine("File saved as: {0}", Path.Combine(appDatabaseDir.Path, stringHashTxt.Text)); } } catch (Exception exc) { MessageBox.Show( exc.Message, "Exception Occured!", MessageBoxButtons.OK, MessageBoxIcon.Warning ); } MinutiaeTemplatePath minutiaeTemplatePath = new MinutiaeTemplatePath(); minutiaeTemplatePath.TemplatePath = Path.Combine(appDatabaseDir.Path, stringHashTxt.Text); db.MinutiaeTemplatePaths.Add(minutiaeTemplatePath); db.SaveChanges(); // Template Information FingerprintTemplate fingerprintTemplate = new FingerprintTemplate(); fingerprintTemplate.AccountID = accountInfo.AccountID; fingerprintTemplate.MinutiaeTemplateID = minutiaeTemplatePath.ID; db.FingerprintTemplates.Add(fingerprintTemplate); db.SaveChanges(); MessageBox.Show(String.Format("User {0} added to database.", userInformation.FirstName + " " + userInformation.LastName), "User successfully added to database", MessageBoxButtons.OK, MessageBoxIcon.Information); Console.WriteLine("User ID: {0}", userInformation.UserID); Console.WriteLine("Account added to database."); this.Close(); } } } }