Selaa lähdekoodia

Редактирование персональных данных сотрудников охраны

Вячеслав Терешенко 2 vuotta sitten
vanhempi
commit
dd25c3cfe5

+ 5 - 1
ImpulseVision/Animator.cs

@@ -84,7 +84,11 @@ namespace ImpulseVision
 
         private static Animation GetDuplicate(Animation Anim)
         {
-            return AnimationList.Find(a => a.ID == Anim.ID);
+            try
+            {
+                return AnimationList.Find(a => a.ID == Anim.ID);
+            }
+            catch { return null; }
         }
     }
 }

+ 4 - 8
ImpulseVision/ApplicationParameters.cs

@@ -310,19 +310,15 @@ namespace ImpulseVision
         private int GetCountDay()
         {
             int CountDay = 2;
-            try
+            RegistryKey Reg = Registry.CurrentUser.OpenSubKey("Software\\ImpulseVisionApp");
+            if (Reg != null)
             {
-                RegistryKey Reg = Registry.CurrentUser.OpenSubKey("Software\\ImpulseVisionApp");
-                if (Reg != null)
+                if (Reg.GetValue("countDay") != null)
                 {
-                    if (Reg.GetValue("countDay") != null)
-                    {
-                        CountDay = (int)Reg.GetValue("countDay");
-                    }
+                    CountDay = (int)Reg.GetValue("countDay");
                 }
                 Reg.Close();
             }
-            catch { }
             return CountDay;
         }
         /// <summary>

+ 372 - 0
ImpulseVision/FormEditingGuard.Designer.cs

@@ -0,0 +1,372 @@
+namespace ImpulseVision
+{
+    partial class FormEditingGuard
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormEditingGuard));
+            this.LblTextEditUser = new System.Windows.Forms.Label();
+            this.RPanelTextEditUser = new ImpulseVision.RPanel();
+            this.TbxLogin = new ImpulseVision.EgoldsGoogleTextBox();
+            this.BsGuard = new System.Windows.Forms.BindingSource(this.components);
+            this.impulseVisionAppDataSet1 = new ImpulseVision.ImpulseVisionAppDataSet();
+            this.BtnSaveEditing = new System.Windows.Forms.Button();
+            this.BtnCancel = new System.Windows.Forms.Button();
+            this.TbxPassportNumber = new ImpulseVision.EgoldsGoogleTextBox();
+            this.TbxPassportSeria = new ImpulseVision.EgoldsGoogleTextBox();
+            this.TbxPatronymic = new ImpulseVision.EgoldsGoogleTextBox();
+            this.TbxFirstname = new ImpulseVision.EgoldsGoogleTextBox();
+            this.TbxLastname = new ImpulseVision.EgoldsGoogleTextBox();
+            this.TbxPass = new ImpulseVision.EgoldsGoogleTextBox();
+            this.TbxConfirmPass = new ImpulseVision.EgoldsGoogleTextBox();
+            this.LblUserType = new System.Windows.Forms.Label();
+            this.staffsTableAdapter = new ImpulseVision.ImpulseVisionAppDataSetTableAdapters.StaffsTableAdapter();
+            this.RPanelTextEditUser.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.BsGuard)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.impulseVisionAppDataSet1)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // LblTextEditUser
+            // 
+            this.LblTextEditUser.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.LblTextEditUser.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.LblTextEditUser.Location = new System.Drawing.Point(3, 0);
+            this.LblTextEditUser.Name = "LblTextEditUser";
+            this.LblTextEditUser.Size = new System.Drawing.Size(366, 25);
+            this.LblTextEditUser.TabIndex = 1;
+            this.LblTextEditUser.Text = "<О сотруднике>";
+            this.LblTextEditUser.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+            // 
+            // RPanelTextEditUser
+            // 
+            this.RPanelTextEditUser.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.RPanelTextEditUser.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(73)))), ((int)(((byte)(104)))), ((int)(((byte)(112)))));
+            this.RPanelTextEditUser.BackColorAdditional = System.Drawing.Color.Gray;
+            this.RPanelTextEditUser.BackColorGradientEnabled = false;
+            this.RPanelTextEditUser.BackColorGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Horizontal;
+            this.RPanelTextEditUser.BorderColor = System.Drawing.Color.Tomato;
+            this.RPanelTextEditUser.BorderColorEnabled = false;
+            this.RPanelTextEditUser.BorderColorOnHover = System.Drawing.Color.Tomato;
+            this.RPanelTextEditUser.BorderColorOnHoverEnabled = false;
+            this.RPanelTextEditUser.Controls.Add(this.LblTextEditUser);
+            this.RPanelTextEditUser.Cursor = System.Windows.Forms.Cursors.Default;
+            this.RPanelTextEditUser.Font = new System.Drawing.Font("Verdana", 8.25F);
+            this.RPanelTextEditUser.ForeColor = System.Drawing.Color.White;
+            this.RPanelTextEditUser.Location = new System.Drawing.Point(2, 2);
+            this.RPanelTextEditUser.Name = "RPanelTextEditUser";
+            this.RPanelTextEditUser.RippleColor = System.Drawing.Color.Black;
+            this.RPanelTextEditUser.RoundingEnable = true;
+            this.RPanelTextEditUser.Size = new System.Drawing.Size(372, 27);
+            this.RPanelTextEditUser.TabIndex = 1;
+            this.RPanelTextEditUser.TextHover = null;
+            this.RPanelTextEditUser.UseDownPressEffectOnClick = false;
+            this.RPanelTextEditUser.UseRippleEffect = true;
+            this.RPanelTextEditUser.UseZoomEffectOnHover = false;
+            // 
+            // TbxLogin
+            // 
+            this.TbxLogin.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxLogin.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxLogin.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxLogin.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxLogin.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxLogin.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "Login", true));
+            this.TbxLogin.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxLogin.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxLogin.ForeColor = System.Drawing.Color.Black;
+            this.TbxLogin.Location = new System.Drawing.Point(11, 266);
+            this.TbxLogin.Name = "TbxLogin";
+            this.TbxLogin.SelectionStart = 0;
+            this.TbxLogin.Size = new System.Drawing.Size(352, 40);
+            this.TbxLogin.TabIndex = 17;
+            this.TbxLogin.TextInput = "";
+            this.TbxLogin.TextPreview = "Логин";
+            this.TbxLogin.UseSystemPasswordChar = false;
+            // 
+            // BsGuard
+            // 
+            this.BsGuard.DataMember = "Staffs";
+            this.BsGuard.DataSource = this.impulseVisionAppDataSet1;
+            // 
+            // impulseVisionAppDataSet1
+            // 
+            this.impulseVisionAppDataSet1.DataSetName = "ImpulseVisionAppDataSet";
+            this.impulseVisionAppDataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema;
+            // 
+            // BtnSaveEditing
+            // 
+            this.BtnSaveEditing.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.BtnSaveEditing.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.BtnSaveEditing.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.BtnSaveEditing.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(255)))), ((int)(((byte)(248)))));
+            this.BtnSaveEditing.Location = new System.Drawing.Point(198, 408);
+            this.BtnSaveEditing.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+            this.BtnSaveEditing.Name = "BtnSaveEditing";
+            this.BtnSaveEditing.Size = new System.Drawing.Size(165, 35);
+            this.BtnSaveEditing.TabIndex = 16;
+            this.BtnSaveEditing.Text = "Сохранить";
+            this.BtnSaveEditing.UseVisualStyleBackColor = false;
+            this.BtnSaveEditing.Click += new System.EventHandler(this.BtnSaveEditing_Click);
+            // 
+            // BtnCancel
+            // 
+            this.BtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+            this.BtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.BtnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.BtnCancel.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.BtnCancel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(255)))), ((int)(((byte)(248)))));
+            this.BtnCancel.Location = new System.Drawing.Point(11, 408);
+            this.BtnCancel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+            this.BtnCancel.Name = "BtnCancel";
+            this.BtnCancel.Size = new System.Drawing.Size(165, 35);
+            this.BtnCancel.TabIndex = 15;
+            this.BtnCancel.Text = "Отменить";
+            this.BtnCancel.UseVisualStyleBackColor = false;
+            // 
+            // TbxPassportNumber
+            // 
+            this.TbxPassportNumber.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxPassportNumber.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxPassportNumber.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxPassportNumber.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxPassportNumber.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxPassportNumber.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "PassportNum", true));
+            this.TbxPassportNumber.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxPassportNumber.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxPassportNumber.ForeColor = System.Drawing.Color.Black;
+            this.TbxPassportNumber.Location = new System.Drawing.Point(11, 220);
+            this.TbxPassportNumber.Name = "TbxPassportNumber";
+            this.TbxPassportNumber.SelectionStart = 0;
+            this.TbxPassportNumber.Size = new System.Drawing.Size(352, 40);
+            this.TbxPassportNumber.TabIndex = 14;
+            this.TbxPassportNumber.TextInput = "";
+            this.TbxPassportNumber.TextPreview = "Номер паспорта";
+            this.TbxPassportNumber.UseSystemPasswordChar = false;
+            this.TbxPassportNumber.Validated += new System.EventHandler(this.TbxPassportNumber_Validated);
+            // 
+            // TbxPassportSeria
+            // 
+            this.TbxPassportSeria.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxPassportSeria.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxPassportSeria.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxPassportSeria.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxPassportSeria.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxPassportSeria.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "PassportSeria", true));
+            this.TbxPassportSeria.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxPassportSeria.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxPassportSeria.ForeColor = System.Drawing.Color.Black;
+            this.TbxPassportSeria.Location = new System.Drawing.Point(11, 174);
+            this.TbxPassportSeria.Name = "TbxPassportSeria";
+            this.TbxPassportSeria.SelectionStart = 0;
+            this.TbxPassportSeria.Size = new System.Drawing.Size(352, 40);
+            this.TbxPassportSeria.TabIndex = 13;
+            this.TbxPassportSeria.TextInput = "";
+            this.TbxPassportSeria.TextPreview = "Серия паспорта";
+            this.TbxPassportSeria.UseSystemPasswordChar = false;
+            this.TbxPassportSeria.Validated += new System.EventHandler(this.TbxPassportSeria_Validated);
+            // 
+            // TbxPatronymic
+            // 
+            this.TbxPatronymic.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxPatronymic.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxPatronymic.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxPatronymic.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxPatronymic.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxPatronymic.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "Patronymic", true));
+            this.TbxPatronymic.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxPatronymic.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxPatronymic.ForeColor = System.Drawing.Color.Black;
+            this.TbxPatronymic.Location = new System.Drawing.Point(11, 128);
+            this.TbxPatronymic.Name = "TbxPatronymic";
+            this.TbxPatronymic.SelectionStart = 0;
+            this.TbxPatronymic.Size = new System.Drawing.Size(352, 40);
+            this.TbxPatronymic.TabIndex = 12;
+            this.TbxPatronymic.TextInput = "";
+            this.TbxPatronymic.TextPreview = "Отчество";
+            this.TbxPatronymic.UseSystemPasswordChar = false;
+            // 
+            // TbxFirstname
+            // 
+            this.TbxFirstname.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxFirstname.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxFirstname.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxFirstname.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxFirstname.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxFirstname.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "Firstname", true));
+            this.TbxFirstname.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxFirstname.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxFirstname.ForeColor = System.Drawing.Color.Black;
+            this.TbxFirstname.Location = new System.Drawing.Point(11, 82);
+            this.TbxFirstname.Name = "TbxFirstname";
+            this.TbxFirstname.SelectionStart = 0;
+            this.TbxFirstname.Size = new System.Drawing.Size(352, 40);
+            this.TbxFirstname.TabIndex = 11;
+            this.TbxFirstname.TextInput = "";
+            this.TbxFirstname.TextPreview = "Имя";
+            this.TbxFirstname.UseSystemPasswordChar = false;
+            // 
+            // TbxLastname
+            // 
+            this.TbxLastname.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxLastname.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxLastname.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxLastname.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxLastname.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxLastname.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "Lastname", true));
+            this.TbxLastname.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxLastname.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxLastname.ForeColor = System.Drawing.Color.Black;
+            this.TbxLastname.Location = new System.Drawing.Point(11, 36);
+            this.TbxLastname.Name = "TbxLastname";
+            this.TbxLastname.SelectionStart = 0;
+            this.TbxLastname.Size = new System.Drawing.Size(352, 40);
+            this.TbxLastname.TabIndex = 10;
+            this.TbxLastname.TextInput = "";
+            this.TbxLastname.TextPreview = "Фамилия";
+            this.TbxLastname.UseSystemPasswordChar = false;
+            // 
+            // TbxPass
+            // 
+            this.TbxPass.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxPass.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxPass.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxPass.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxPass.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxPass.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "Password", true));
+            this.TbxPass.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxPass.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxPass.ForeColor = System.Drawing.Color.Black;
+            this.TbxPass.Location = new System.Drawing.Point(11, 312);
+            this.TbxPass.Name = "TbxPass";
+            this.TbxPass.SelectionStart = 0;
+            this.TbxPass.Size = new System.Drawing.Size(352, 40);
+            this.TbxPass.TabIndex = 18;
+            this.TbxPass.TextInput = "";
+            this.TbxPass.TextPreview = "Пароль";
+            this.TbxPass.UseSystemPasswordChar = false;
+            // 
+            // TbxConfirmPass
+            // 
+            this.TbxConfirmPass.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TbxConfirmPass.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.TbxConfirmPass.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(137)))), ((int)(((byte)(60)))), ((int)(((byte)(143)))));
+            this.TbxConfirmPass.BorderColorNotActive = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
+            this.TbxConfirmPass.Cursor = System.Windows.Forms.Cursors.IBeam;
+            this.TbxConfirmPass.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.TbxConfirmPass.FontTextPreview = new System.Drawing.Font("Arial", 8F, System.Drawing.FontStyle.Bold);
+            this.TbxConfirmPass.ForeColor = System.Drawing.Color.Black;
+            this.TbxConfirmPass.Location = new System.Drawing.Point(11, 358);
+            this.TbxConfirmPass.Name = "TbxConfirmPass";
+            this.TbxConfirmPass.SelectionStart = 0;
+            this.TbxConfirmPass.Size = new System.Drawing.Size(352, 40);
+            this.TbxConfirmPass.TabIndex = 19;
+            this.TbxConfirmPass.TextInput = "";
+            this.TbxConfirmPass.TextPreview = "Подтвердите пароль";
+            this.TbxConfirmPass.UseSystemPasswordChar = false;
+            // 
+            // LblUserType
+            // 
+            this.LblUserType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+            this.LblUserType.AutoSize = true;
+            this.LblUserType.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.BsGuard, "IDStaffsType", true));
+            this.LblUserType.Location = new System.Drawing.Point(355, 32);
+            this.LblUserType.Name = "LblUserType";
+            this.LblUserType.Size = new System.Drawing.Size(19, 21);
+            this.LblUserType.TabIndex = 20;
+            this.LblUserType.Text = "2";
+            // 
+            // staffsTableAdapter
+            // 
+            this.staffsTableAdapter.ClearBeforeFill = true;
+            // 
+            // FormEditingGuard
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 21F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(255)))), ((int)(((byte)(252)))));
+            this.ClientSize = new System.Drawing.Size(375, 455);
+            this.Controls.Add(this.LblUserType);
+            this.Controls.Add(this.TbxConfirmPass);
+            this.Controls.Add(this.TbxPass);
+            this.Controls.Add(this.TbxLogin);
+            this.Controls.Add(this.BtnSaveEditing);
+            this.Controls.Add(this.BtnCancel);
+            this.Controls.Add(this.TbxPassportNumber);
+            this.Controls.Add(this.TbxPassportSeria);
+            this.Controls.Add(this.TbxPatronymic);
+            this.Controls.Add(this.TbxFirstname);
+            this.Controls.Add(this.TbxLastname);
+            this.Controls.Add(this.RPanelTextEditUser);
+            this.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+            this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
+            this.MaximizeBox = false;
+            this.MinimizeBox = false;
+            this.Name = "FormEditingGuard";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.Text = "ImpulseVision";
+            this.Load += new System.EventHandler(this.FormEditingGuard_Load);
+            this.RPanelTextEditUser.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.BsGuard)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.impulseVisionAppDataSet1)).EndInit();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label LblTextEditUser;
+        private RPanel RPanelTextEditUser;
+        private EgoldsGoogleTextBox TbxLogin;
+        private System.Windows.Forms.Button BtnSaveEditing;
+        private System.Windows.Forms.Button BtnCancel;
+        private EgoldsGoogleTextBox TbxPassportNumber;
+        private EgoldsGoogleTextBox TbxPassportSeria;
+        private EgoldsGoogleTextBox TbxPatronymic;
+        private EgoldsGoogleTextBox TbxFirstname;
+        private EgoldsGoogleTextBox TbxLastname;
+        private EgoldsGoogleTextBox TbxPass;
+        private EgoldsGoogleTextBox TbxConfirmPass;
+        private System.Windows.Forms.Label LblUserType;
+        private ImpulseVisionAppDataSet impulseVisionAppDataSet1;
+        private System.Windows.Forms.BindingSource BsGuard;
+        private ImpulseVisionAppDataSetTableAdapters.StaffsTableAdapter staffsTableAdapter;
+    }
+}

+ 137 - 0
ImpulseVision/FormEditingGuard.cs

@@ -0,0 +1,137 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using System.Data.SqlClient;
+
+namespace ImpulseVision
+{
+    public partial class FormEditingGuard : Form
+    {
+        public FormEditingGuard(bool operations,string userID)
+        {
+            InitializeComponent();
+            Operations = operations;
+            UserID = userID;
+        }
+        #region <Переменные>
+        //true - добавление; false - редактирование.
+        private bool Operations { get; set; }
+        private string UserID { get; set; }
+        SqlConnection SCon = new SqlConnection(Properties.Settings.Default.ImpulseVisionAppConnectionString);
+        #endregion
+        private void FormEditingGuard_Load(object sender, EventArgs e)
+        {
+            // TODO: This line of code loads data into the 'impulseVisionAppDataSet1.Staffs' table. You can move, or remove it, as needed.
+            this.staffsTableAdapter.Fill(this.impulseVisionAppDataSet1.Staffs);
+            if (Operations)
+            {
+                BsGuard.AddNew();
+                BtnSaveEditing.Text = "Добавить";
+            }
+            else
+            {
+                BsGuard.Filter = $@"ID = '{UserID}'";
+            }
+            LblUserType.Hide();
+            
+        }
+
+        private void BtnSaveEditing_Click(object sender, EventArgs e)
+        {
+            bool IsNotCorrectData = TbxLastname.Text.Trim() == "" || TbxFirstname.Text.Trim() == "" || TbxPassportSeria.Text.Trim() == "" || TbxPassportNumber.Text.Trim() == "" || TbxLogin.Text.Trim() == "" || TbxPass.Text.Trim() == "";
+            if(IsNotCorrectData)
+            {
+                MessageBox.Show("Заполните все поля и повторите попытку!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                return;
+            }
+            if (TbxPassportSeria.Text.Trim().Length < 4)
+            {
+                MessageBox.Show("Введите серию паспорта и повторите попытку!","ImpulseVision",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
+                return;
+            }
+            if (TbxPassportNumber.Text.Trim().Length < 6)
+            {
+                MessageBox.Show("Введите номер паспорта и повторите попытку!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                return;
+            }
+            if (ExistsLogin(TbxLogin.Text.Trim()) && Operations)
+            {
+                MessageBox.Show("Пользователь с таким логином уже существует!\r\nПридумайте новый логин и повторите попытку. ", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                return;
+            }
+            if(TbxPass.Text.Trim().Length < 4)
+            {
+                MessageBox.Show("Длина пароля должна быть не менее 4-х символов!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                return;
+            }
+            if (!Operations)
+            {
+                if (TbxConfirmPass.Text.Trim() != string.Empty)
+                {
+                    if (TbxPass.Text.Trim() != TbxConfirmPass.Text.Trim())
+                    {
+                        MessageBox.Show("Подтвердите новый пароль!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                        return;
+                    }
+                }
+            }
+            else
+            {
+                if (TbxConfirmPass.Text.Trim() != TbxPass.Text.Trim())
+                {
+                    MessageBox.Show("Подтвердите новый пароль!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                    return;
+                }
+            }
+            LblUserType.Text = "2";
+
+            BsGuard.EndEdit();
+            this.staffsTableAdapter.Update(this.impulseVisionAppDataSet1.Staffs);
+            this.DialogResult = DialogResult.OK;
+            Close();
+        }
+        /// <summary>
+        /// проверка логина на существование
+        /// </summary>
+        /// <param name="login">логин</param>
+        /// <returns>логическое значение true или false</returns>
+        private bool ExistsLogin(string login)
+        {
+            bool Result = false;
+            SCon.Open();
+            string QueryCheckLogin = $@"select *
+from Staffs
+where [Login] = '{login}'";
+            SqlCommand Cmd = new SqlCommand(QueryCheckLogin, SCon);
+            SqlDataReader Res = Cmd.ExecuteReader();
+            if(Res.HasRows)
+            {
+                Result = true;
+            }
+            SCon.Close();
+            return Result;
+        }
+        private void TbxPassportSeria_Validated(object sender, EventArgs e)
+        {
+            if (TbxPassportSeria.Text.Trim().Length > 4)
+            {
+                TbxPassportSeria.Text = TbxPassportSeria.Text.Trim().Substring(0, 4);
+            }
+        }
+
+        private void TbxPassportNumber_Validated(object sender, EventArgs e)
+        {
+            if (TbxPassportNumber.Text.Trim().Length > 6)
+            {
+                TbxPassportNumber.Text = TbxPassportNumber.Text.Trim().Substring(0, 6);
+            }
+
+        }
+    }
+}

+ 578 - 0
ImpulseVision/FormEditingGuard.resx

@@ -0,0 +1,578 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="BsGuard.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>216, 17</value>
+  </metadata>
+  <metadata name="impulseVisionAppDataSet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <metadata name="staffsTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>313, 17</value>
+  </metadata>
+  <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>60</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        OLyaO88Y2AAAAABJRU5ErkJggg==
+</value>
+  </data>
+</root>

+ 54 - 19
ImpulseVision/FormMain.Designer.cs

@@ -32,6 +32,9 @@
             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
             this.menuStrip1 = new System.Windows.Forms.MenuStrip();
             this.MFile = new System.Windows.Forms.ToolStripMenuItem();
+            this.видToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.SViewGuard = new System.Windows.Forms.ToolStripMenuItem();
+            this.SViewPlainUser = new System.Windows.Forms.ToolStripMenuItem();
             this.MSettings = new System.Windows.Forms.ToolStripMenuItem();
             this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
             this.STools = new System.Windows.Forms.ToolStripMenuItem();
@@ -55,7 +58,7 @@
             this.TbUsers = new System.Windows.Forms.TabPage();
             this.TableUsers = new System.Windows.Forms.TableLayoutPanel();
             this.RPanelUser = new ImpulseVision.RPanel();
-            this.label4 = new System.Windows.Forms.Label();
+            this.LblTitleUserType = new System.Windows.Forms.Label();
             this.TbMain = new System.Windows.Forms.TabPage();
             this.TableLayoutWorks = new System.Windows.Forms.TableLayoutPanel();
             this.PbxEther = new System.Windows.Forms.PictureBox();
@@ -154,6 +157,7 @@
             // 
             this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.MFile,
+            this.видToolStripMenuItem,
             this.MSettings});
             this.menuStrip1.Location = new System.Drawing.Point(0, 0);
             this.menuStrip1.Name = "menuStrip1";
@@ -169,6 +173,31 @@
             this.MFile.Text = "Главная";
             this.MFile.Click += new System.EventHandler(this.MMain_Click);
             // 
+            // видToolStripMenuItem
+            // 
+            this.видToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.SViewGuard,
+            this.SViewPlainUser});
+            this.видToolStripMenuItem.Name = "видToolStripMenuItem";
+            this.видToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
+            this.видToolStripMenuItem.Text = "Вид";
+            // 
+            // SViewGuard
+            // 
+            this.SViewGuard.Image = global::ImpulseVision.Properties.Resources.shield_check;
+            this.SViewGuard.Name = "SViewGuard";
+            this.SViewGuard.Size = new System.Drawing.Size(207, 22);
+            this.SViewGuard.Text = "Сотрудники охраны";
+            this.SViewGuard.Click += new System.EventHandler(this.SViewGuard_Click);
+            // 
+            // SViewPlainUser
+            // 
+            this.SViewPlainUser.Image = global::ImpulseVision.Properties.Resources.users;
+            this.SViewPlainUser.Name = "SViewPlainUser";
+            this.SViewPlainUser.Size = new System.Drawing.Size(207, 22);
+            this.SViewPlainUser.Text = "Обычные пользователи";
+            this.SViewPlainUser.Click += new System.EventHandler(this.SViewPlainUser_Click);
+            // 
             // MSettings
             // 
             this.MSettings.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -179,6 +208,7 @@
             this.MSettings.Name = "MSettings";
             this.MSettings.Size = new System.Drawing.Size(83, 20);
             this.MSettings.Text = "Параметры";
+            this.MSettings.Click += new System.EventHandler(this.MSettings_Click);
             // 
             // toolStripMenuItem2
             // 
@@ -187,6 +217,7 @@
             // 
             // STools
             // 
+            this.STools.Image = global::ImpulseVision.Properties.Resources.settings;
             this.STools.Name = "STools";
             this.STools.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift) 
             | System.Windows.Forms.Keys.S)));
