コード例 #1
0
ファイル: Main_Form.cs プロジェクト: EFIMCHIK-AA/PASS-KEEPER
        private void Search_B_Click(object sender, EventArgs e)
        {
            String Search = Search_TB.Text.Trim();

            if (Search == String.Empty)
            {
                ResetSearch();
                return;
            }

            SystemArgs.Result.Clear();

            foreach (Position Temp in SystemArgs.Positions)
            {
                if (Temp.GetSearchString().IndexOf(Search) != -1)
                {
                    SystemArgs.Result.Add(Temp);
                }
            }

            if (SystemArgs.Result.Count != 0)
            {
                ShowCurrentPositions(SystemArgs.Result);

                SystemArgs.PrintLog($"Удачное завершение поиска поиска. Результатов {SystemArgs.Result.Count}");
            }
            else
            {
                MessageOneButton Dialog = new MessageOneButton();

                Dialog.Message_L.Text = "Поиск не дал результатов";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                    SystemArgs.PrintLog($"Поиск не дал результатов");
                    return;
                }
            }
        }
コード例 #2
0
        public static String [] GetAllPositions()
        {
            SystemArgs.PrintLog($"Процедура получения позиций пользователя => Старт ");

            String Data = "";

            String[] PathFiles;

            if (Directory.Exists($@"{SystemPath.DataUSers}\{SystemArgs.CurrentUser.Name}"))
            {
                PathFiles = Directory.GetFiles($@"{SystemPath.DataUSers}\{SystemArgs.CurrentUser.Name}");

                for (Int32 i = 0; i < PathFiles.Length; i++)
                {
                    using (StreamReader sr = new StreamReader(File.Open(PathFiles[i], FileMode.Open)))
                    {
                        Data = sr.ReadLine();
                    }

                    PathFiles[i] = Data;
                }
            }
            else
            {
                MessageOneButton Dialog = new MessageOneButton();

                Dialog.Message_L.Text = "Директория пользователя не найдена";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Директория пользователя не найдена");

                return(new String[0]);
            }

            return(PathFiles);
        }
コード例 #3
0
ファイル: Main_Form.cs プロジェクト: EFIMCHIK-AA/PASS-KEEPER
        private void Add_B_Click(object sender, EventArgs e)
        {
            SystemArgs.PrintLog($"Инициализация процедуры добавления позиции");

            PositionForm Dialog = new PositionForm
            {
                BackgroundImage = Properties.Resources.Position
            };

            DataFile.CurrentDateFile = DateTime.Now;

            Dialog.CurrentDate_TB.Text = DataFile.CurrentDateFile.ToString();

            if (Dialog.ShowDialog() == DialogResult.OK)
            {
                Position Temp = new Position(DataFile.CurrentDateFile, Dialog.Name_TB.Text.Trim(), Dialog.Pass_TB.Text.Trim(), Dialog.Description_TB.Text.Trim());

                SystemArgs.Positions.Add(Temp);

                DataFile.SetPosition(Temp.DateCreate, Temp.Name, Temp.Password, Temp.Description, Encryption.GetKeyEncryption());

                MessageOneButton Dialog2 = new MessageOneButton();

                Dialog2.Message_L.Text = "Позиция успешно добавлена";

                if (Dialog2.ShowDialog() == DialogResult.OK)
                {
                }

                ShowCurrentPositions(SystemArgs.Positions);

                SystemArgs.PrintLog($"Добавление позиции завершено успешно");
            }
            else
            {
                SystemArgs.PrintLog($"Процедура добавления позиции отменена");
            }
        }
コード例 #4
0
ファイル: DataFile.cs プロジェクト: EFIMCHIK-AA/PASS-KEEPER
        public static void RemovePosition(Position Position)
        {
            bool Check = false;

            String PathDelete = String.Empty;

            if (Directory.Exists($@"{SystemPath.DataUSers}\{SystemArgs.CurrentUser.Name}"))
            {
                String[] Path = Directory.GetFiles($@"{SystemPath.DataUSers}\{SystemArgs.CurrentUser.Name}");

                foreach (String PathFile in Path)
                {
                    using (StreamReader sw = new StreamReader(File.Open(PathFile, FileMode.Open)))
                    {
                        String[] Temp = sw.ReadLine().Split('_');

                        if ((Temp[0] == Position.DateCreate.ToString()) & (Temp[1] == Position.Name))
                        {
                            Check      = true;
                            PathDelete = PathFile;
                            break;
                        }
                    }
                }

                if (Check)
                {
                    File.Delete(PathDelete);

                    SystemArgs.PrintLog($"Позиция пользователя успешно удалена");
                }
            }
            else
            {
                SystemArgs.PrintLog($"Директория позиций пользователя {SystemArgs.CurrentUser} не найдена");
            }
        }
