From 18aa465fd8093da27212a7da80f37619ca0125d1 Mon Sep 17 00:00:00 2001 From: ISPr24-401 Date: Mon, 12 May 2025 12:19:58 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D1=8C=D1=82?= =?UTF-8?q?=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.config | 18 ++++ AutoMaster.csproj | 146 +++++++++++++++++++++++++++++++ AutoMaster.sln | 25 ++++++ Database.cs | 90 +++++++++++++++++++ Form1.Designer.cs | 113 ++++++++++++++++++++++++ Form1.cs | 50 +++++++++++ Form1.resx | 126 ++++++++++++++++++++++++++ MainForm.Designer.cs | 83 ++++++++++++++++++ MainForm.cs | 20 +++++ MainForm.resx | 120 +++++++++++++++++++++++++ Program.cs | 22 +++++ Properties/AssemblyInfo.cs | 36 ++++++++ Properties/Resources.Designer.cs | 71 +++++++++++++++ Properties/Resources.resx | 117 +++++++++++++++++++++++++ Properties/Settings.Designer.cs | 30 +++++++ Properties/Settings.settings | 7 ++ icon.ico | Bin 0 -> 23037 bytes packages.config | 19 ++++ 18 files changed, 1093 insertions(+) create mode 100644 App.config create mode 100644 AutoMaster.csproj create mode 100644 AutoMaster.sln create mode 100644 Database.cs create mode 100644 Form1.Designer.cs create mode 100644 Form1.cs create mode 100644 Form1.resx create mode 100644 MainForm.Designer.cs create mode 100644 MainForm.cs create mode 100644 MainForm.resx create mode 100644 Program.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx create mode 100644 Properties/Settings.Designer.cs create mode 100644 Properties/Settings.settings create mode 100644 icon.ico create mode 100644 packages.config diff --git a/App.config b/App.config new file mode 100644 index 0000000..abb8196 --- /dev/null +++ b/App.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AutoMaster.csproj b/AutoMaster.csproj new file mode 100644 index 0000000..3f4967c --- /dev/null +++ b/AutoMaster.csproj @@ -0,0 +1,146 @@ + + + + + Debug + AnyCPU + {F97C7EAD-CBAE-43B4-B265-2C021081E835} + WinExe + AutoMaster + AutoMaster + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + packages\BouncyCastle.Cryptography.2.5.1\lib\net461\BouncyCastle.Cryptography.dll + + + packages\Google.Protobuf.3.30.0\lib\net45\Google.Protobuf.dll + + + packages\K4os.Compression.LZ4.1.3.8\lib\net462\K4os.Compression.LZ4.dll + + + packages\K4os.Compression.LZ4.Streams.1.3.8\lib\net462\K4os.Compression.LZ4.Streams.dll + + + packages\K4os.Hash.xxHash.1.0.8\lib\net462\K4os.Hash.xxHash.dll + + + packages\Microsoft.Bcl.AsyncInterfaces.5.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + packages\MySql.Data.9.3.0\lib\net48\MySql.Data.dll + + + + packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + packages\System.Configuration.ConfigurationManager.8.0.0\lib\net462\System.Configuration.ConfigurationManager.dll + + + + packages\System.Diagnostics.DiagnosticSource.8.0.1\lib\net462\System.Diagnostics.DiagnosticSource.dll + + + packages\System.IO.Pipelines.5.0.2\lib\net461\System.IO.Pipelines.dll + + + + packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + + + + + + + + + + + packages\ZstdSharp.Port.0.8.5\lib\net462\ZstdSharp.dll + + + + + + Form + + + Form1.cs + + + Form + + + MainForm.cs + + + + + Form1.cs + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/AutoMaster.sln b/AutoMaster.sln new file mode 100644 index 0000000..618f125 --- /dev/null +++ b/AutoMaster.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoMaster", "AutoMaster.csproj", "{F97C7EAD-CBAE-43B4-B265-2C021081E835}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F97C7EAD-CBAE-43B4-B265-2C021081E835}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F97C7EAD-CBAE-43B4-B265-2C021081E835}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F97C7EAD-CBAE-43B4-B265-2C021081E835}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F97C7EAD-CBAE-43B4-B265-2C021081E835}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2A676F69-37BD-40C5-AA1D-AD17EB6D9ADA} + EndGlobalSection +EndGlobal diff --git a/Database.cs b/Database.cs new file mode 100644 index 0000000..9fed073 --- /dev/null +++ b/Database.cs @@ -0,0 +1,90 @@ +using System; +using System.Data; +using MySql.Data.MySqlClient; + +public class Database +{ + private string connectionString = "server=80.90.179.235;database=pozorisp_GorbachevAV;user=pozorisp;password=pozorisp;"; + + public MySqlConnection GetConnection() + { + return new MySqlConnection(connectionString); + } + + public bool AuthenticateUser(string username, string password) + { + using (var connection = GetConnection()) + { + connection.Open(); + string query = "SELECT COUNT(*) FROM users WHERE username = @username AND password = @password"; + using (var cmd = new MySqlCommand(query, connection)) + { + cmd.Parameters.AddWithValue("@username", username); + cmd.Parameters.AddWithValue("@password", password); + return Convert.ToInt32(cmd.ExecuteScalar()) > 0; + } + } + } + + public DataTable GetUsers() + { + using (var connection = GetConnection()) + { + connection.Open(); + string query = "SELECT id, username, email FROM users"; + using (var cmd = new MySqlCommand(query, connection)) + using (var adapter = new MySqlDataAdapter(cmd)) + { + DataTable dt = new DataTable(); + adapter.Fill(dt); + return dt; + } + } + } + + public void AddUser(string username, string password, string email) + { + using (var connection = GetConnection()) + { + connection.Open(); + string query = "INSERT INTO users (username, password, email) VALUES (@username, @password, @email)"; + using (var cmd = new MySqlCommand(query, connection)) + { + cmd.Parameters.AddWithValue("@username", username); + cmd.Parameters.AddWithValue("@password", password); + cmd.Parameters.AddWithValue("@email", email); + cmd.ExecuteNonQuery(); + } + } + } + + public void UpdateUser(int id, string username, string email) + { + using (var connection = GetConnection()) + { + connection.Open(); + string query = "UPDATE users SET username = @username, email = @email WHERE id = @id"; + using (var cmd = new MySqlCommand(query, connection)) + { + cmd.Parameters.AddWithValue("@id", id); + cmd.Parameters.AddWithValue("@username", username); + cmd.Parameters.AddWithValue("@email", email); + cmd.ExecuteNonQuery(); + } + } + } + + public void DeleteUser(int id) + { + using (var connection = GetConnection()) + { + connection.Open(); + string query = "DELETE FROM users WHERE id = @id"; + using (var cmd = new MySqlCommand(query, connection)) + { + cmd.Parameters.AddWithValue("@id", id); + cmd.ExecuteNonQuery(); + } + } + } +} diff --git a/Form1.Designer.cs b/Form1.Designer.cs new file mode 100644 index 0000000..c786cb5 --- /dev/null +++ b/Form1.Designer.cs @@ -0,0 +1,113 @@ +namespace AutoMaster +{ + partial class Form1 + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.btnLogin = new System.Windows.Forms.Button(); + this.txtPassword = new System.Windows.Forms.TextBox(); + this.txtUsername = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.imageList1 = new System.Windows.Forms.ImageList(this.components); + this.imageList2 = new System.Windows.Forms.ImageList(this.components); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // btnLogin + // + this.btnLogin.Location = new System.Drawing.Point(356, 314); + this.btnLogin.Name = "btnLogin"; + this.btnLogin.Size = new System.Drawing.Size(129, 23); + this.btnLogin.TabIndex = 0; + this.btnLogin.Text = "Авторизоваться"; + this.btnLogin.UseVisualStyleBackColor = true; + // + // txtPassword + // + this.txtPassword.Location = new System.Drawing.Point(356, 231); + this.txtPassword.Name = "txtPassword"; + this.txtPassword.Size = new System.Drawing.Size(125, 20); + this.txtPassword.TabIndex = 1; + // + // txtUsername + // + this.txtUsername.Location = new System.Drawing.Point(356, 159); + this.txtUsername.Name = "txtUsername"; + this.txtUsername.Size = new System.Drawing.Size(125, 20); + this.txtUsername.TabIndex = 2; + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.SystemColors.ControlDark; + this.pictureBox1.Location = new System.Drawing.Point(12, 12); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(100, 50); + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click_1); + // + // imageList1 + // + this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.imageList1.ImageSize = new System.Drawing.Size(16, 16); + this.imageList1.TransparentColor = System.Drawing.Color.Transparent; + // + // imageList2 + // + this.imageList2.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; + this.imageList2.ImageSize = new System.Drawing.Size(16, 16); + this.imageList2.TransparentColor = System.Drawing.Color.Transparent; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.txtUsername); + this.Controls.Add(this.txtPassword); + this.Controls.Add(this.btnLogin); + this.Name = "Form1"; + this.Text = "Form1"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button btnLogin; + private System.Windows.Forms.TextBox txtPassword; + private System.Windows.Forms.TextBox txtUsername; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.ImageList imageList1; + private System.Windows.Forms.ImageList imageList2; + } +} + diff --git a/Form1.cs b/Form1.cs new file mode 100644 index 0000000..10a46c5 --- /dev/null +++ b/Form1.cs @@ -0,0 +1,50 @@ +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; + +namespace AutoMaster +{ + public partial class Form1 : Form + { + private Database db = new Database(); + + public Form1() + { + InitializeComponent(); + } + + private void btnLogin_Click(object sender, EventArgs e) + { + string username = txtUsername.Text; + string password = txtPassword.Text; + + if (db.AuthenticateUser(username, password)) + { + MessageBox.Show("Успешный вход!"); + this.Hide(); + MainForm mainForm = new MainForm(); + mainForm.Show(); + } + else + { + MessageBox.Show("Неправильный логин или пароль."); + } + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + } + + private void pictureBox1_Click_1(object sender, EventArgs e) + { + + } + } +} diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..84c6e6f --- /dev/null +++ b/Form1.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 128, 17 + + \ No newline at end of file diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs new file mode 100644 index 0000000..b755264 --- /dev/null +++ b/MainForm.Designer.cs @@ -0,0 +1,83 @@ +namespace AutoMaster +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(106, 337); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.TabIndex = 0; + this.button1.Text = "button1"; + this.button1.UseVisualStyleBackColor = true; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(248, 337); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 23); + this.button2.TabIndex = 1; + this.button2.Text = "button2"; + this.button2.UseVisualStyleBackColor = true; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(383, 337); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(75, 23); + this.button3.TabIndex = 2; + this.button3.Text = "button3"; + this.button3.UseVisualStyleBackColor = true; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Name = "MainForm"; + this.Text = "MainForm"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + } +} \ No newline at end of file diff --git a/MainForm.cs b/MainForm.cs new file mode 100644 index 0000000..0e70677 --- /dev/null +++ b/MainForm.cs @@ -0,0 +1,20 @@ +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; + +namespace AutoMaster +{ + public partial class MainForm : Form + { + public MainForm() + { + InitializeComponent(); + } + } +} diff --git a/MainForm.resx b/MainForm.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..1cfd7f7 --- /dev/null +++ b/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace AutoMaster +{ + internal static class Program + { + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..c88b0a2 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанных со сборкой. +[assembly: AssemblyTitle("AutoMaster")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("AutoMaster")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, следует установить атрибут ComVisible в TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("f97c7ead-cbae-43b4-b265-2c021081e835")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..ccc4a30 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программным средством. +// Версия среды выполнения: 4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если +// код создан повторно. +// +//------------------------------------------------------------------------------ + +namespace AutoMaster.Properties +{ + + + /// + /// Класс ресурсов со строгим типом для поиска локализованных строк и пр. + /// + // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder + // класс с помощью таких средств, как ResGen или Visual Studio. + // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen + // с параметром /str или заново постройте свой VS-проект. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AutoMaster.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Переопределяет свойство CurrentUICulture текущего потока для всех + /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..58832f9 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace AutoMaster.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/icon.ico b/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1ea94a94db2dc25421d85398669c4c34dafb6042 GIT binary patch literal 23037 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 Kf2zWW6!Sl#Ked+t literal 0 HcmV?d00001 diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..9777fd7 --- /dev/null +++ b/packages.config @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file