@@ -201,6 +232,7 @@
             // 
             // SJournal
             // 
+            this.SJournal.Image = global::ImpulseVision.Properties.Resources.book_alt;
             this.SJournal.Name = "SJournal";
             this.SJournal.Size = new System.Drawing.Size(206, 22);
             this.SJournal.Text = "Журнал отклонённых";
@@ -373,7 +405,7 @@
             this.RPanelUser.BorderColorEnabled = false;
             this.RPanelUser.BorderColorOnHover = System.Drawing.Color.Tomato;
             this.RPanelUser.BorderColorOnHoverEnabled = false;
-            this.RPanelUser.Controls.Add(this.label4);
+            this.RPanelUser.Controls.Add(this.LblTitleUserType);
             this.RPanelUser.Cursor = System.Windows.Forms.Cursors.Default;
             this.RPanelUser.Font = new System.Drawing.Font("Verdana", 8.25F);
             this.RPanelUser.ForeColor = System.Drawing.Color.White;
@@ -388,18 +420,18 @@
             this.RPanelUser.UseRippleEffect = true;
             this.RPanelUser.UseZoomEffectOnHover = false;
             // 
-            // label4
+            // LblTitleUserType
             // 
-            this.label4.BackColor = System.Drawing.Color.Transparent;
-            this.label4.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.label4.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
-            this.label4.ForeColor = System.Drawing.Color.White;
-            this.label4.Location = new System.Drawing.Point(0, 0);
-            this.label4.Name = "label4";
-            this.label4.Size = new System.Drawing.Size(778, 25);
-            this.label4.TabIndex = 5;
-            this.label4.Text = "<Пользователи>";
-            this.label4.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+            this.LblTitleUserType.BackColor = System.Drawing.Color.Transparent;
+            this.LblTitleUserType.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.LblTitleUserType.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
+            this.LblTitleUserType.ForeColor = System.Drawing.Color.White;
+            this.LblTitleUserType.Location = new System.Drawing.Point(0, 0);
+            this.LblTitleUserType.Name = "LblTitleUserType";
+            this.LblTitleUserType.Size = new System.Drawing.Size(778, 25);
+            this.LblTitleUserType.TabIndex = 5;
+            this.LblTitleUserType.Text = "<Пользователи>";
+            this.LblTitleUserType.TextAlign = System.Drawing.ContentAlignment.TopCenter;
             // 
             // TbMain
             // 
