From af57a4519d2e6f146fe21af2800db538c8876c1c Mon Sep 17 00:00:00 2001 From: aj Date: Fri, 17 Apr 2020 17:59:25 +0100 Subject: [PATCH] initial project structure commit --- Alchemy.Core/Alchemy.Core.csproj | 9 + Alchemy.Forms/About.Designer.cs | 77 +++++++ Alchemy.Forms/About.cs | 20 ++ Alchemy.Forms/About.resx | 143 ++++++++++++ Alchemy.Forms/Alchemy.Forms.csproj | 112 +++++++++ Alchemy.Forms/App.config | 6 + Alchemy.Forms/ConfigForm.Designer.cs | 215 ++++++++++++++++++ Alchemy.Forms/ConfigForm.cs | 48 ++++ Alchemy.Forms/ConfigForm.resx | 143 ++++++++++++ Alchemy.Forms/Icon.ico | Bin 0 -> 1078 bytes Alchemy.Forms/Main.Designer.cs | 214 +++++++++++++++++ Alchemy.Forms/Main.cs | 113 +++++++++ Alchemy.Forms/Main.resx | 152 +++++++++++++ Alchemy.Forms/Program.cs | 19 ++ Alchemy.Forms/Properties/AssemblyInfo.cs | 36 +++ .../Properties/Resources.Designer.cs | 63 +++++ Alchemy.Forms/Properties/Resources.resx | 117 ++++++++++ Alchemy.Forms/Properties/Settings.Designer.cs | 26 +++ Alchemy.Forms/Properties/Settings.settings | 7 + Alchemy.Forms/packages.config | 5 + Alchemy.sln | 21 ++ 21 files changed, 1546 insertions(+) create mode 100644 Alchemy.Core/Alchemy.Core.csproj create mode 100644 Alchemy.Forms/About.Designer.cs create mode 100644 Alchemy.Forms/About.cs create mode 100644 Alchemy.Forms/About.resx create mode 100644 Alchemy.Forms/Alchemy.Forms.csproj create mode 100644 Alchemy.Forms/App.config create mode 100644 Alchemy.Forms/ConfigForm.Designer.cs create mode 100644 Alchemy.Forms/ConfigForm.cs create mode 100644 Alchemy.Forms/ConfigForm.resx create mode 100644 Alchemy.Forms/Icon.ico create mode 100644 Alchemy.Forms/Main.Designer.cs create mode 100644 Alchemy.Forms/Main.cs create mode 100644 Alchemy.Forms/Main.resx create mode 100644 Alchemy.Forms/Program.cs create mode 100644 Alchemy.Forms/Properties/AssemblyInfo.cs create mode 100644 Alchemy.Forms/Properties/Resources.Designer.cs create mode 100644 Alchemy.Forms/Properties/Resources.resx create mode 100644 Alchemy.Forms/Properties/Settings.Designer.cs create mode 100644 Alchemy.Forms/Properties/Settings.settings create mode 100644 Alchemy.Forms/packages.config diff --git a/Alchemy.Core/Alchemy.Core.csproj b/Alchemy.Core/Alchemy.Core.csproj new file mode 100644 index 0000000..7344384 --- /dev/null +++ b/Alchemy.Core/Alchemy.Core.csproj @@ -0,0 +1,9 @@ + + + + netstandard2.0 + Sarsoo.Alchemy + Alchemy + + + diff --git a/Alchemy.Forms/About.Designer.cs b/Alchemy.Forms/About.Designer.cs new file mode 100644 index 0000000..7a78b6f --- /dev/null +++ b/Alchemy.Forms/About.Designer.cs @@ -0,0 +1,77 @@ +namespace Sarsoo.Alchemy.Forms +{ + partial class About + { + /// + /// 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About)); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Segoe UI", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(54, 29); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(118, 37); + this.label1.TabIndex = 0; + this.label1.Text = "Alchemy"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Segoe UI", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(75, 66); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(72, 28); + this.label2.TabIndex = 2; + this.label2.Text = "Sarsoo"; + // + // About + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(224, 127); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "About"; + this.Text = "About"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + } +} \ No newline at end of file diff --git a/Alchemy.Forms/About.cs b/Alchemy.Forms/About.cs new file mode 100644 index 0000000..3e65811 --- /dev/null +++ b/Alchemy.Forms/About.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 Sarsoo.Alchemy.Forms +{ + public partial class About : Form + { + public About() + { + InitializeComponent(); + } + } +} diff --git a/Alchemy.Forms/About.resx b/Alchemy.Forms/About.resx new file mode 100644 index 0000000..5eb5a9b --- /dev/null +++ b/Alchemy.Forms/About.resx @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAIAA + AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAVVUAAAAAAFVVVVUAAAAFVd1VVVAAAFVd1VVV + VQAAVd3VVf9VAABV3dVV/1UAAAVd3V/1UAAAAFVVVVUAAAAAAFVVAAAAAAAAVVUAAAAAAABVVQAAAAAA + AzMzMAAAAAAzMzMzAAAAAAMzMzAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAMADAADAAwAAwAMAAOAH + AADwDwAA/D8AAPw/AAD8PwAA+B8AAPAPAAD4HwAA//8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA + AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVQ + AAAAAAAAAAAAAABVVVVVVVUAAAAAAAAAAABVVVVVVVVVVQAAAAAAAABVVVVd3VVVVVVVAAAAAAAAVVVd + 3d3VVVVVVQAAAAAABVVV3d3d1VVVVVVQAAAAAFVVXd3d3VVVVVVVVQAAAABVVV3d3dVVVVVVVVUAAAAF + VVXd3dVVVVVVVVVVUAAABVVV3d3VVVVVVVVVVVAAAAVVVd3d1VVVVVVVVVVQAAAFVVXd3dVVVVVf9VVV + UAAAAFVV3d3dVVVV//9VVQAAAABVVV3d3VVV////VVUAAAAABVVV3d3VX////1VQAAAAAABVVd3d1f// + //VVAAAAAAAAVVVd3VX///9VVQAAAAAAAABVVVVVX/9VVQAAAAAAAAAAAFVVVVVVVQAAAAAAAAAAAAAF + VVVVVVAAAAAAAAAAAAAABVVVVVVQAAAAAAAAAAAAAAVVVVVVUAAAAAAAAAAAAAAFVVVVVVAAAAAAAAAA + AAAABVVVVVVQAAAAAAAAAAAAMzMzMzMzMzMwAAAAAAAAAzMzMzMzMzMzMwAAAAAAAAMzMzMzMzMzMzMA + AAAAAAAAMzMzMzMzMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////4 + H///wAP//wAA//wAAD/8AAA/+AAAH/AAAA/wAAAP4AAAB+AAAAfgAAAH4AAAB/AAAA/wAAAP+AAAH/wA + AD/8AAA//wAA///AA///4Af//+AH///gB///4Af//+AH//8AAH/+AAA//gAAP/8AAH///////////w== + + + \ No newline at end of file diff --git a/Alchemy.Forms/Alchemy.Forms.csproj b/Alchemy.Forms/Alchemy.Forms.csproj new file mode 100644 index 0000000..9723e19 --- /dev/null +++ b/Alchemy.Forms/Alchemy.Forms.csproj @@ -0,0 +1,112 @@ + + + + + Debug + AnyCPU + {6DD4019E-F67C-4CA3-90FF-BDAEF775F1D1} + Exe + Sarsoo.Alchemy.Forms + Alchemy + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + + ..\packages\SpotifyAPI.Web.5.1.0\lib\netstandard2.0\SpotifyAPI.Web.dll + + + + + + + + + + + + + + + + Form + + + About.cs + + + Form + + + ConfigForm.cs + + + Form + + + Main.cs + + + + + About.cs + + + ConfigForm.cs + + + Main.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/Alchemy.Forms/App.config b/Alchemy.Forms/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Alchemy.Forms/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Alchemy.Forms/ConfigForm.Designer.cs b/Alchemy.Forms/ConfigForm.Designer.cs new file mode 100644 index 0000000..e33a1fc --- /dev/null +++ b/Alchemy.Forms/ConfigForm.Designer.cs @@ -0,0 +1,215 @@ +namespace Sarsoo.Alchemy.Forms +{ + partial class ConfigForm + { + /// + /// 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ConfigForm)); + this.buttonSave = new System.Windows.Forms.Button(); + this.spotifyAccessBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.spotifyRefreshBox = new System.Windows.Forms.TextBox(); + this.lastFMApiBox = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.lastfmUsername = new System.Windows.Forms.TextBox(); + this.spotifyUsername = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // buttonSave + // + this.buttonSave.Location = new System.Drawing.Point(101, 206); + this.buttonSave.Name = "buttonSave"; + this.buttonSave.Size = new System.Drawing.Size(75, 23); + this.buttonSave.TabIndex = 6; + this.buttonSave.Text = "Save"; + this.buttonSave.UseVisualStyleBackColor = true; + this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); + // + // spotifyAccessBox + // + this.spotifyAccessBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.spotifyAccessBox.Location = new System.Drawing.Point(133, 19); + this.spotifyAccessBox.Name = "spotifyAccessBox"; + this.spotifyAccessBox.Size = new System.Drawing.Size(589, 20); + this.spotifyAccessBox.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(111, 13); + this.label1.TabIndex = 2; + this.label1.Text = "Spotify Access Token"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 48); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(113, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Spotify Refresh Token"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(31, 74); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(65, 13); + this.label3.TabIndex = 2; + this.label3.Text = "Last.FM API"; + // + // spotifyRefreshBox + // + this.spotifyRefreshBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.spotifyRefreshBox.Location = new System.Drawing.Point(133, 45); + this.spotifyRefreshBox.Name = "spotifyRefreshBox"; + this.spotifyRefreshBox.Size = new System.Drawing.Size(589, 20); + this.spotifyRefreshBox.TabIndex = 2; + // + // lastFMApiBox + // + this.lastFMApiBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lastFMApiBox.Location = new System.Drawing.Point(133, 71); + this.lastFMApiBox.Name = "lastFMApiBox"; + this.lastFMApiBox.Size = new System.Drawing.Size(589, 20); + this.lastFMApiBox.TabIndex = 3; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.lastfmUsername); + this.groupBox1.Controls.Add(this.spotifyUsername); + this.groupBox1.Controls.Add(this.label5); + this.groupBox1.Controls.Add(this.label4); + this.groupBox1.Location = new System.Drawing.Point(12, 122); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(276, 78); + this.groupBox1.TabIndex = 5; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Username"; + // + // lastfmUsername + // + this.lastfmUsername.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.lastfmUsername.Location = new System.Drawing.Point(62, 45); + this.lastfmUsername.Name = "lastfmUsername"; + this.lastfmUsername.Size = new System.Drawing.Size(208, 20); + this.lastfmUsername.TabIndex = 5; + // + // spotifyUsername + // + this.spotifyUsername.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.spotifyUsername.Location = new System.Drawing.Point(62, 19); + this.spotifyUsername.Name = "spotifyUsername"; + this.spotifyUsername.Size = new System.Drawing.Size(208, 20); + this.spotifyUsername.TabIndex = 4; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(6, 48); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(41, 13); + this.label5.TabIndex = 2; + this.label5.Text = "Last.fm"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(6, 22); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(39, 13); + this.label4.TabIndex = 2; + this.label4.Text = "Spotify"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.spotifyRefreshBox); + this.groupBox2.Controls.Add(this.spotifyAccessBox); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.lastFMApiBox); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Controls.Add(this.label1); + this.groupBox2.Location = new System.Drawing.Point(12, 12); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(728, 104); + this.groupBox2.TabIndex = 6; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "API Keys"; + // + // ConfigForm + // + this.AcceptButton = this.buttonSave; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(752, 246); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.buttonSave); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "ConfigForm"; + this.Text = "Config"; + this.Load += new System.EventHandler(this.KeyForm_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonSave; + private System.Windows.Forms.TextBox spotifyAccessBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox spotifyRefreshBox; + private System.Windows.Forms.TextBox lastFMApiBox; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox lastfmUsername; + private System.Windows.Forms.TextBox spotifyUsername; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.GroupBox groupBox2; + } +} \ No newline at end of file diff --git a/Alchemy.Forms/ConfigForm.cs b/Alchemy.Forms/ConfigForm.cs new file mode 100644 index 0000000..8cbc14b --- /dev/null +++ b/Alchemy.Forms/ConfigForm.cs @@ -0,0 +1,48 @@ +using System; +using System.Windows.Forms; + +namespace Sarsoo.Alchemy.Forms +{ + public partial class ConfigForm : Form + { + public Config config { get; set; } + + public ConfigForm(Config config) + { + InitializeComponent(); + this.config = config; + } + + private void buttonSave_Click(object sender, EventArgs e) + { + config.SpotifyAccess = spotifyAccessBox.Text.Trim(); + config.SpotifyRefresh = spotifyRefreshBox.Text.Trim(); + config.LastfmApi = lastFMApiBox.Text.Trim(); + + config.spotifyID = spotifyUsername.Text.Trim(); + config.lastfmID = lastfmUsername.Text.Trim(); + Close(); + } + + private void KeyForm_Load(object sender, EventArgs e) + { + spotifyAccessBox.Text = config.SpotifyAccess ?? ""; + spotifyRefreshBox.Text = config.SpotifyRefresh ?? ""; + lastFMApiBox.Text = config.LastfmApi ?? ""; + + spotifyUsername.Text = config.spotifyID ?? ""; + lastfmUsername.Text = config.lastfmID ?? ""; + } + } + + [Serializable] + public class Config + { + public string SpotifyAccess = ""; + public string SpotifyRefresh = ""; + public string LastfmApi = ""; + + public string spotifyID = ""; + public string lastfmID = ""; + } +} diff --git a/Alchemy.Forms/ConfigForm.resx b/Alchemy.Forms/ConfigForm.resx new file mode 100644 index 0000000..5eb5a9b --- /dev/null +++ b/Alchemy.Forms/ConfigForm.resx @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAIAA + AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAVVUAAAAAAFVVVVUAAAAFVd1VVVAAAFVd1VVV + VQAAVd3VVf9VAABV3dVV/1UAAAVd3V/1UAAAAFVVVVUAAAAAAFVVAAAAAAAAVVUAAAAAAABVVQAAAAAA + AzMzMAAAAAAzMzMzAAAAAAMzMzAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAMADAADAAwAAwAMAAOAH + AADwDwAA/D8AAPw/AAD8PwAA+B8AAPAPAAD4HwAA//8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA + AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVQ + AAAAAAAAAAAAAABVVVVVVVUAAAAAAAAAAABVVVVVVVVVVQAAAAAAAABVVVVd3VVVVVVVAAAAAAAAVVVd + 3d3VVVVVVQAAAAAABVVV3d3d1VVVVVVQAAAAAFVVXd3d3VVVVVVVVQAAAABVVV3d3dVVVVVVVVUAAAAF + VVXd3dVVVVVVVVVVUAAABVVV3d3VVVVVVVVVVVAAAAVVVd3d1VVVVVVVVVVQAAAFVVXd3dVVVVVf9VVV + UAAAAFVV3d3dVVVV//9VVQAAAABVVV3d3VVV////VVUAAAAABVVV3d3VX////1VQAAAAAABVVd3d1f// + //VVAAAAAAAAVVVd3VX///9VVQAAAAAAAABVVVVVX/9VVQAAAAAAAAAAAFVVVVVVVQAAAAAAAAAAAAAF + VVVVVVAAAAAAAAAAAAAABVVVVVVQAAAAAAAAAAAAAAVVVVVVUAAAAAAAAAAAAAAFVVVVVVAAAAAAAAAA + AAAABVVVVVVQAAAAAAAAAAAAMzMzMzMzMzMwAAAAAAAAAzMzMzMzMzMzMwAAAAAAAAMzMzMzMzMzMzMA + AAAAAAAAMzMzMzMzMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////4 + H///wAP//wAA//wAAD/8AAA/+AAAH/AAAA/wAAAP4AAAB+AAAAfgAAAH4AAAB/AAAA/wAAAP+AAAH/wA + AD/8AAA//wAA///AA///4Af//+AH///gB///4Af//+AH//8AAH/+AAA//gAAP/8AAH///////////w== + + + \ No newline at end of file diff --git a/Alchemy.Forms/Icon.ico b/Alchemy.Forms/Icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..46e64bfb17b0201de86d53807808aae1419b5d6f GIT binary patch literal 1078 zcmbtSJ8r^I5F8+g5^jL2h!TkdkP}2{UWt4Zd^BHz(h_A#8YCBp&CKq5m>?o0%EG+2 zvp=s#21XcTu~-0j!DVLs95a7r%JY{i{wK@RLnl zvRhWt6g3zOdJB;5s4*=XL@9FNoYiG6nc2;B)O*8F?gPBsyE%XjzvlHhmiEW7*DMzD z`J$P}z*^k*;X+)G^nADfP@dnn&fWfsoKADs503mM*gv_xFxfhuzz;3kbM9ZHDsug> z*AtKL8P+e&+KE0ry8v6E2bL#bE*yc`JxW|PrCz;0<2W;W1hBtyrog&=Jk;z9_`w3l literal 0 HcmV?d00001 diff --git a/Alchemy.Forms/Main.Designer.cs b/Alchemy.Forms/Main.Designer.cs new file mode 100644 index 0000000..2eb3c40 --- /dev/null +++ b/Alchemy.Forms/Main.Designer.cs @@ -0,0 +1,214 @@ +namespace Sarsoo.Alchemy.Forms +{ + 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.aPIKeysToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.playlistRefreshButton = new System.Windows.Forms.Button(); + this.playlistListBox = new System.Windows.Forms.ListBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.messageLabel = new System.Windows.Forms.ToolStripLabel(); + this.RefreshPlaylists = new System.ComponentModel.BackgroundWorker(); + this.menuStrip1.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.helpToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(634, 24); + this.menuStrip1.TabIndex = 0; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.aPIKeysToolStripMenuItem, + this.closeToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // aPIKeysToolStripMenuItem + // + this.aPIKeysToolStripMenuItem.Name = "aPIKeysToolStripMenuItem"; + this.aPIKeysToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.aPIKeysToolStripMenuItem.Text = "Config"; + this.aPIKeysToolStripMenuItem.Click += new System.EventHandler(this.aPIKeysToolStripMenuItem_Click); + // + // closeToolStripMenuItem + // + this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; + this.closeToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.closeToolStripMenuItem.Text = "Close"; + this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.aboutToolStripMenuItem}); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size(44, 20); + this.helpToolStripMenuItem.Text = "Help"; + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.aboutToolStripMenuItem.Text = "About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.playlistRefreshButton); + this.groupBox1.Controls.Add(this.playlistListBox); + this.groupBox1.Location = new System.Drawing.Point(12, 27); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(289, 316); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Playlists"; + // + // playlistRefreshButton + // + this.playlistRefreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.playlistRefreshButton.Location = new System.Drawing.Point(6, 287); + this.playlistRefreshButton.Name = "playlistRefreshButton"; + this.playlistRefreshButton.Size = new System.Drawing.Size(277, 23); + this.playlistRefreshButton.TabIndex = 1; + this.playlistRefreshButton.Text = "Refresh"; + this.playlistRefreshButton.UseVisualStyleBackColor = true; + this.playlistRefreshButton.Click += new System.EventHandler(this.playlistRefreshButton_Click); + // + // playlistListBox + // + this.playlistListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.playlistListBox.DisplayMember = "Name"; + this.playlistListBox.FormattingEnabled = true; + this.playlistListBox.Location = new System.Drawing.Point(6, 19); + this.playlistListBox.Name = "playlistListBox"; + this.playlistListBox.Size = new System.Drawing.Size(277, 264); + this.playlistListBox.TabIndex = 0; + this.playlistListBox.ValueMember = "Name"; + // + // groupBox2 + // + this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox2.Location = new System.Drawing.Point(307, 27); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(315, 316); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Scrobbles"; + // + // toolStrip1 + // + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.messageLabel}); + this.toolStrip1.Location = new System.Drawing.Point(0, 346); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(634, 25); + this.toolStrip1.TabIndex = 2; + this.toolStrip1.Text = "toolStrip1"; + // + // messageLabel + // + this.messageLabel.Name = "messageLabel"; + this.messageLabel.Size = new System.Drawing.Size(81, 22); + this.messageLabel.Text = "messageLabel"; + this.messageLabel.Visible = false; + // + // RefreshPlaylists + // + this.RefreshPlaylists.DoWork += new System.ComponentModel.DoWorkEventHandler(this.RefreshPlaylists_DoWork); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(634, 371); + this.Controls.Add(this.toolStrip1); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.menuStrip1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menuStrip1; + this.MinimumSize = new System.Drawing.Size(650, 410); + this.Name = "MainForm"; + this.Text = "Alchemy"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); + this.Load += new System.EventHandler(this.MainForm_Load); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem closeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aPIKeysToolStripMenuItem; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button playlistRefreshButton; + private System.Windows.Forms.ListBox playlistListBox; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripLabel messageLabel; + private System.ComponentModel.BackgroundWorker RefreshPlaylists; + } +} + diff --git a/Alchemy.Forms/Main.cs b/Alchemy.Forms/Main.cs new file mode 100644 index 0000000..49b7088 --- /dev/null +++ b/Alchemy.Forms/Main.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Windows.Forms; +using SpotifyAPI.Web; //Base Namespace +using SpotifyAPI.Web.Enums; //Enums +using SpotifyAPI.Web.Models; //Models for the JSON-responses + + +namespace Sarsoo.Alchemy.Forms +{ + public partial class MainForm : Form + { + private Config config = new Config(); + private List playlists = new List(); + + public MainForm() + { + try + { + IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); + Stream stream = new FileStream("config.bin", FileMode.Open, FileAccess.Read); + config = (Config)formatter.Deserialize(stream); + stream.Close(); + } + catch (Exception ex) + { + Console.WriteLine("Failed to read the config.bin " + ex.ToString()); + } + + InitializeComponent(); + } + + private void aboutToolStripMenuItem_Click(object sender, EventArgs e) + { + Form about = new About(); + about.Show(); + } + + private void closeToolStripMenuItem_Click(object sender, EventArgs e) + { + Application.Exit(); + } + + private void aPIKeysToolStripMenuItem_Click(object sender, EventArgs e) + { + ConfigForm keys = new ConfigForm(config); + keys.Show(); + } + + private void playlistRefreshButton_Click(object sender, EventArgs e) + { + if(config.SpotifyAccess.Length == 0) + { + SetMessage("No Spotify Access Token Provided"); + return; + } + + if (!RefreshPlaylists.IsBusy) + { + RefreshPlaylists.RunWorkerAsync(); + } else + { + SetMessage("Already Refreshing"); + } + } + + private void SetMessage(String message) + { + messageLabel.Text = message; + messageLabel.Visible = true; + } + + private void RefreshPlaylists_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) + { + if (config.SpotifyAccess.Length == 0) return; + + var spot = new SpotifyWebAPI + { + AccessToken = config.SpotifyAccess, + TokenType = "Bearer" + }; + + var _playlists = spot.GetUserPlaylists(config.spotifyID); + if(_playlists.HasError()) + { + SetMessage($"Playlist Refresh Error: {_playlists.Error.Status} {_playlists.Error.Message}"); + } + else + { + playlistListBox.Items.Clear(); + //_playlists.Items.ForEach((playlist) => { playlistListBox.Items.Add(playlist); }); + playlistListBox.Refresh(); + } + } + + private void MainForm_Load(object sender, EventArgs e) + { + playlistListBox.DataSource = playlists; + } + + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + IFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); + + Stream stream = new FileStream("config.bin", FileMode.Create, FileAccess.Write); + formatter.Serialize(stream, config); + stream.Close(); + } + } +} diff --git a/Alchemy.Forms/Main.resx b/Alchemy.Forms/Main.resx new file mode 100644 index 0000000..ce6f885 --- /dev/null +++ b/Alchemy.Forms/Main.resx @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 132, 17 + + + 237, 17 + + + + + AAABAAIAEBAQAAAABAAoAQAAJgAAACAgEAAAAAQA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAIAA + AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ + AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAVVUAAAAAAFVVVVUAAAAFVd1VVVAAAFVd1VVV + VQAAVd3VVf9VAABV3dVV/1UAAAVd3V/1UAAAAFVVVVUAAAAAAFVVAAAAAAAAVVUAAAAAAABVVQAAAAAA + AzMzMAAAAAAzMzMzAAAAAAMzMzAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAMADAADAAwAAwAMAAOAH + AADwDwAA/D8AAPw/AAD8PwAA+B8AAPAPAAD4HwAA//8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA + AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/ + /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVQ + AAAAAAAAAAAAAABVVVVVVVUAAAAAAAAAAABVVVVVVVVVVQAAAAAAAABVVVVd3VVVVVVVAAAAAAAAVVVd + 3d3VVVVVVQAAAAAABVVV3d3d1VVVVVVQAAAAAFVVXd3d3VVVVVVVVQAAAABVVV3d3dVVVVVVVVUAAAAF + VVXd3dVVVVVVVVVVUAAABVVV3d3VVVVVVVVVVVAAAAVVVd3d1VVVVVVVVVVQAAAFVVXd3dVVVVVf9VVV + UAAAAFVV3d3dVVVV//9VVQAAAABVVV3d3VVV////VVUAAAAABVVV3d3VX////1VQAAAAAABVVd3d1f// + //VVAAAAAAAAVVVd3VX///9VVQAAAAAAAABVVVVVX/9VVQAAAAAAAAAAAFVVVVVVVQAAAAAAAAAAAAAF + VVVVVVAAAAAAAAAAAAAABVVVVVVQAAAAAAAAAAAAAAVVVVVVUAAAAAAAAAAAAAAFVVVVVVAAAAAAAAAA + AAAABVVVVVVQAAAAAAAAAAAAMzMzMzMzMzMwAAAAAAAAAzMzMzMzMzMzMwAAAAAAAAMzMzMzMzMzMzMA + AAAAAAAAMzMzMzMzMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////4 + H///wAP//wAA//wAAD/8AAA/+AAAH/AAAA/wAAAP4AAAB+AAAAfgAAAH4AAAB/AAAA/wAAAP+AAAH/wA + AD/8AAA//wAA///AA///4Af//+AH///gB///4Af//+AH//8AAH/+AAA//gAAP/8AAH///////////w== + + + \ No newline at end of file diff --git a/Alchemy.Forms/Program.cs b/Alchemy.Forms/Program.cs new file mode 100644 index 0000000..f5040eb --- /dev/null +++ b/Alchemy.Forms/Program.cs @@ -0,0 +1,19 @@ +using System; +using System.Windows.Forms; + +namespace Sarsoo.Alchemy.Forms +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new MainForm()); + } + } +} diff --git a/Alchemy.Forms/Properties/AssemblyInfo.cs b/Alchemy.Forms/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1f929ab --- /dev/null +++ b/Alchemy.Forms/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Alchemy.Forms")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Alchemy.Forms")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6dd4019e-f67c-4ca3-90ff-bdaef775f1d1")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Alchemy.Forms/Properties/Resources.Designer.cs b/Alchemy.Forms/Properties/Resources.Designer.cs new file mode 100644 index 0000000..82688a5 --- /dev/null +++ b/Alchemy.Forms/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 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 Sarsoo.Alchemy.Forms.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.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() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Sarsoo.Alchemy.Forms.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [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/Alchemy.Forms/Properties/Resources.resx b/Alchemy.Forms/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Alchemy.Forms/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/Alchemy.Forms/Properties/Settings.Designer.cs b/Alchemy.Forms/Properties/Settings.Designer.cs new file mode 100644 index 0000000..3371e0f --- /dev/null +++ b/Alchemy.Forms/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 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 Sarsoo.Alchemy.Forms.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.5.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/Alchemy.Forms/Properties/Settings.settings b/Alchemy.Forms/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Alchemy.Forms/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Alchemy.Forms/packages.config b/Alchemy.Forms/packages.config new file mode 100644 index 0000000..c9f9d51 --- /dev/null +++ b/Alchemy.Forms/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Alchemy.sln b/Alchemy.sln index 04acb57..44c4dba 100644 --- a/Alchemy.sln +++ b/Alchemy.sln @@ -3,7 +3,28 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.30011.22 MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Alchemy.Forms", "Alchemy.Forms\Alchemy.Forms.csproj", "{6DD4019E-F67C-4CA3-90FF-BDAEF775F1D1}" + ProjectSection(ProjectDependencies) = postProject + {EAB3FFD1-0750-4287-91A5-A0E006F5B8B8} = {EAB3FFD1-0750-4287-91A5-A0E006F5B8B8} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Alchemy.Core", "Alchemy.Core\Alchemy.Core.csproj", "{EAB3FFD1-0750-4287-91A5-A0E006F5B8B8}" +EndProject Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6DD4019E-F67C-4CA3-90FF-BDAEF775F1D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6DD4019E-F67C-4CA3-90FF-BDAEF775F1D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6DD4019E-F67C-4CA3-90FF-BDAEF775F1D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6DD4019E-F67C-4CA3-90FF-BDAEF775F1D1}.Release|Any CPU.Build.0 = Release|Any CPU + {EAB3FFD1-0750-4287-91A5-A0E006F5B8B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EAB3FFD1-0750-4287-91A5-A0E006F5B8B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EAB3FFD1-0750-4287-91A5-A0E006F5B8B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EAB3FFD1-0750-4287-91A5-A0E006F5B8B8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection