using FaceTransfer; using MaterialSkin.Controls; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Net.Http; using System.Windows.Forms; namespace UtopiaAttService { public partial class LoginForm : MaterialForm { public static string SERVER_URL = "https://portal.utopiaindustries.pk/uind/rest/auth/user"; public static string filePath = "credentials.txt"; public LoginForm() { InitializeComponent(); //Init skin MaterialSkin.MaterialSkinManager skinManager = MaterialSkin.MaterialSkinManager.Instance; skinManager.AddFormToManage(this); skinManager.Theme = MaterialSkin.MaterialSkinManager.Themes.LIGHT; skinManager.ColorScheme = new MaterialSkin.ColorScheme(MaterialSkin.Primary.Green900, MaterialSkin.Primary.BlueGrey900, MaterialSkin.Primary.Blue500, MaterialSkin.Accent.Orange700, MaterialSkin.TextShade.WHITE); // Hide maximize button this.MaximizeBox = false; } private async void authenticate(String username, String password) { HttpClient client = new HttpClient(); client.Timeout = TimeSpan.FromMinutes(5); string paramater= string.Format("{0}/{1}", username, password); var response = await client.GetAsync(string.Format("{0}/{1}", SERVER_URL, paramater)); string responseString = await response.Content.ReadAsStringAsync(); //Dictionary sData = JsonConvert.DeserializeObject>(responseString); if (responseString.Equals("NOT FOUND")) { ShowMessageBox("Incorrect usename and password"); } else { if (cb_remember.Checked) { saveCredentials(); } Form1 form = new Form1(); form.Show(); this.Hide(); } } private void btn_login_Click(object sender, EventArgs e) { if (txt_username.Text.Length > 0 && txt_password.Text.Length > 0) { authenticate(txt_username.Text, txt_password.Text); } else { ShowMessageBox("Please enter username and password"); } } private void ShowMessageBox(string text) { using (var messageBox = new MaterialForm()) { messageBox.StartPosition = FormStartPosition.CenterParent; messageBox.MaximizeBox = false; messageBox.MinimizeBox = false; messageBox.ShowIcon = true; messageBox.Size = new Size(350, 200); messageBox.Text = "Message box"; var Label = new MaterialLabel { Text = text, AutoSize = true, Location = new Point(50, 100), ForeColor = Color.Red, }; var okButton = new MaterialRaisedButton { Text = "OK", Location = new Point(140, 150), }; okButton.Click += (sender, args) => messageBox.Close(); messageBox.Controls.Add(Label); messageBox.Controls.Add(okButton); messageBox.ShowDialog(); } } private void saveCredentials() { // Get the username and password from your input fields string username = txt_username.Text; string password = txt_password.Text; // Define the file path where you want to save the data try { // If the file exists, delete it before creating a new one if (File.Exists(filePath)) { File.Delete(filePath); } // Write the username and password to the file using (StreamWriter writer = new StreamWriter(filePath)) { writer.WriteLine(username); writer.WriteLine(password); } // MessageBox.Show("Credentials saved successfully."); } catch (Exception ex) { // MessageBox.Show("Error saving credentials: " + ex.Message); } } private bool tryReadCredentials(out string username, out string password) { // Initialize variables to store the values username = null; password = null; try { // Check if the file exists if (File.Exists(filePath)) { // Read the lines from the file string[] lines = File.ReadAllLines(filePath); // Check if there are enough lines (username and password) if (lines.Length >= 2) { username = lines[0]; password = lines[1]; return true; // Successfully read the credentials } } } catch (Exception ex) { MessageBox.Show("Error reading credentials: " + ex.Message); } return false; // Failed to read the credentials } private bool isPasswordVisible = false; // Variable to track password visibility private void pb_ShowPassword_Click(object sender, EventArgs e) { if (txt_password.Text.Length > 0) { if (isPasswordVisible) { // Password is currently visible, hide it txt_password.PasswordChar = '*'; // Set PasswordChar to the masking character (e.g., asterisk) } else { // Password is currently hidden, show it txt_password.PasswordChar = '\0'; // Set PasswordChar to an empty character } // Toggle the state of isPasswordVisible isPasswordVisible = !isPasswordVisible; } } } }