@@ -649,7 +681,7 @@
             this.GbxUserParameters.Controls.Add(this.TbxLogin);
             this.GbxUserParameters.Location = new System.Drawing.Point(543, 37);
             this.GbxUserParameters.Name = "GbxUserParameters";
-            this.GbxUserParameters.Size = new System.Drawing.Size(232, 322);
+            this.GbxUserParameters.Size = new System.Drawing.Size(232, 362);
             this.GbxUserParameters.TabIndex = 12;
             this.GbxUserParameters.TabStop = false;
             this.GbxUserParameters.Text = "Параметры пользователя";
@@ -680,7 +712,7 @@
             this.BtnEditUserParameters.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(124)))), ((int)(((byte)(136)))), ((int)(((byte)(144)))));
             this.BtnEditUserParameters.Font = new System.Drawing.Font("Segoe UI Variable Small Semibol", 12F, System.Drawing.FontStyle.Bold);
             this.BtnEditUserParameters.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(246)))), ((int)(((byte)(255)))), ((int)(((byte)(248)))));
-            this.BtnEditUserParameters.Location = new System.Drawing.Point(6, 281);
+            this.BtnEditUserParameters.Location = new System.Drawing.Point(6, 321);
             this.BtnEditUserParameters.Name = "BtnEditUserParameters";
             this.BtnEditUserParameters.Size = new System.Drawing.Size(220, 35);
             this.BtnEditUserParameters.TabIndex = 11;