コード例 #5
0
ファイル: SystemPath.cs プロジェクト: EFIMCHIK-AA/PASS-KEEPER
        public static void GetDataLogPath()
        {
            if (File.Exists(DataLogPath))
            {
                using (StreamReader sr = new StreamReader(File.Open(DataLogPath, FileMode.Open)))
                {
                    DataLog = sr.ReadLine();
                }
            }
            else
            {
                MessageOneButton Dialog = new MessageOneButton();

                Dialog.Message_L.Text = "Файл DateLog.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл DataLog.conf не найден");

                return;
            }
        }
コード例 #6
0
        private void Reg_B_Click(object sender, EventArgs e)
        {
            Reg_Form Dialog = new Reg_Form();

            this.Hide();

            SystemArgs.PrintLog($"Инициализаия процедуры регистарции пользователя");

            if (Dialog.ShowDialog() == DialogResult.OK)
            {
                Registrations.SaveUser(Dialog.Login_TB.Text.Trim(), Hash.GetSHA256(Dialog.Pass_TB.Text.Trim()));

                SystemArgs.PrintLog($"Пользователь успешно зарегистрирован");
            }
            else
            {
                SystemArgs.PrintLog($"Процедура регистрации пользователя отменена");
            }

            SystemArgs.MainForm.Login_TB.Text = "";
            SystemArgs.MainForm.Pass_TB.Text  = "";

            this.Show();
        }
コード例 #7
0
        public static bool GetUserStatus(String Login, String Pass)
        {
            if (File.Exists($@"{SystemPath.DataReg}\{Login}\{Login}.hba"))
            {
                using (StreamReader sr = new StreamReader(File.Open($@"{SystemPath.DataReg}\{Login}\{Login}.hba", FileMode.Open)))
                {
                    String TempLogin = sr.ReadLine();
                    String TempPass  = sr.ReadLine();

                    if (TempLogin == Login)
                    {
                        if (TempPass == Pass)
                        {
                            return(true);
                        }
                        else
                        {
                            MessageOneButton Dialog = new MessageOneButton();

                            Dialog.Message_L.Text = $@"Неправильный логин или пароль";

                            if (Dialog.ShowDialog() == DialogResult.OK)
                            {
                            }

                            SystemArgs.PrintLog($"Получен неправильный логин или пароль");

                            return(false);
                        }
                    }
                    else
                    {
                        MessageOneButton Dialog = new MessageOneButton();

                        Dialog.Message_L.Text = $@"Неправильный логин или пароль";

                        if (Dialog.ShowDialog() == DialogResult.OK)
                        {
                        }

                        SystemArgs.PrintLog($"Получен неправильный логин или пароль");

                        return(false);
                    }
                }
            }
            else
            {
                MessageOneButton Dialog = new MessageOneButton();

                Dialog.Message_L.Text = $@"Файл {Login}.hba не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Конфигурационный файл {Login}.hba не найден");

                return(false);
            }
        }
コード例 #8
0
        private void Enter_B_Click(object sender, EventArgs e)
        {
            String CurrentLogin = Login_TB.Text.Trim();

            if (CurrentLogin != "")
            {
                if (Autorization.GetUserExists(CurrentLogin))
                {
                    String CurrentPass = Pass_TB.Text.Trim();

                    if (CurrentPass != "")
                    {
                        if (Autorization.GetUserStatus(CurrentLogin, Hash.GetSHA256(CurrentPass)))
                        {
                            SystemArgs.CurrentUser = new User(CurrentLogin);

                            SystemArgs.PrintLog($"Пользователь {SystemArgs.CurrentUser.Name} успешно авторизовался");

                            Main_Form Main = new Main_Form();
                            Main.Show();

                            this.Hide();
                        }
                    }
                    else
                    {
                        MessageOneButton Dialog = new MessageOneButton();

                        Dialog.Message_L.Text = "Поле пароля должно содержать значение";

                        if (Dialog.ShowDialog() == DialogResult.OK)
                        {
                        }

                        SystemArgs.PrintLog($"Получено пустое поле пароля");

                        Pass_TB.Focus();
                        return;
                    }
                }
                else
                {
                    MessageOneButton Dialog = new MessageOneButton();

                    Dialog.Message_L.Text = $@"Неправильный логин или пароль";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                    }

                    SystemArgs.PrintLog($"Введен енправильный логин или пароль");
                }
            }
            else
            {
                MessageOneButton Dialog = new MessageOneButton();

                Dialog.Message_L.Text = "Поле логина должно содержать значение";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Получено пустое поле логина");

                Login_TB.Focus();
                return;
            }
        }