@@ -785,7 +817,7 @@
             this.GbxSystemParameters.Controls.Add(this.label10);
             this.GbxSystemParameters.Location = new System.Drawing.Point(8, 37);
             this.GbxSystemParameters.Name = "GbxSystemParameters";
-            this.GbxSystemParameters.Size = new System.Drawing.Size(529, 322);
+            this.GbxSystemParameters.Size = new System.Drawing.Size(529, 362);
             this.GbxSystemParameters.TabIndex = 11;
             this.GbxSystemParameters.TabStop = false;
             this.GbxSystemParameters.Text = "Параметры системы";
@@ -1178,7 +1210,7 @@
             this.TabJournal.Name = "TabJournal";
             this.TabJournal.RowCount = 1;
             this.TabJournal.RowStyles.Add(new System.Windows.Forms.RowStyle());
-            this.TabJournal.Size = new System.Drawing.Size(781, 284);
+            this.TabJournal.Size = new System.Drawing.Size(781, 324);
             this.TabJournal.TabIndex = 5;
             // 
             // DtpFiniteDate
@@ -1275,7 +1307,7 @@
             this.TabCard.Name = "TabCard";
             this.TabCard.RowCount = 1;
             this.TabCard.RowStyles.Add(new System.Windows.Forms.RowStyle());
-            this.TabCard.Size = new System.Drawing.Size(775, 363);
+            this.TabCard.Size = new System.Drawing.Size(775, 403);
             this.TabCard.TabIndex = 8;
             // 
             // RPanelTitleJournal
@@ -1430,7 +1462,7 @@
         private System.Windows.Forms.TabPage TbUsers;
         private System.Windows.Forms.Label LblTextSettings;
         private System.Windows.Forms.ImageList ImList;
-        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.Label LblTitleUserType;
         private EgoldsGoogleTextBox TbxLastname;
         private EgoldsToggleSwitch SwAutoRun;
         private RPanel RPanelSettings;
@@ -1490,6 +1522,9 @@
         public System.Windows.Forms.BindingSource BsAdministrator;
         private ImpulseVisionAppDataSetTableAdapters.StaffsTableAdapter staffsTableAdapter;
         private System.Windows.Forms.Label LblAdminID;
+        private System.Windows.Forms.ToolStripMenuItem видToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem SViewGuard;
+        private System.Windows.Forms.ToolStripMenuItem SViewPlainUser;
     }
 }
 

+ 139 - 59
ImpulseVision/FormMain.cs

@@ -123,6 +123,10 @@ namespace ImpulseVision
         List<string> LstPathImage = new List<string>();
         //уведомление о том, что сохранение выполнено
         bool Saving = false;
+        /// <summary>
+        /// отображение пользователей 1 - обычный пользователь, 0- сотрудник охраны
+        /// </summary>
+        int ViewUserByType = 1;
         #endregion
         //пути доступа к изображениям пользователей
         List<Pictures> LstUserPictures = new List<Pictures>();
@@ -254,7 +258,9 @@ namespace ImpulseVision
             CmbSortDate.SelectedIndex = 0;
             DtpFiniteDate.Value = DateTime.Now.Date;
 
-            GetUsersFromDB();
+            ViewUserByType = 1;
+
+            GetUsersFromDB(ViewUserByType);
         }
         /// <summary>
         /// применение параметров формы
@@ -316,6 +322,11 @@ namespace ImpulseVision
         /// </summary>
         private void BtnDelUser_Click(object sender, EventArgs e)
         {
+            string NameUserType = "Users";
+            if (ViewUserByType == 0)
+            {
+                NameUserType = "Staffs";
+            }
             string IdUser = string.Empty;
 
             IdUser = CurrentUser.UserID;
@@ -323,41 +334,58 @@ namespace ImpulseVision
             if (Res == DialogResult.No)
                 return;
 
-            SCon.Open();
-            string QueryDelUser = $@"delete
+            if(ViewUserByType == 1)
+            {
+                SCon.Open();
+                string QueryDelUser = $@"delete
 from FaceImages
 where UserID = '{IdUser}'";
 
-            SqlCommand Cmd = new SqlCommand(QueryDelUser, SCon);
-            Cmd.ExecuteNonQuery();
+                SqlCommand Cmd = new SqlCommand(QueryDelUser, SCon);
+                Cmd.ExecuteNonQuery();
 
-            QueryDelUser = $@"delete
+                QueryDelUser = $@"delete
 from Users
 where ID = '{IdUser}'";
-            Cmd = new SqlCommand(QueryDelUser, SCon);
-            Cmd.ExecuteNonQuery();
+                Cmd = new SqlCommand(QueryDelUser, SCon);
+                Cmd.ExecuteNonQuery();
 
-            SCon.Close();
-
-            string PhotoName = string.Empty;
-            for (int i = 0; i < LstUsers.Count; i++)
-            {
-                if (LstUsers[i].UserID == IdUser)
-                {
-                    PhotoName = LstUsers[i].FIO.Split(' ')[1] + LstUsers[i].PassportSeria + LstUsers[i].PassportNum;
-                }
+                SCon.Close();
             }
-            try
+            else
             {
-                File.Delete(Application.StartupPath + "\\" + Config.FacePhotosPath + $"{PhotoName}.bmp");
+                SCon.Open();
+
+                string QueryDelUser = $@"delete
+from {NameUserType}
+where ID = '{IdUser}'";
+                SqlCommand Cmd = new SqlCommand(QueryDelUser, SCon);
+                Cmd.ExecuteNonQuery();
+
+                SCon.Close();
             }
-            catch
+            if (ViewUserByType == 1)
             {
-                MessageBox.Show("Фотографии пользователя не найдены!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
-                return;
+                string PhotoName = string.Empty;
+                for (int i = 0; i < LstUsers.Count; i++)
+                {
+                    if (LstUsers[i].UserID == IdUser)
+                    {
+                        PhotoName = LstUsers[i].FIO.Split(' ')[1] + LstUsers[i].PassportSeria + LstUsers[i].PassportNum;
+                    }
+                }
+                try
+                {
+                    File.Delete(Application.StartupPath + "\\" + Config.FacePhotosPath + $"{PhotoName}.bmp");
+                }
+                catch
+                {
+                    MessageBox.Show("Фотографии пользователя не найдены!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+                    return;
+                }
             }
 
-            GetUsersFromDB();
+            GetUsersFromDB(ViewUserByType);
 
             MessageBox.Show("Пользователь безвозвратно удалён из системы!", "ImpulseVision", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
@@ -388,42 +416,53 @@ where ID = '{IdUser}'";
         /// </summary>
         private void BtnAddUser_Click(object sender, EventArgs e)
         {
-            CmbCams.Visible = true;
-            TslSelCamText.Visible = true;
+            if (ViewUserByType == 0)
+            {
+                FormEditingGuard Fg = new FormEditingGuard(true, CurrentUser.UserID.ToString()); ;
+                if (Fg.ShowDialog() == DialogResult.OK)
+                {
+                    GetUsersFromDB(ViewUserByType);
+                }
+            }
+            else
+            {
+                CmbCams.Visible = true;
+                TslSelCamText.Visible = true;
 
-            BtnEditUser.Visible = false;
-            BtnDelUser.Visible = false;
+                BtnEditUser.Visible = false;
+                BtnDelUser.Visible = false;
 
-            TbxLastname.Text = "";
-            TbxFirstname.Text = "";
-            TbxPatronymic.Text = "";
-            TbxPasportSeria.Text = "";
-            TbxPasportNum.Text = "";
+                TbxLastname.Text = "";
+                TbxFirstname.Text = "";
+                TbxPatronymic.Text = "";
+                TbxPasportSeria.Text = "";
+                TbxPasportNum.Text = "";
 
-            TabPages.SelectTab(1);
-            PbxEther.Image = Properties.Resources.loading_7;
+                TabPages.SelectTab(1);
+                PbxEther.Image = Properties.Resources.loading_7;
 
-            CaptureTimer = new Timer()
-            {
-                Interval = Config.TimerResponseValue
-            };
-            CaptureTimer.Tick += CaptureTimer_Tick;
+                CaptureTimer = new Timer()
+                {
+                    Interval = Config.TimerResponseValue
+                };
+                CaptureTimer.Tick += CaptureTimer_Tick;
 
-            if (IsWorking)
-                return;
+                if (IsWorking)
+                    return;
 
-            TableLayoutWorks.BackColor = Color.Black;
+                TableLayoutWorks.BackColor = Color.Black;
 
-            IsWorking = true;//камера включена
+                IsWorking = true;//камера включена
 
-            GetFacesList();
-            Capture = new VideoCapture(Config.ActiveCameraIndex);
-            Capture.SetCaptureProperty(CapProp.Fps, 30);
-            Capture.SetCaptureProperty(CapProp.FrameHeight, 450);
-            Capture.SetCaptureProperty(CapProp.FrameWidth, 370);
-            CaptureTimer.Start();
+                GetFacesList();
+                Capture = new VideoCapture(Config.ActiveCameraIndex);
+                Capture.SetCaptureProperty(CapProp.Fps, 30);
+                Capture.SetCaptureProperty(CapProp.FrameHeight, 450);
+                Capture.SetCaptureProperty(CapProp.FrameWidth, 370);
+                CaptureTimer.Start();
 
-            ShowAdding();
+                ShowAdding();
+            }
         }
 
         /// <summary>
@@ -661,11 +700,21 @@ values ({AddingUserID},'{PhotoPath}')";
         /// <summary>
         /// получение пользователей из БД
         /// </summary>
-        private void GetUsersFromDB()
+        private void GetUsersFromDB(int userType)
         {
             SCon.Open();
-            string QueryForGetUser = @"select ID, Lastname + ' ' + Firstname + ' ' + Patronymic as FIO, PassportSeria, PassportNum
-                    from Users";
+            string NameUserType = string.Empty;
+            if(userType == 1)
+            {
+                NameUserType = "Users";
+            }
+            else
+            {
+                NameUserType = "Staffs";
+            }
+
+            string QueryForGetUser = $@"select ID, Lastname + ' ' + Firstname + ' ' + Patronymic as FIO, PassportSeria, PassportNum
+                    from {NameUserType}";
 
             SqlCommand Cmd = new SqlCommand(QueryForGetUser, SCon);
             SqlDataReader Res = Cmd.ExecuteReader();
@@ -729,7 +778,7 @@ values ({AddingUserID},'{PhotoPath}')";
 
             RecogniseOff();
 
-            GetUsersFromDB();
+            GetUsersFromDB(ViewUserByType);
 
             TabPages.SelectTab(0);
 
@@ -744,11 +793,22 @@ values ({AddingUserID},'{PhotoPath}')";
 
         private void BtnEditUser_Click(object sender, EventArgs e)
         {
-            FormEditUser FEdit = new FormEditUser();
-            FEdit.LblSelectUserID.Text = CurrentUser.UserID.ToString();
-            if (FEdit.ShowDialog() == DialogResult.OK)
+            if (ViewUserByType == 0)
+            {
+                FormEditingGuard Fg = new FormEditingGuard(false, CurrentUser.UserID.ToString());
+                if (Fg.ShowDialog() == DialogResult.OK)
+                {
+                    GetUsersFromDB(ViewUserByType);
+                }
+            }
+            else
             {
-                GetUsersFromDB();
+                FormEditUser FEdit = new FormEditUser();
+                FEdit.LblSelectUserID.Text = CurrentUser.UserID.ToString();
+                if (FEdit.ShowDialog() == DialogResult.OK)
+                {
+                    GetUsersFromDB(ViewUserByType);
+                }
             }
         }
 
@@ -757,7 +817,8 @@ values ({AddingUserID},'{PhotoPath}')";
             if (Saving)
             {
                 MMain_Click(sender, e);
-                GetUsersFromDB();
+                ViewUserByType = 1;
+                GetUsersFromDB(ViewUserByType);
                 TimerSaving.Stop();
                 TimerSaving.Enabled = false;
             }
@@ -1216,5 +1277,24 @@ where [Login] = '{login}'";
         {
             e.Handled = true;
         }
+
+        private void SViewGuard_Click(object sender, EventArgs e)
+        {
+            LblTitleUserType.Text = "<Сотрудники охраны>";
+            ViewUserByType = 0;
+            MMain_Click(sender, e);
+        }
+
+        private void SViewPlainUser_Click(object sender, EventArgs e)
+        {
+            LblTitleUserType.Text = "<Пользователи>";
+            ViewUserByType = 1;
+            MMain_Click(sender, e);
+        }
+
+        private void MSettings_Click(object sender, EventArgs e)
+        {
+
+        }
     }
 }

+ 13 - 0
ImpulseVision/ImpulseVision.csproj

@@ -136,6 +136,12 @@
     <Compile Include="FormAutorize.Designer.cs">
       <DependentUpon>FormAutorize.cs</DependentUpon>
     </Compile>
+    <Compile Include="FormEditingGuard.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FormEditingGuard.Designer.cs">
+      <DependentUpon>FormEditingGuard.cs</DependentUpon>
+    </Compile>
     <Compile Include="FormEditUser.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -224,6 +230,9 @@
     <EmbeddedResource Include="FormAutorize.resx">
       <DependentUpon>FormAutorize.cs</DependentUpon>
     </EmbeddedResource>
+    <EmbeddedResource Include="FormEditingGuard.resx">
+      <DependentUpon>FormEditingGuard.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="FormEditUser.resx">
       <DependentUpon>FormEditUser.cs</DependentUpon>
     </EmbeddedResource>
@@ -285,6 +294,10 @@
     <None Include="App.config" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="Resources\book-alt.png" />
+    <None Include="Resources\settings.png" />
+    <None Include="Resources\users.png" />
+    <None Include="Resources\shield-check.png" />
     <None Include="Resources\Frame 1.jpg" />
     <None Include="Resources\noimg1.jpg" />
     <None Include="Resources\noimg.jpg" />

+ 40 - 0
ImpulseVision/Properties/Resources.Designer.cs

@@ -160,6 +160,16 @@ namespace ImpulseVision.Properties {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap book_alt {
+            get {
+                object obj = ResourceManager.GetObject("book-alt", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized resource of type System.Drawing.Bitmap.
         /// </summary>
@@ -262,5 +272,35 @@ namespace ImpulseVision.Properties {
                 return ((System.Drawing.Bitmap)(obj));
             }
         }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap settings {
+            get {
+                object obj = ResourceManager.GetObject("settings", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap shield_check {
+            get {
+                object obj = ResourceManager.GetObject("shield-check", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized resource of type System.Drawing.Bitmap.
+        /// </summary>
+        internal static System.Drawing.Bitmap users {
+            get {
+                object obj = ResourceManager.GetObject("users", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
     }
 }

+ 19 - 7
ImpulseVision/Properties/Resources.resx

@@ -121,6 +121,9 @@
   <data name="103515_text_document_information_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\103515_text_document_information_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="Frame 1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\Frame 1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="entrance_icon_180660" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\entrance_icon_180660.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
@@ -133,23 +136,23 @@
   <data name="27818_on_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\27818_on_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="noimg1" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\noimg1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
-  </data>
   <data name="log_out_icon_128821" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\log_out_icon_128821.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="8666656_check_circle_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\8666656_check_circle_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="settings" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\settings.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="loading_7" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\loading-7.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="392530_add_create_cross_new_plus_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\392530_add_create_cross_new_plus_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="9042786_on_rounded_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\9042786_on_rounded_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="noimg1" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\noimg1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="ImpulseVision_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\ImpulseVision_Icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -157,22 +160,31 @@
   <data name="211600_plus_circled_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\211600_plus_circled_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="9042786_on_rounded_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\9042786_on_rounded_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="haarcascade_frontalface_default" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\haarcascade_frontalface_default.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251</value>
   </data>
   <data name="9042863_off_rounded_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\9042863_off_rounded_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="shield-check" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\shield-check.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="pat-hayden-wmK7Uej_qp8-unsplash" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\pat-hayden-wmK7Uej_qp8-unsplash.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
   <data name="noimg" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\noimg.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
+  <data name="users" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\users.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="_9110852_video_no_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\Resources\9110852_video_no_icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
-  <data name="Frame 1" type="System.Resources.ResXFileRef, System.Windows.Forms">
-    <value>..\Resources\Frame 1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  <data name="book-alt" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\book-alt.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>
 </root>

BIN
ImpulseVision/Resources/book-alt.png


BIN
ImpulseVision/Resources/settings.png


BIN
ImpulseVision/Resources/shield-check.png


BIN
ImpulseVision/Resources/users.png


BIN
ImpulseVision/bin/Debug/ImpulseVision.exe