コード例 #9
0
        private void Exit_B_Click(object sender, EventArgs e)
        {
            SystemArgs.PrintLog($"Выход из приложения");

            Application.Exit();
        }
コード例 #10
0
ファイル: Main_Form.cs プロジェクト: EFIMCHIK-AA/PASS-KEEPER
        private void Headers_DGV_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            CurrentTypeSort = !CurrentTypeSort;

            if (e.ColumnIndex == 0)
            {
                if (CurrentTypeSort)
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Дата добавления ↑";
                }
                else
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Дата добавления ↓";
                }

                Headers_DGV[1, 0].Value = "Логин";
                Headers_DGV[2, 0].Value = "Пароль";
                Headers_DGV[3, 0].Value = "Наименование | Описание";

                Sort.ByDate(CurrentTypeSort);


                SystemArgs.PrintLog($"Сортировака по дате выполнена");
            }
            else if (e.ColumnIndex == 1)
            {
                if (CurrentTypeSort)
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Логин ↑";
                }
                else
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Логин ↓";
                }

                Headers_DGV[0, 0].Value = "Дата добавления";
                Headers_DGV[2, 0].Value = "Пароль";
                Headers_DGV[3, 0].Value = "Наименование | Описание";

                Sort.ByName(CurrentTypeSort);


                SystemArgs.PrintLog($"Сортировака по логину выполнена");
            }
            else if (e.ColumnIndex == 2)
            {
                if (CurrentTypeSort)
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Пароль ↑";
                }
                else
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Пароль ↓";
                }

                Headers_DGV[0, 0].Value = "Дата добавления";
                Headers_DGV[1, 0].Value = "Логин";
                Headers_DGV[3, 0].Value = "Наименование | Описание";

                Sort.ByPassword(CurrentTypeSort);

                SystemArgs.PrintLog($"Сортировака по паролю выполнена");
            }
            else
            {
                if (CurrentTypeSort)
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Наименование | Описание ↑";
                }
                else
                {
                    Headers_DGV[e.ColumnIndex, 0].Value = "Наименование | Описание ↓";
                }

                Headers_DGV[0, 0].Value = "Дата добавления";
                Headers_DGV[1, 0].Value = "Логин";
                Headers_DGV[2, 0].Value = "Пароль";

                Sort.ByDescription(CurrentTypeSort);

                SystemArgs.PrintLog($"Сортировака по описанию выполнена");
            }

            ShowCurrentPositions(SystemArgs.Positions);
        }
コード例 #11
0
ファイル: DataFile.cs プロジェクト: EFIMCHIK-AA/PASS-KEEPER
        public static void CheckFiles()
        {
            try
            {
                SystemArgs.PrintLog($"Запуск приложения");

                if (!File.Exists(SystemPath.DataRegPath))
                {
                    throw new Exception();
                }

                if (!File.Exists(SystemPath.DataUSersPath))
                {
                    throw new Exception();
                }

                if (!File.Exists(SystemPath.DataLogPath))
                {
                    throw new Exception();
                }

                SystemPath.GetDataRegPath();
                SystemPath.GetDataLogPath();
                SystemPath.GetDataUsersPath();

                if (!Directory.Exists(SystemPath.DataLog))
                {
                    throw new Exception();
                }

                if (!Directory.Exists(SystemPath.DataReg))
                {
                    throw new Exception();
                }

                if (!Directory.Exists(SystemPath.DataUSers))
                {
                    throw new Exception();
                }
            }
            catch (UnauthorizedAccessException)
            {
                MessageOneButton Dialog = new MessageOneButton();

                Dialog.Message_L.Text = "Недостаточно прав для доступа к системным файлам";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Недостаточно прав доступа для запуска ПО");

                Environment.Exit(0); //Завершение процесса
            }
            catch (Exception)
            {
                MessageOneButton Dialog = new MessageOneButton();

                Dialog.Message_L.Text = "Ошибка при получении путей конфигурации";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл конфигурации не найден");

                Environment.Exit(0); //Завершение процесса
            }
        }