diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..e84e194
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,4 @@
+[*.cs]
+
+# CS8618: Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
+dotnet_diagnostic.CS8618.severity = suggestion
diff --git a/.vs/Superlocal.Agile/DesignTimeBuild/.dtbcache.v2 b/.vs/Superlocal.Agile/DesignTimeBuild/.dtbcache.v2
index 7cd43c0..b7e2d57 100644
Binary files a/.vs/Superlocal.Agile/DesignTimeBuild/.dtbcache.v2 and b/.vs/Superlocal.Agile/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/.vs/Superlocal.Agile/project-colors.json b/.vs/Superlocal.Agile/project-colors.json
index 563f207..92c78ad 100644
--- a/.vs/Superlocal.Agile/project-colors.json
+++ b/.vs/Superlocal.Agile/project-colors.json
@@ -10,7 +10,42 @@
"ProjectGuid": "a2fe74e1-b743-11d0-ae1a-00a0c90fffc3",
"DisplayName": "Miscellaneous Files",
"ColorIndex": -1
+ },
+ "14ea4223-1f26-42b0-aa2b-2eea8c47543d": {
+ "ProjectGuid": "14ea4223-1f26-42b0-aa2b-2eea8c47543d",
+ "DisplayName": "doc",
+ "ColorIndex": 1
+ },
+ "e95d303a-9855-4bc6-a25f-e1fc08a3381d": {
+ "ProjectGuid": "e95d303a-9855-4bc6-a25f-e1fc08a3381d",
+ "DisplayName": "Superlocal.Agile.Infrastructure",
+ "ColorIndex": 2
+ },
+ "b36d8eae-3a2c-45cc-a4ca-85057ac7125e": {
+ "ProjectGuid": "b36d8eae-3a2c-45cc-a4ca-85057ac7125e",
+ "DisplayName": "Superlocal.Agile.Domain",
+ "ColorIndex": 3
+ },
+ "6524ad6e-4a33-4051-a751-7d08b7ab0d9c": {
+ "ProjectGuid": "6524ad6e-4a33-4051-a751-7d08b7ab0d9c",
+ "DisplayName": "Superlocal.Agile.Tests",
+ "ColorIndex": 4
+ },
+ "36915115-0c09-41fb-8b6f-ff786b88a2d1": {
+ "ProjectGuid": "36915115-0c09-41fb-8b6f-ff786b88a2d1",
+ "DisplayName": "Superlocal.Agile.WinApp",
+ "ColorIndex": 5
+ },
+ "7ca284de-c6a3-484b-9605-066134ac571b": {
+ "ProjectGuid": "7ca284de-c6a3-484b-9605-066134ac571b",
+ "DisplayName": "Superlocal.Agile.Application",
+ "ColorIndex": 6
+ },
+ "376bbf07-2e54-44d5-9b80-649b0798240e": {
+ "ProjectGuid": "376bbf07-2e54-44d5-9b80-649b0798240e",
+ "DisplayName": "Superlocal.Agile.Domain",
+ "ColorIndex": 7
}
},
- "NextColorIndex": 1
+ "NextColorIndex": 8
}
\ No newline at end of file
diff --git a/.vs/Superlocal.Agile/v17/.futdcache.v1 b/.vs/Superlocal.Agile/v17/.futdcache.v1
index 47c7009..67434b2 100644
Binary files a/.vs/Superlocal.Agile/v17/.futdcache.v1 and b/.vs/Superlocal.Agile/v17/.futdcache.v1 differ
diff --git a/.vs/Superlocal.Agile/v17/.suo b/.vs/Superlocal.Agile/v17/.suo
index 31b18b5..b9a8d28 100644
Binary files a/.vs/Superlocal.Agile/v17/.suo and b/.vs/Superlocal.Agile/v17/.suo differ
diff --git a/README.md b/README.md
index e690005..6835d60 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,12 @@
Helper for devs on an agile team.
-## Test
\ No newline at end of file
+## Features
+
+- Integration with
+ - Redmine
+ - Gitlab
+
+### Windows only
+
+- Tracks your time in different apps and let you sync with project management tools
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/Form1.Designer.cs b/Superlocal.Agile.WinApp/Form1.Designer.cs
deleted file mode 100644
index 64095c6..0000000
--- a/Superlocal.Agile.WinApp/Form1.Designer.cs
+++ /dev/null
@@ -1,333 +0,0 @@
-namespace Superlocal.Agile.WinApp
-{
- partial class Form1
- {
- ///
- /// 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.treeView1 = new System.Windows.Forms.TreeView();
- this.listBox2 = new System.Windows.Forms.ListBox();
- this.textBox1 = new System.Windows.Forms.TextBox();
- this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox();
- this.materialCheckbox2 = new MaterialSkin.Controls.MaterialCheckbox();
- this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox();
- this.materialCheckbox4 = new MaterialSkin.Controls.MaterialCheckbox();
- this.materialDrawer1 = new MaterialSkin.Controls.MaterialDrawer();
- this.materialTabControl1 = new MaterialSkin.Controls.MaterialTabControl();
- this.tabPage1 = new System.Windows.Forms.TabPage();
- this.materialCard1 = new MaterialSkin.Controls.MaterialCard();
- this.tabPage2 = new System.Windows.Forms.TabPage();
- this.materialExpansionPanel1 = new MaterialSkin.Controls.MaterialExpansionPanel();
- this.materialLabel1 = new MaterialSkin.Controls.MaterialLabel();
- this.materialCheckedListBox1 = new MaterialSkin.Controls.MaterialCheckedListBox();
- this.materialDivider1 = new MaterialSkin.Controls.MaterialDivider();
- this.materialTextBox1 = new MaterialSkin.Controls.MaterialTextBox();
- this.materialTabControl1.SuspendLayout();
- this.tabPage1.SuspendLayout();
- this.tabPage2.SuspendLayout();
- this.SuspendLayout();
- //
- // button1
- //
- this.button1.Location = new System.Drawing.Point(1056, 76);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(75, 23);
- this.button1.TabIndex = 1;
- this.button1.Text = "button1";
- this.button1.UseVisualStyleBackColor = true;
- this.button1.Click += new System.EventHandler(this.button1_Click);
- //
- // treeView1
- //
- this.treeView1.Location = new System.Drawing.Point(12, 106);
- this.treeView1.Name = "treeView1";
- this.treeView1.Size = new System.Drawing.Size(1119, 603);
- this.treeView1.TabIndex = 2;
- //
- // listBox2
- //
- this.listBox2.FormattingEnabled = true;
- this.listBox2.ItemHeight = 15;
- this.listBox2.Location = new System.Drawing.Point(12, 715);
- this.listBox2.Name = "listBox2";
- this.listBox2.Size = new System.Drawing.Size(1119, 64);
- this.listBox2.TabIndex = 3;
- //
- // textBox1
- //
- this.textBox1.Location = new System.Drawing.Point(12, 77);
- this.textBox1.Name = "textBox1";
- this.textBox1.Size = new System.Drawing.Size(521, 23);
- this.textBox1.TabIndex = 4;
- //
- // materialCheckbox1
- //
- this.materialCheckbox1.AutoSize = true;
- this.materialCheckbox1.Depth = 0;
- this.materialCheckbox1.Location = new System.Drawing.Point(0, 0);
- this.materialCheckbox1.Margin = new System.Windows.Forms.Padding(0);
- this.materialCheckbox1.MouseLocation = new System.Drawing.Point(-1, -1);
- this.materialCheckbox1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialCheckbox1.Name = "materialCheckbox1";
- this.materialCheckbox1.ReadOnly = false;
- this.materialCheckbox1.Ripple = true;
- this.materialCheckbox1.Size = new System.Drawing.Size(10, 10);
- this.materialCheckbox1.TabIndex = 0;
- this.materialCheckbox1.Text = "materialCheckbox1";
- this.materialCheckbox1.UseVisualStyleBackColor = true;
- //
- // materialCheckbox2
- //
- this.materialCheckbox2.AutoSize = true;
- this.materialCheckbox2.Depth = 0;
- this.materialCheckbox2.Location = new System.Drawing.Point(0, 0);
- this.materialCheckbox2.Margin = new System.Windows.Forms.Padding(0);
- this.materialCheckbox2.MouseLocation = new System.Drawing.Point(-1, -1);
- this.materialCheckbox2.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialCheckbox2.Name = "materialCheckbox2";
- this.materialCheckbox2.ReadOnly = false;
- this.materialCheckbox2.Ripple = true;
- this.materialCheckbox2.Size = new System.Drawing.Size(10, 10);
- this.materialCheckbox2.TabIndex = 0;
- this.materialCheckbox2.Text = "materialCheckbox2";
- this.materialCheckbox2.UseVisualStyleBackColor = true;
- //
- // materialCheckbox3
- //
- this.materialCheckbox3.AutoSize = true;
- this.materialCheckbox3.Depth = 0;
- this.materialCheckbox3.Location = new System.Drawing.Point(0, 0);
- this.materialCheckbox3.Margin = new System.Windows.Forms.Padding(0);
- this.materialCheckbox3.MouseLocation = new System.Drawing.Point(-1, -1);
- this.materialCheckbox3.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialCheckbox3.Name = "materialCheckbox3";
- this.materialCheckbox3.ReadOnly = false;
- this.materialCheckbox3.Ripple = true;
- this.materialCheckbox3.Size = new System.Drawing.Size(10, 10);
- this.materialCheckbox3.TabIndex = 0;
- this.materialCheckbox3.Text = "materialCheckbox3";
- this.materialCheckbox3.UseVisualStyleBackColor = true;
- //
- // materialCheckbox4
- //
- this.materialCheckbox4.AutoSize = true;
- this.materialCheckbox4.Depth = 0;
- this.materialCheckbox4.Location = new System.Drawing.Point(0, 0);
- this.materialCheckbox4.Margin = new System.Windows.Forms.Padding(0);
- this.materialCheckbox4.MouseLocation = new System.Drawing.Point(-1, -1);
- this.materialCheckbox4.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialCheckbox4.Name = "materialCheckbox4";
- this.materialCheckbox4.ReadOnly = false;
- this.materialCheckbox4.Ripple = true;
- this.materialCheckbox4.Size = new System.Drawing.Size(10, 10);
- this.materialCheckbox4.TabIndex = 0;
- this.materialCheckbox4.Text = "materialCheckbox4";
- this.materialCheckbox4.UseVisualStyleBackColor = true;
- //
- // materialDrawer1
- //
- this.materialDrawer1.AutoHide = false;
- this.materialDrawer1.AutoShow = false;
- this.materialDrawer1.BackgroundWithAccent = false;
- this.materialDrawer1.BaseTabControl = null;
- this.materialDrawer1.Depth = 0;
- this.materialDrawer1.HighlightWithAccent = true;
- this.materialDrawer1.IndicatorWidth = 0;
- this.materialDrawer1.IsOpen = false;
- this.materialDrawer1.Location = new System.Drawing.Point(-103, 20);
- this.materialDrawer1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialDrawer1.Name = "materialDrawer1";
- this.materialDrawer1.ShowIconsWhenHidden = false;
- this.materialDrawer1.Size = new System.Drawing.Size(103, 548);
- this.materialDrawer1.TabIndex = 6;
- this.materialDrawer1.Text = "materialDrawer1";
- this.materialDrawer1.UseColors = false;
- //
- // materialTabControl1
- //
- this.materialTabControl1.Controls.Add(this.tabPage1);
- this.materialTabControl1.Controls.Add(this.tabPage2);
- this.materialTabControl1.Depth = 0;
- this.materialTabControl1.Location = new System.Drawing.Point(321, 154);
- this.materialTabControl1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialTabControl1.Multiline = true;
- this.materialTabControl1.Name = "materialTabControl1";
- this.materialTabControl1.SelectedIndex = 0;
- this.materialTabControl1.Size = new System.Drawing.Size(517, 310);
- this.materialTabControl1.TabIndex = 7;
- //
- // tabPage1
- //
- this.tabPage1.Controls.Add(this.materialCard1);
- this.tabPage1.Location = new System.Drawing.Point(4, 24);
- this.tabPage1.Name = "tabPage1";
- this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
- this.tabPage1.Size = new System.Drawing.Size(509, 282);
- this.tabPage1.TabIndex = 0;
- this.tabPage1.Text = "tabPage1";
- this.tabPage1.UseVisualStyleBackColor = true;
- //
- // materialCard1
- //
- this.materialCard1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
- this.materialCard1.Depth = 0;
- this.materialCard1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
- this.materialCard1.Location = new System.Drawing.Point(21, 33);
- this.materialCard1.Margin = new System.Windows.Forms.Padding(14);
- this.materialCard1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialCard1.Name = "materialCard1";
- this.materialCard1.Padding = new System.Windows.Forms.Padding(14);
- this.materialCard1.Size = new System.Drawing.Size(200, 100);
- this.materialCard1.TabIndex = 0;
- //
- // tabPage2
- //
- this.tabPage2.Controls.Add(this.materialExpansionPanel1);
- this.tabPage2.Controls.Add(this.materialLabel1);
- this.tabPage2.Controls.Add(this.materialCheckedListBox1);
- this.tabPage2.Controls.Add(this.materialDivider1);
- this.tabPage2.Controls.Add(this.materialTextBox1);
- this.tabPage2.Location = new System.Drawing.Point(4, 24);
- this.tabPage2.Name = "tabPage2";
- this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
- this.tabPage2.Size = new System.Drawing.Size(509, 282);
- this.tabPage2.TabIndex = 1;
- this.tabPage2.Text = "tabPage2";
- this.tabPage2.UseVisualStyleBackColor = true;
- //
- // materialExpansionPanel1
- //
- this.materialExpansionPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
- this.materialExpansionPanel1.Depth = 0;
- this.materialExpansionPanel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
- this.materialExpansionPanel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(222)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
- this.materialExpansionPanel1.Location = new System.Drawing.Point(50, 154);
- this.materialExpansionPanel1.Margin = new System.Windows.Forms.Padding(3, 16, 3, 16);
- this.materialExpansionPanel1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialExpansionPanel1.Name = "materialExpansionPanel1";
- this.materialExpansionPanel1.Padding = new System.Windows.Forms.Padding(24, 64, 24, 16);
- this.materialExpansionPanel1.Size = new System.Drawing.Size(480, 240);
- this.materialExpansionPanel1.TabIndex = 4;
- //
- // materialLabel1
- //
- this.materialLabel1.AutoSize = true;
- this.materialLabel1.Depth = 0;
- this.materialLabel1.Font = new System.Drawing.Font("Roboto", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
- this.materialLabel1.Location = new System.Drawing.Point(335, 23);
- this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialLabel1.Name = "materialLabel1";
- this.materialLabel1.Size = new System.Drawing.Size(107, 19);
- this.materialLabel1.TabIndex = 3;
- this.materialLabel1.Text = "materialLabel1";
- //
- // materialCheckedListBox1
- //
- this.materialCheckedListBox1.AutoScroll = true;
- this.materialCheckedListBox1.BackColor = System.Drawing.Color.Transparent;
- this.materialCheckedListBox1.Depth = 0;
- this.materialCheckedListBox1.Location = new System.Drawing.Point(70, 41);
- this.materialCheckedListBox1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialCheckedListBox1.Name = "materialCheckedListBox1";
- this.materialCheckedListBox1.Size = new System.Drawing.Size(200, 100);
- this.materialCheckedListBox1.Striped = false;
- this.materialCheckedListBox1.StripeDarkColor = System.Drawing.Color.Empty;
- this.materialCheckedListBox1.TabIndex = 2;
- //
- // materialDivider1
- //
- this.materialDivider1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));
- this.materialDivider1.Depth = 0;
- this.materialDivider1.Location = new System.Drawing.Point(413, 99);
- this.materialDivider1.MouseState = MaterialSkin.MouseState.HOVER;
- this.materialDivider1.Name = "materialDivider1";
- this.materialDivider1.Size = new System.Drawing.Size(75, 23);
- this.materialDivider1.TabIndex = 1;
- this.materialDivider1.Text = "materialDivider1";
- //
- // materialTextBox1
- //
- this.materialTextBox1.AnimateReadOnly = false;
- this.materialTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.materialTextBox1.Depth = 0;
- this.materialTextBox1.Font = new System.Drawing.Font("Roboto", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
- this.materialTextBox1.LeadingIcon = null;
- this.materialTextBox1.Location = new System.Drawing.Point(303, 99);
- this.materialTextBox1.MaxLength = 50;
- this.materialTextBox1.MouseState = MaterialSkin.MouseState.OUT;
- this.materialTextBox1.Multiline = false;
- this.materialTextBox1.Name = "materialTextBox1";
- this.materialTextBox1.Size = new System.Drawing.Size(100, 50);
- this.materialTextBox1.TabIndex = 0;
- this.materialTextBox1.Text = "";
- this.materialTextBox1.TrailingIcon = null;
- //
- // Form1
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1162, 794);
- this.Controls.Add(this.materialTabControl1);
- this.Controls.Add(this.materialDrawer1);
- this.Controls.Add(this.textBox1);
- this.Controls.Add(this.listBox2);
- this.Controls.Add(this.treeView1);
- this.Controls.Add(this.button1);
- this.DrawerIsOpen = true;
- this.DrawerTabControl = this.materialTabControl1;
- this.Name = "Form1";
- this.Text = "Form1";
- this.materialTabControl1.ResumeLayout(false);
- this.tabPage1.ResumeLayout(false);
- this.tabPage2.ResumeLayout(false);
- this.tabPage2.PerformLayout();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
- private Button button1;
- private TreeView treeView1;
- private ListBox listBox2;
- private TextBox textBox1;
- private MaterialSkin.Controls.MaterialCheckbox materialCheckbox1;
- private MaterialSkin.Controls.MaterialCheckbox materialCheckbox2;
- private MaterialSkin.Controls.MaterialCheckbox materialCheckbox3;
- private MaterialSkin.Controls.MaterialCheckbox materialCheckbox4;
- private MaterialSkin.Controls.MaterialDrawer materialDrawer1;
- private MaterialSkin.Controls.MaterialTabControl materialTabControl1;
- private TabPage tabPage1;
- private MaterialSkin.Controls.MaterialCard materialCard1;
- private TabPage tabPage2;
- private MaterialSkin.Controls.MaterialExpansionPanel materialExpansionPanel1;
- private MaterialSkin.Controls.MaterialLabel materialLabel1;
- private MaterialSkin.Controls.MaterialCheckedListBox materialCheckedListBox1;
- private MaterialSkin.Controls.MaterialDivider materialDivider1;
- private MaterialSkin.Controls.MaterialTextBox materialTextBox1;
- }
-}
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/Program.cs b/Superlocal.Agile.WinApp/Program.cs
deleted file mode 100644
index 994de73..0000000
--- a/Superlocal.Agile.WinApp/Program.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace Superlocal.Agile.WinApp
-{
- internal static class Program
- {
- ///
- /// The main entry point for the application.
- ///
- [STAThread]
- static void Main()
- {
- ApplicationConfiguration.Initialize();
- Application.Run(new Form1());
- }
- }
-}
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj b/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj
deleted file mode 100644
index 9293037..0000000
--- a/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- WinExe
- net6.0-windows
- enable
- true
- enable
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj.user b/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj.user
deleted file mode 100644
index 485b518..0000000
--- a/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj.user
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
- Component
-
-
- Form
-
-
-
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.dgspec.json b/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.dgspec.json
deleted file mode 100644
index 28a29d2..0000000
--- a/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.dgspec.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "format": 1,
- "restore": {
- "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\Superlocal.Agile.WinApp.csproj": {}
- },
- "projects": {
- "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\Superlocal.Agile.WinApp.csproj": {
- "version": "1.0.0",
- "restore": {
- "projectUniqueName": "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\Superlocal.Agile.WinApp.csproj",
- "projectName": "Superlocal.Agile.WinApp",
- "projectPath": "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\Superlocal.Agile.WinApp.csproj",
- "packagesPath": "C:\\Users\\fch\\.nuget\\packages\\",
- "outputPath": "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\obj\\",
- "projectStyle": "PackageReference",
- "fallbackFolders": [
- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
- "C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
- ],
- "configFilePaths": [
- "C:\\Users\\fch\\AppData\\Roaming\\NuGet\\NuGet.Config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
- ],
- "originalTargetFrameworks": [
- "net6.0-windows7.0"
- ],
- "sources": {
- "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
- "https://api.nuget.org/v3/index.json": {}
- },
- "frameworks": {
- "net6.0-windows7.0": {
- "targetAlias": "net6.0-windows",
- "projectReferences": {}
- }
- },
- "warningProperties": {
- "warnAsError": [
- "NU1605"
- ]
- }
- },
- "frameworks": {
- "net6.0-windows7.0": {
- "targetAlias": "net6.0-windows",
- "dependencies": {
- "MaterialSkin.2": {
- "target": "Package",
- "version": "[2.3.1, )"
- },
- "Newtonsoft.Json": {
- "target": "Package",
- "version": "[13.0.1, )"
- },
- "PInvoke.User32": {
- "target": "Package",
- "version": "[0.7.104, )"
- },
- "PInvoke.Windows.Core": {
- "target": "Package",
- "version": "[0.7.104, )"
- }
- },
- "imports": [
- "net461",
- "net462",
- "net47",
- "net471",
- "net472",
- "net48"
- ],
- "assetTargetFallback": true,
- "warn": true,
- "frameworkReferences": {
- "Microsoft.NETCore.App": {
- "privateAssets": "all"
- },
- "Microsoft.WindowsDesktop.App.WindowsForms": {
- "privateAssets": "none"
- }
- },
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.100\\RuntimeIdentifierGraph.json"
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.g.props b/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.g.props
deleted file mode 100644
index 7ec2416..0000000
--- a/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.g.props
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- True
- NuGet
- $(MSBuildThisFileDirectory)project.assets.json
- $(UserProfile)\.nuget\packages\
- C:\Users\fch\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\
- PackageReference
- 6.0.1
-
-
-
-
-
-
-
- C:\Users\fch\.nuget\packages\validation\2.4.15
-
-
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.g.targets b/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.g.targets
deleted file mode 100644
index 3dc06ef..0000000
--- a/Superlocal.Agile.WinApp/obj/Superlocal.Agile.WinApp.csproj.nuget.g.targets
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/obj/project.assets.json b/Superlocal.Agile.WinApp/obj/project.assets.json
deleted file mode 100644
index 874a380..0000000
--- a/Superlocal.Agile.WinApp/obj/project.assets.json
+++ /dev/null
@@ -1,414 +0,0 @@
-{
- "version": 3,
- "targets": {
- "net6.0-windows7.0": {
- "MaterialSkin.2/2.3.1": {
- "type": "package",
- "compile": {
- "lib/net5.0-windows7.0/MaterialSkin.dll": {}
- },
- "runtime": {
- "lib/net5.0-windows7.0/MaterialSkin.dll": {}
- },
- "frameworkReferences": [
- "Microsoft.WindowsDesktop.App.WindowsForms"
- ]
- },
- "Newtonsoft.Json/13.0.1": {
- "type": "package",
- "compile": {
- "lib/netstandard2.0/Newtonsoft.Json.dll": {}
- },
- "runtime": {
- "lib/netstandard2.0/Newtonsoft.Json.dll": {}
- }
- },
- "PInvoke.Kernel32/0.7.104": {
- "type": "package",
- "dependencies": {
- "PInvoke.Windows.Core": "0.7.104",
- "System.Threading.Tasks.Extensions": "4.5.4"
- },
- "compile": {
- "lib/netstandard2.0/PInvoke.Kernel32.dll": {}
- },
- "runtime": {
- "lib/netstandard2.0/PInvoke.Kernel32.dll": {}
- }
- },
- "PInvoke.User32/0.7.104": {
- "type": "package",
- "dependencies": {
- "PInvoke.Kernel32": "0.7.104",
- "PInvoke.Windows.Core": "0.7.104",
- "PInvoke.Windows.ShellScalingApi": "0.7.104",
- "Validation": "2.4.15"
- },
- "compile": {
- "lib/netstandard2.0/PInvoke.User32.dll": {}
- },
- "runtime": {
- "lib/netstandard2.0/PInvoke.User32.dll": {}
- }
- },
- "PInvoke.Windows.Core/0.7.104": {
- "type": "package",
- "dependencies": {
- "System.Memory": "4.5.4"
- },
- "compile": {
- "lib/netstandard2.0/PInvoke.Windows.Core.dll": {}
- },
- "runtime": {
- "lib/netstandard2.0/PInvoke.Windows.Core.dll": {}
- }
- },
- "PInvoke.Windows.ShellScalingApi/0.7.104": {
- "type": "package",
- "dependencies": {
- "PInvoke.Windows.Core": "0.7.104"
- },
- "compile": {
- "lib/netstandard2.0/PInvoke.Windows.ShellScalingApi.dll": {}
- },
- "runtime": {
- "lib/netstandard2.0/PInvoke.Windows.ShellScalingApi.dll": {}
- }
- },
- "System.Memory/4.5.4": {
- "type": "package",
- "compile": {
- "ref/netcoreapp2.1/_._": {}
- },
- "runtime": {
- "lib/netcoreapp2.1/_._": {}
- }
- },
- "System.Threading.Tasks.Extensions/4.5.4": {
- "type": "package",
- "compile": {
- "ref/netcoreapp2.1/_._": {}
- },
- "runtime": {
- "lib/netcoreapp2.1/_._": {}
- }
- },
- "Validation/2.4.15": {
- "type": "package",
- "compile": {
- "lib/netstandard1.3/Validation.dll": {}
- },
- "runtime": {
- "lib/netstandard1.3/Validation.dll": {}
- }
- }
- }
- },
- "libraries": {
- "MaterialSkin.2/2.3.1": {
- "sha512": "w2vFxLNk4InCDU7pXDfBqPfv55HhBtuu8HRfEqQpeS3sNTS1pUzDs/hS0b5JW2/tKvt+P1of9OINP8a9omWDBg==",
- "type": "package",
- "path": "materialskin.2/2.3.1",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "README.md",
- "lib/net45/MaterialSkin.dll",
- "lib/net461/MaterialSkin.dll",
- "lib/net48/MaterialSkin.dll",
- "lib/net5.0-windows7.0/MaterialSkin.dll",
- "materialskin.2.2.3.1.nupkg.sha512",
- "materialskin.2.nuspec",
- "nugetIcon.png"
- ]
- },
- "Newtonsoft.Json/13.0.1": {
- "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
- "type": "package",
- "path": "newtonsoft.json/13.0.1",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "LICENSE.md",
- "lib/net20/Newtonsoft.Json.dll",
- "lib/net20/Newtonsoft.Json.xml",
- "lib/net35/Newtonsoft.Json.dll",
- "lib/net35/Newtonsoft.Json.xml",
- "lib/net40/Newtonsoft.Json.dll",
- "lib/net40/Newtonsoft.Json.xml",
- "lib/net45/Newtonsoft.Json.dll",
- "lib/net45/Newtonsoft.Json.xml",
- "lib/netstandard1.0/Newtonsoft.Json.dll",
- "lib/netstandard1.0/Newtonsoft.Json.xml",
- "lib/netstandard1.3/Newtonsoft.Json.dll",
- "lib/netstandard1.3/Newtonsoft.Json.xml",
- "lib/netstandard2.0/Newtonsoft.Json.dll",
- "lib/netstandard2.0/Newtonsoft.Json.xml",
- "newtonsoft.json.13.0.1.nupkg.sha512",
- "newtonsoft.json.nuspec",
- "packageIcon.png"
- ]
- },
- "PInvoke.Kernel32/0.7.104": {
- "sha512": "xU9Wp22ej6NcVg4Uqelnhz27X6HdHaroAPOk5IsG8nTi82zHOznTOW2KIYCdpAGf67rHpQW6UtmjrG+5HPlnvA==",
- "type": "package",
- "path": "pinvoke.kernel32/0.7.104",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "lib/net45/PInvoke.Kernel32.dll",
- "lib/net45/PInvoke.Kernel32.xml",
- "lib/net46/PInvoke.Kernel32.dll",
- "lib/net46/PInvoke.Kernel32.xml",
- "lib/netstandard2.0/PInvoke.Kernel32.dll",
- "lib/netstandard2.0/PInvoke.Kernel32.xml",
- "lib/uap10.0.16299/PInvoke.Kernel32.dll",
- "lib/uap10.0.16299/PInvoke.Kernel32.pri",
- "lib/uap10.0.16299/PInvoke.Kernel32.xml",
- "pinvoke.kernel32.0.7.104.nupkg.sha512",
- "pinvoke.kernel32.nuspec"
- ]
- },
- "PInvoke.User32/0.7.104": {
- "sha512": "MPJICVOtkCCuLY0hbu7tgBFE3S3WHVrym5ZF2NjGAMluhKdkWFSIOi+wadnMwX2PI7nhCQ4bPK/REKZtfYdgaQ==",
- "type": "package",
- "path": "pinvoke.user32/0.7.104",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "lib/net45/PInvoke.User32.dll",
- "lib/net45/PInvoke.User32.xml",
- "lib/netstandard2.0/PInvoke.User32.dll",
- "lib/netstandard2.0/PInvoke.User32.xml",
- "lib/uap10.0.16299/PInvoke.User32.dll",
- "lib/uap10.0.16299/PInvoke.User32.pri",
- "lib/uap10.0.16299/PInvoke.User32.xml",
- "pinvoke.user32.0.7.104.nupkg.sha512",
- "pinvoke.user32.nuspec"
- ]
- },
- "PInvoke.Windows.Core/0.7.104": {
- "sha512": "WI8ht+k0nk7YmeWD6OewGI+TzRdgtJSaO+e+PMPeYSBVwU9jl4ZlelizZNz271ZY4k4J8lk+mTWg5bo+I71mTA==",
- "type": "package",
- "path": "pinvoke.windows.core/0.7.104",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "lib/net45/PInvoke.Windows.Core.dll",
- "lib/net45/PInvoke.Windows.Core.xml",
- "lib/netstandard2.0/PInvoke.Windows.Core.dll",
- "lib/netstandard2.0/PInvoke.Windows.Core.xml",
- "lib/uap10.0.16299/PInvoke.Windows.Core.dll",
- "lib/uap10.0.16299/PInvoke.Windows.Core.pri",
- "lib/uap10.0.16299/PInvoke.Windows.Core.xml",
- "pinvoke.windows.core.0.7.104.nupkg.sha512",
- "pinvoke.windows.core.nuspec"
- ]
- },
- "PInvoke.Windows.ShellScalingApi/0.7.104": {
- "sha512": "rgCP4i9U6oEHlBY1uOGEuw+aaS5U9zfNMs1Vj6dlgCgW5Rq1fazENQuAvf6GCHSAl4Cann4A90z+fCcXbwLqtg==",
- "type": "package",
- "path": "pinvoke.windows.shellscalingapi/0.7.104",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "lib/net45/PInvoke.Windows.ShellScalingApi.dll",
- "lib/net45/PInvoke.Windows.ShellScalingApi.xml",
- "lib/netstandard2.0/PInvoke.Windows.ShellScalingApi.dll",
- "lib/netstandard2.0/PInvoke.Windows.ShellScalingApi.xml",
- "lib/uap10.0.16299/PInvoke.Windows.ShellScalingApi.dll",
- "lib/uap10.0.16299/PInvoke.Windows.ShellScalingApi.pri",
- "lib/uap10.0.16299/PInvoke.Windows.ShellScalingApi.xml",
- "pinvoke.windows.shellscalingapi.0.7.104.nupkg.sha512",
- "pinvoke.windows.shellscalingapi.nuspec"
- ]
- },
- "System.Memory/4.5.4": {
- "sha512": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==",
- "type": "package",
- "path": "system.memory/4.5.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "LICENSE.TXT",
- "THIRD-PARTY-NOTICES.TXT",
- "lib/net461/System.Memory.dll",
- "lib/net461/System.Memory.xml",
- "lib/netcoreapp2.1/_._",
- "lib/netstandard1.1/System.Memory.dll",
- "lib/netstandard1.1/System.Memory.xml",
- "lib/netstandard2.0/System.Memory.dll",
- "lib/netstandard2.0/System.Memory.xml",
- "ref/netcoreapp2.1/_._",
- "system.memory.4.5.4.nupkg.sha512",
- "system.memory.nuspec",
- "useSharedDesignerContext.txt",
- "version.txt"
- ]
- },
- "System.Threading.Tasks.Extensions/4.5.4": {
- "sha512": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
- "type": "package",
- "path": "system.threading.tasks.extensions/4.5.4",
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "LICENSE.TXT",
- "THIRD-PARTY-NOTICES.TXT",
- "lib/MonoAndroid10/_._",
- "lib/MonoTouch10/_._",
- "lib/net461/System.Threading.Tasks.Extensions.dll",
- "lib/net461/System.Threading.Tasks.Extensions.xml",
- "lib/netcoreapp2.1/_._",
- "lib/netstandard1.0/System.Threading.Tasks.Extensions.dll",
- "lib/netstandard1.0/System.Threading.Tasks.Extensions.xml",
- "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll",
- "lib/netstandard2.0/System.Threading.Tasks.Extensions.xml",
- "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.dll",
- "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Extensions.xml",
- "lib/xamarinios10/_._",
- "lib/xamarinmac20/_._",
- "lib/xamarintvos10/_._",
- "lib/xamarinwatchos10/_._",
- "ref/MonoAndroid10/_._",
- "ref/MonoTouch10/_._",
- "ref/netcoreapp2.1/_._",
- "ref/xamarinios10/_._",
- "ref/xamarinmac20/_._",
- "ref/xamarintvos10/_._",
- "ref/xamarinwatchos10/_._",
- "system.threading.tasks.extensions.4.5.4.nupkg.sha512",
- "system.threading.tasks.extensions.nuspec",
- "useSharedDesignerContext.txt",
- "version.txt"
- ]
- },
- "Validation/2.4.15": {
- "sha512": "KQFOtJKKhaXzuSiZhkFaFzQEdYsA+EN/XqKZDYwsGDOrS0Nxu6qzCvNTsDF4xtkiZbBA6u7I59QnsuP2O2fZgg==",
- "type": "package",
- "path": "validation/2.4.15",
- "hasTools": true,
- "files": [
- ".nupkg.metadata",
- ".signature.p7s",
- "README.md",
- "lib/net20/Validation.dll",
- "lib/net20/Validation.xml",
- "lib/net40/Validation.dll",
- "lib/net40/Validation.xml",
- "lib/net45/Validation.dll",
- "lib/net45/Validation.xml",
- "lib/netstandard1.0/Validation.dll",
- "lib/netstandard1.0/Validation.xml",
- "lib/netstandard1.3/Validation.dll",
- "lib/netstandard1.3/Validation.xml",
- "lib/portable-net40+sl5+win8+wp8+wpa81/Validation.dll",
- "lib/portable-net40+sl5+win8+wp8+wpa81/Validation.xml",
- "lib/portable-net45+win8+wp8+wpa81/Validation.dll",
- "lib/portable-net45+win8+wp8+wpa81/Validation.xml",
- "tools/2013/RequiresNotNull.snippet",
- "tools/2013/RequiresNotNullOrEmpty.snippet",
- "tools/2015/RequiresNotNull.snippet",
- "tools/2015/RequiresNotNullOrEmpty.snippet",
- "tools/install_snippets.cmd",
- "tools/uninstall_snippets.cmd",
- "validation.2.4.15.nupkg.sha512",
- "validation.nuspec"
- ]
- }
- },
- "projectFileDependencyGroups": {
- "net6.0-windows7.0": [
- "MaterialSkin.2 >= 2.3.1",
- "Newtonsoft.Json >= 13.0.1",
- "PInvoke.User32 >= 0.7.104",
- "PInvoke.Windows.Core >= 0.7.104"
- ]
- },
- "packageFolders": {
- "C:\\Users\\fch\\.nuget\\packages\\": {},
- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {},
- "C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {}
- },
- "project": {
- "version": "1.0.0",
- "restore": {
- "projectUniqueName": "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\Superlocal.Agile.WinApp.csproj",
- "projectName": "Superlocal.Agile.WinApp",
- "projectPath": "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\Superlocal.Agile.WinApp.csproj",
- "packagesPath": "C:\\Users\\fch\\.nuget\\packages\\",
- "outputPath": "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\obj\\",
- "projectStyle": "PackageReference",
- "fallbackFolders": [
- "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages",
- "C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\"
- ],
- "configFilePaths": [
- "C:\\Users\\fch\\AppData\\Roaming\\NuGet\\NuGet.Config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config",
- "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config"
- ],
- "originalTargetFrameworks": [
- "net6.0-windows7.0"
- ],
- "sources": {
- "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
- "https://api.nuget.org/v3/index.json": {}
- },
- "frameworks": {
- "net6.0-windows7.0": {
- "targetAlias": "net6.0-windows",
- "projectReferences": {}
- }
- },
- "warningProperties": {
- "warnAsError": [
- "NU1605"
- ]
- }
- },
- "frameworks": {
- "net6.0-windows7.0": {
- "targetAlias": "net6.0-windows",
- "dependencies": {
- "MaterialSkin.2": {
- "target": "Package",
- "version": "[2.3.1, )"
- },
- "Newtonsoft.Json": {
- "target": "Package",
- "version": "[13.0.1, )"
- },
- "PInvoke.User32": {
- "target": "Package",
- "version": "[0.7.104, )"
- },
- "PInvoke.Windows.Core": {
- "target": "Package",
- "version": "[0.7.104, )"
- }
- },
- "imports": [
- "net461",
- "net462",
- "net47",
- "net471",
- "net472",
- "net48"
- ],
- "assetTargetFallback": true,
- "warn": true,
- "frameworkReferences": {
- "Microsoft.NETCore.App": {
- "privateAssets": "all"
- },
- "Microsoft.WindowsDesktop.App.WindowsForms": {
- "privateAssets": "none"
- }
- },
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.100\\RuntimeIdentifierGraph.json"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/obj/project.nuget.cache b/Superlocal.Agile.WinApp/obj/project.nuget.cache
deleted file mode 100644
index 061b3e9..0000000
--- a/Superlocal.Agile.WinApp/obj/project.nuget.cache
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "version": 2,
- "dgSpecHash": "UAQCboT4WaHqFZGweBG/1hD20QM4tP0IKjrCrVSyCbQ8A2mmAI2tLrpLDTkYy+7oXgb2RFvNSYGr11UUTzgD+Q==",
- "success": true,
- "projectFilePath": "D:\\fch\\dev\\code\\superlocal\\Superlocal.Agile\\Superlocal.Agile.WinApp\\Superlocal.Agile.WinApp.csproj",
- "expectedPackageFiles": [
- "C:\\Users\\fch\\.nuget\\packages\\materialskin.2\\2.3.1\\materialskin.2.2.3.1.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\pinvoke.kernel32\\0.7.104\\pinvoke.kernel32.0.7.104.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\pinvoke.user32\\0.7.104\\pinvoke.user32.0.7.104.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\pinvoke.windows.core\\0.7.104\\pinvoke.windows.core.0.7.104.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\pinvoke.windows.shellscalingapi\\0.7.104\\pinvoke.windows.shellscalingapi.0.7.104.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\system.memory\\4.5.4\\system.memory.4.5.4.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512",
- "C:\\Users\\fch\\.nuget\\packages\\validation\\2.4.15\\validation.2.4.15.nupkg.sha512"
- ],
- "logs": []
-}
\ No newline at end of file
diff --git a/Superlocal.Agile.sln b/Superlocal.Agile.sln
index b3e883f..1948dc2 100644
--- a/Superlocal.Agile.sln
+++ b/Superlocal.Agile.sln
@@ -3,7 +3,32 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31919.166
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Superlocal.Agile.WinApp", "Superlocal.Agile.WinApp\Superlocal.Agile.WinApp.csproj", "{C649167F-241E-41D2-8DDE-7EA56C4DF414}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{AE77267E-504F-4E69-89F4-A360CC23CD11}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ui", "ui", "{6F2B93E2-A129-4289-B38D-5FD691AD3780}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{F5C307F1-4695-4981-8806-3ADBC6B00000}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{14EA4223-1F26-42B0-AA2B-2EEA8C47543D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{A07BA421-AC02-4420-8435-59EF367CC107}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Superlocal.Agile.Infrastructure", "src\lib\Superlocal.Agile.Infrastructure\Superlocal.Agile.Infrastructure.csproj", "{E95D303A-9855-4BC6-A25F-E1FC08A3381D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Superlocal.Agile.Tests", "tests\Superlocal.Agile.Tests\Superlocal.Agile.Tests.csproj", "{6524AD6E-4A33-4051-A751-7D08B7AB0D9C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Superlocal.Agile.Domain", "src\lib\Superlocal.Agile.Domain\Superlocal.Agile.Domain.csproj", "{376BBF07-2E54-44D5-9B80-649B0798240E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Superlocal.Agile.WinApp", "src\ui\Superlocal.Agile.WinApp\Superlocal.Agile.WinApp.csproj", "{36915115-0C09-41FB-8B6F-FF786B88A2D1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Superlocal.Agile.Application", "src\lib\Superlocal.Agile.Application\Superlocal.Agile.Application.csproj", "{7CA284DE-C6A3-484B-9605-066134AC571B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{97C5D9A4-73BE-464C-9E04-79FAF8EAAE2F}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ LICENSE = LICENSE
+ README.md = README.md
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,14 +36,39 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C649167F-241E-41D2-8DDE-7EA56C4DF414}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C649167F-241E-41D2-8DDE-7EA56C4DF414}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C649167F-241E-41D2-8DDE-7EA56C4DF414}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C649167F-241E-41D2-8DDE-7EA56C4DF414}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E95D303A-9855-4BC6-A25F-E1FC08A3381D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E95D303A-9855-4BC6-A25F-E1FC08A3381D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E95D303A-9855-4BC6-A25F-E1FC08A3381D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E95D303A-9855-4BC6-A25F-E1FC08A3381D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6524AD6E-4A33-4051-A751-7D08B7AB0D9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6524AD6E-4A33-4051-A751-7D08B7AB0D9C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6524AD6E-4A33-4051-A751-7D08B7AB0D9C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6524AD6E-4A33-4051-A751-7D08B7AB0D9C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {376BBF07-2E54-44D5-9B80-649B0798240E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {376BBF07-2E54-44D5-9B80-649B0798240E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {376BBF07-2E54-44D5-9B80-649B0798240E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {376BBF07-2E54-44D5-9B80-649B0798240E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {36915115-0C09-41FB-8B6F-FF786B88A2D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {36915115-0C09-41FB-8B6F-FF786B88A2D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {36915115-0C09-41FB-8B6F-FF786B88A2D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {36915115-0C09-41FB-8B6F-FF786B88A2D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7CA284DE-C6A3-484B-9605-066134AC571B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7CA284DE-C6A3-484B-9605-066134AC571B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7CA284DE-C6A3-484B-9605-066134AC571B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7CA284DE-C6A3-484B-9605-066134AC571B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {6F2B93E2-A129-4289-B38D-5FD691AD3780} = {AE77267E-504F-4E69-89F4-A360CC23CD11}
+ {F5C307F1-4695-4981-8806-3ADBC6B00000} = {AE77267E-504F-4E69-89F4-A360CC23CD11}
+ {E95D303A-9855-4BC6-A25F-E1FC08A3381D} = {F5C307F1-4695-4981-8806-3ADBC6B00000}
+ {6524AD6E-4A33-4051-A751-7D08B7AB0D9C} = {A07BA421-AC02-4420-8435-59EF367CC107}
+ {376BBF07-2E54-44D5-9B80-649B0798240E} = {F5C307F1-4695-4981-8806-3ADBC6B00000}
+ {36915115-0C09-41FB-8B6F-FF786B88A2D1} = {6F2B93E2-A129-4289-B38D-5FD691AD3780}
+ {7CA284DE-C6A3-484B-9605-066134AC571B} = {F5C307F1-4695-4981-8806-3ADBC6B00000}
+ EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {B9990170-CF12-4BAF-8CDD-65FF14245F91}
EndGlobalSection
diff --git a/src/lib/Superlocal.Agile.Application/Superlocal.Agile.Application.csproj b/src/lib/Superlocal.Agile.Application/Superlocal.Agile.Application.csproj
new file mode 100644
index 0000000..01e979d
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Application/Superlocal.Agile.Application.csproj
@@ -0,0 +1,13 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/src/lib/Superlocal.Agile.Domain/Models/IAppWindowInfo.cs b/src/lib/Superlocal.Agile.Domain/Models/IAppWindowInfo.cs
new file mode 100644
index 0000000..0c5bf6d
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Domain/Models/IAppWindowInfo.cs
@@ -0,0 +1,20 @@
+namespace Superlocal.Agile.Domain.Models
+{
+ public interface IAppWindowInfo
+ {
+ ///
+ /// App window title
+ ///
+ string Title { get; }
+
+ ///
+ /// When user interacted with app window
+ ///
+ DateTimeOffset Start { get; }
+
+ ///
+ /// When user moved to another app
+ ///
+ DateTimeOffset End { get; }
+ }
+}
diff --git a/src/lib/Superlocal.Agile.Domain/Models/IProcessInfo.cs b/src/lib/Superlocal.Agile.Domain/Models/IProcessInfo.cs
new file mode 100644
index 0000000..5d32251
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Domain/Models/IProcessInfo.cs
@@ -0,0 +1,10 @@
+namespace Superlocal.Agile.Domain.Models;
+
+public partial interface IProcessInfo
+{
+ int LastCapturedId { get; }
+
+ string Name { get; }
+
+ string? Path { get; }
+}
\ No newline at end of file
diff --git a/src/lib/Superlocal.Agile.Domain/README.md b/src/lib/Superlocal.Agile.Domain/README.md
new file mode 100644
index 0000000..5e19d33
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Domain/README.md
@@ -0,0 +1,21 @@
+# Domain
+
+Add info about DDD and Clean Archictecture
+
+## Model
+
+People often confuse entity with model. However, these two are quite different.
+
+A model typically represents a real world object that is related to the problem or domain space.
+While programming, we create classes to represent them. These classes, known as models,
+have some properties and methods (defining their behavior) in a particular domain space.
+For instance, in any customer oriented problem, we may have a customer class that has some properties and methods.
+
+In some ORM (Object Relational Mapper) frameworks, a model is tightly bound to an entity.
+This means that every scalar property maps to an entity attribute.
+However, if you are familiar with Entity Framework, you must know that, not all properties in your domain class map to an entity column.
+And that's one way in which an entity is different from a model.
+
+### References
+
+https://www.c-sharpcorner.com/blogs/entity-vs-model-vs-viewmodel-vs-datamodel
diff --git a/src/lib/Superlocal.Agile.Domain/Superlocal.Agile.Domain.csproj b/src/lib/Superlocal.Agile.Domain/Superlocal.Agile.Domain.csproj
new file mode 100644
index 0000000..132c02c
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Domain/Superlocal.Agile.Domain.csproj
@@ -0,0 +1,9 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/src/lib/Superlocal.Agile.Infrastructure/Database/SqliteDbContext.cs b/src/lib/Superlocal.Agile.Infrastructure/Database/SqliteDbContext.cs
new file mode 100644
index 0000000..165292e
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/Database/SqliteDbContext.cs
@@ -0,0 +1,22 @@
+using Microsoft.EntityFrameworkCore;
+using Superlocal.Agile.Infrastructure.Entities;
+
+namespace Superlocal.Agile.Infrastructure.Database
+{
+ public class SqliteDbContext : DbContext
+ {
+ public DbSet ProcessInfos { get; set; }
+
+ public DbSet AppWindowInfos { get; set; }
+
+ public SqliteDbContext(DbContextOptions options) : base(options)
+ {
+
+ }
+
+ //protected override void OnConfiguring(DbContextOptionsBuilder options)
+ //{
+ // base.OnConfiguring(options);
+ //}
+ }
+}
diff --git a/src/lib/Superlocal.Agile.Infrastructure/Entities/AppWindowInfo.cs b/src/lib/Superlocal.Agile.Infrastructure/Entities/AppWindowInfo.cs
new file mode 100644
index 0000000..f4e4be2
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/Entities/AppWindowInfo.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Superlocal.Agile.Infrastructure.Entities;
+
+public class AppWindowInfo : IAppWindowInfo
+{
+ [Key]
+ public int Id { get; set; }
+
+ public ProcessInfo ProcessInfo { get; set; }
+
+ public string Title { get; set; }
+
+ public DateTimeOffset Start { get; set; }
+
+ public DateTimeOffset End { get; set; }
+}
diff --git a/src/lib/Superlocal.Agile.Infrastructure/Entities/ProcessInfo.cs b/src/lib/Superlocal.Agile.Infrastructure/Entities/ProcessInfo.cs
new file mode 100644
index 0000000..45e5e55
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/Entities/ProcessInfo.cs
@@ -0,0 +1,18 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Superlocal.Agile.Infrastructure.Entities;
+
+public class ProcessInfo : IProcessInfo
+{
+ [Key]
+ public Guid Guid { get; set; }
+
+ public int LastCapturedId { get; set; }
+
+ [Required]
+ public string Name { get; set; }
+
+ public string? Path { get; set; }
+
+ public virtual IEnumerable AppWindowsInfo { get; set; }
+}
diff --git a/src/lib/Superlocal.Agile.Infrastructure/GlobalUsings.cs b/src/lib/Superlocal.Agile.Infrastructure/GlobalUsings.cs
new file mode 100644
index 0000000..b1a7827
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/GlobalUsings.cs
@@ -0,0 +1,3 @@
+global using Superlocal.Agile.Domain.Models;
+
+namespace Superlocal.Agile.Infrastructure;
\ No newline at end of file
diff --git a/src/lib/Superlocal.Agile.Infrastructure/Migrations/20211223171100_First migration.Designer.cs b/src/lib/Superlocal.Agile.Infrastructure/Migrations/20211223171100_First migration.Designer.cs
new file mode 100644
index 0000000..a9aedac
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/Migrations/20211223171100_First migration.Designer.cs
@@ -0,0 +1,87 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Superlocal.Agile.Infrastructure.Database;
+
+#nullable disable
+
+namespace Superlocal.Agile.Infrastructure.Migrations
+{
+ [DbContext(typeof(SqliteDbContext))]
+ [Migration("20211223171100_First migration")]
+ partial class Firstmigration
+ {
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder.HasAnnotation("ProductVersion", "6.0.1");
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.AppWindowInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("End")
+ .HasColumnType("TEXT");
+
+ b.Property("ProcessInfoGuid")
+ .HasColumnType("TEXT");
+
+ b.Property("Start")
+ .HasColumnType("TEXT");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProcessInfoGuid");
+
+ b.ToTable("AppWindowInfos");
+ });
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.ProcessInfo", b =>
+ {
+ b.Property("Guid")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT");
+
+ b.Property("LastCapturedId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Path")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Guid");
+
+ b.ToTable("ProcessInfos");
+ });
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.AppWindowInfo", b =>
+ {
+ b.HasOne("Superlocal.Agile.Infrastructure.Entities.ProcessInfo", "ProcessInfo")
+ .WithMany("AppWindowsInfo")
+ .HasForeignKey("ProcessInfoGuid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ProcessInfo");
+ });
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.ProcessInfo", b =>
+ {
+ b.Navigation("AppWindowsInfo");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/lib/Superlocal.Agile.Infrastructure/Migrations/20211223171100_First migration.cs b/src/lib/Superlocal.Agile.Infrastructure/Migrations/20211223171100_First migration.cs
new file mode 100644
index 0000000..c093bbb
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/Migrations/20211223171100_First migration.cs
@@ -0,0 +1,63 @@
+using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace Superlocal.Agile.Infrastructure.Migrations
+{
+ public partial class Firstmigration : Migration
+ {
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.CreateTable(
+ name: "ProcessInfos",
+ columns: table => new
+ {
+ Guid = table.Column(type: "TEXT", nullable: false),
+ LastCapturedId = table.Column(type: "INTEGER", nullable: false),
+ Name = table.Column(type: "TEXT", nullable: false),
+ Path = table.Column(type: "TEXT", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ProcessInfos", x => x.Guid);
+ });
+
+ migrationBuilder.CreateTable(
+ name: "AppWindowInfos",
+ columns: table => new
+ {
+ Id = table.Column(type: "INTEGER", nullable: false)
+ .Annotation("Sqlite:Autoincrement", true),
+ ProcessInfoGuid = table.Column(type: "TEXT", nullable: false),
+ Title = table.Column(type: "TEXT", nullable: false),
+ Start = table.Column(type: "TEXT", nullable: false),
+ End = table.Column(type: "TEXT", nullable: false)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_AppWindowInfos", x => x.Id);
+ table.ForeignKey(
+ name: "FK_AppWindowInfos_ProcessInfos_ProcessInfoGuid",
+ column: x => x.ProcessInfoGuid,
+ principalTable: "ProcessInfos",
+ principalColumn: "Guid",
+ onDelete: ReferentialAction.Cascade);
+ });
+
+ migrationBuilder.CreateIndex(
+ name: "IX_AppWindowInfos_ProcessInfoGuid",
+ table: "AppWindowInfos",
+ column: "ProcessInfoGuid");
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ migrationBuilder.DropTable(
+ name: "AppWindowInfos");
+
+ migrationBuilder.DropTable(
+ name: "ProcessInfos");
+ }
+ }
+}
diff --git a/src/lib/Superlocal.Agile.Infrastructure/Migrations/SqliteDbContextModelSnapshot.cs b/src/lib/Superlocal.Agile.Infrastructure/Migrations/SqliteDbContextModelSnapshot.cs
new file mode 100644
index 0000000..64b2c8b
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/Migrations/SqliteDbContextModelSnapshot.cs
@@ -0,0 +1,85 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Superlocal.Agile.Infrastructure.Database;
+
+#nullable disable
+
+namespace Superlocal.Agile.Infrastructure.Migrations
+{
+ [DbContext(typeof(SqliteDbContext))]
+ partial class SqliteDbContextModelSnapshot : ModelSnapshot
+ {
+ protected override void BuildModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder.HasAnnotation("ProductVersion", "6.0.1");
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.AppWindowInfo", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("INTEGER");
+
+ b.Property("End")
+ .HasColumnType("TEXT");
+
+ b.Property("ProcessInfoGuid")
+ .HasColumnType("TEXT");
+
+ b.Property("Start")
+ .HasColumnType("TEXT");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ProcessInfoGuid");
+
+ b.ToTable("AppWindowInfos");
+ });
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.ProcessInfo", b =>
+ {
+ b.Property("Guid")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("TEXT");
+
+ b.Property("LastCapturedId")
+ .HasColumnType("INTEGER");
+
+ b.Property("Name")
+ .IsRequired()
+ .HasColumnType("TEXT");
+
+ b.Property("Path")
+ .HasColumnType("TEXT");
+
+ b.HasKey("Guid");
+
+ b.ToTable("ProcessInfos");
+ });
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.AppWindowInfo", b =>
+ {
+ b.HasOne("Superlocal.Agile.Infrastructure.Entities.ProcessInfo", "ProcessInfo")
+ .WithMany("AppWindowsInfo")
+ .HasForeignKey("ProcessInfoGuid")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("ProcessInfo");
+ });
+
+ modelBuilder.Entity("Superlocal.Agile.Infrastructure.Entities.ProcessInfo", b =>
+ {
+ b.Navigation("AppWindowsInfo");
+ });
+#pragma warning restore 612, 618
+ }
+ }
+}
diff --git a/src/lib/Superlocal.Agile.Infrastructure/Superlocal.Agile.Infrastructure.csproj b/src/lib/Superlocal.Agile.Infrastructure/Superlocal.Agile.Infrastructure.csproj
new file mode 100644
index 0000000..308dc31
--- /dev/null
+++ b/src/lib/Superlocal.Agile.Infrastructure/Superlocal.Agile.Infrastructure.csproj
@@ -0,0 +1,30 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Superlocal.Agile.WinApp/Constants/ApplicationState.cs b/src/ui/Superlocal.Agile.WinApp/Constants/ApplicationState.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/Constants/ApplicationState.cs
rename to src/ui/Superlocal.Agile.WinApp/Constants/ApplicationState.cs
diff --git a/Superlocal.Agile.WinApp/Constants/KnowApplication.cs b/src/ui/Superlocal.Agile.WinApp/Constants/KnowApplication.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/Constants/KnowApplication.cs
rename to src/ui/Superlocal.Agile.WinApp/Constants/KnowApplication.cs
diff --git a/Superlocal.Agile.WinApp/DebugControl.Designer.cs b/src/ui/Superlocal.Agile.WinApp/DebugControl.Designer.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/DebugControl.Designer.cs
rename to src/ui/Superlocal.Agile.WinApp/DebugControl.Designer.cs
diff --git a/Superlocal.Agile.WinApp/DebugControl.cs b/src/ui/Superlocal.Agile.WinApp/DebugControl.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/DebugControl.cs
rename to src/ui/Superlocal.Agile.WinApp/DebugControl.cs
diff --git a/Superlocal.Agile.WinApp/DebugControl.resx b/src/ui/Superlocal.Agile.WinApp/DebugControl.resx
similarity index 100%
rename from Superlocal.Agile.WinApp/DebugControl.resx
rename to src/ui/Superlocal.Agile.WinApp/DebugControl.resx
diff --git a/Superlocal.Agile.WinApp/Entities/ApplicationInfo.cs b/src/ui/Superlocal.Agile.WinApp/Entities/ApplicationInfo.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/Entities/ApplicationInfo.cs
rename to src/ui/Superlocal.Agile.WinApp/Entities/ApplicationInfo.cs
diff --git a/Superlocal.Agile.WinApp/Entities/ApplicationWindow.cs b/src/ui/Superlocal.Agile.WinApp/Entities/ApplicationWindow.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/Entities/ApplicationWindow.cs
rename to src/ui/Superlocal.Agile.WinApp/Entities/ApplicationWindow.cs
diff --git a/src/ui/Superlocal.Agile.WinApp/Forms/MainForm.Designer.cs b/src/ui/Superlocal.Agile.WinApp/Forms/MainForm.Designer.cs
new file mode 100644
index 0000000..67ddd72
--- /dev/null
+++ b/src/ui/Superlocal.Agile.WinApp/Forms/MainForm.Designer.cs
@@ -0,0 +1,187 @@
+namespace Superlocal.Agile.WinApp
+{
+ 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.treeView1 = new System.Windows.Forms.TreeView();
+ this.listBox2 = new System.Windows.Forms.ListBox();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.materialCheckbox1 = new MaterialSkin.Controls.MaterialCheckbox();
+ this.materialCheckbox2 = new MaterialSkin.Controls.MaterialCheckbox();
+ this.materialCheckbox3 = new MaterialSkin.Controls.MaterialCheckbox();
+ this.materialCheckbox4 = new MaterialSkin.Controls.MaterialCheckbox();
+ this.materialDrawer1 = new MaterialSkin.Controls.MaterialDrawer();
+ this.SuspendLayout();
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(1056, 76);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(75, 23);
+ this.button1.TabIndex = 1;
+ this.button1.Text = "button1";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // treeView1
+ //
+ this.treeView1.Location = new System.Drawing.Point(12, 106);
+ this.treeView1.Name = "treeView1";
+ this.treeView1.Size = new System.Drawing.Size(1119, 603);
+ this.treeView1.TabIndex = 2;
+ //
+ // listBox2
+ //
+ this.listBox2.FormattingEnabled = true;
+ this.listBox2.ItemHeight = 15;
+ this.listBox2.Location = new System.Drawing.Point(12, 715);
+ this.listBox2.Name = "listBox2";
+ this.listBox2.Size = new System.Drawing.Size(1119, 64);
+ this.listBox2.TabIndex = 3;
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(12, 77);
+ this.textBox1.Name = "textBox1";
+ this.textBox1.Size = new System.Drawing.Size(521, 23);
+ this.textBox1.TabIndex = 4;
+ //
+ // materialCheckbox1
+ //
+ this.materialCheckbox1.AutoSize = true;
+ this.materialCheckbox1.Depth = 0;
+ this.materialCheckbox1.Location = new System.Drawing.Point(0, 0);
+ this.materialCheckbox1.Margin = new System.Windows.Forms.Padding(0);
+ this.materialCheckbox1.MouseLocation = new System.Drawing.Point(-1, -1);
+ this.materialCheckbox1.MouseState = MaterialSkin.MouseState.HOVER;
+ this.materialCheckbox1.Name = "materialCheckbox1";
+ this.materialCheckbox1.ReadOnly = false;
+ this.materialCheckbox1.Ripple = true;
+ this.materialCheckbox1.Size = new System.Drawing.Size(10, 10);
+ this.materialCheckbox1.TabIndex = 0;
+ this.materialCheckbox1.Text = "materialCheckbox1";
+ this.materialCheckbox1.UseVisualStyleBackColor = true;
+ //
+ // materialCheckbox2
+ //
+ this.materialCheckbox2.AutoSize = true;
+ this.materialCheckbox2.Depth = 0;
+ this.materialCheckbox2.Location = new System.Drawing.Point(0, 0);
+ this.materialCheckbox2.Margin = new System.Windows.Forms.Padding(0);
+ this.materialCheckbox2.MouseLocation = new System.Drawing.Point(-1, -1);
+ this.materialCheckbox2.MouseState = MaterialSkin.MouseState.HOVER;
+ this.materialCheckbox2.Name = "materialCheckbox2";
+ this.materialCheckbox2.ReadOnly = false;
+ this.materialCheckbox2.Ripple = true;
+ this.materialCheckbox2.Size = new System.Drawing.Size(10, 10);
+ this.materialCheckbox2.TabIndex = 0;
+ this.materialCheckbox2.Text = "materialCheckbox2";
+ this.materialCheckbox2.UseVisualStyleBackColor = true;
+ //
+ // materialCheckbox3
+ //
+ this.materialCheckbox3.AutoSize = true;
+ this.materialCheckbox3.Depth = 0;
+ this.materialCheckbox3.Location = new System.Drawing.Point(0, 0);
+ this.materialCheckbox3.Margin = new System.Windows.Forms.Padding(0);
+ this.materialCheckbox3.MouseLocation = new System.Drawing.Point(-1, -1);
+ this.materialCheckbox3.MouseState = MaterialSkin.MouseState.HOVER;
+ this.materialCheckbox3.Name = "materialCheckbox3";
+ this.materialCheckbox3.ReadOnly = false;
+ this.materialCheckbox3.Ripple = true;
+ this.materialCheckbox3.Size = new System.Drawing.Size(10, 10);
+ this.materialCheckbox3.TabIndex = 0;
+ this.materialCheckbox3.Text = "materialCheckbox3";
+ this.materialCheckbox3.UseVisualStyleBackColor = true;
+ //
+ // materialCheckbox4
+ //
+ this.materialCheckbox4.AutoSize = true;
+ this.materialCheckbox4.Depth = 0;
+ this.materialCheckbox4.Location = new System.Drawing.Point(0, 0);
+ this.materialCheckbox4.Margin = new System.Windows.Forms.Padding(0);
+ this.materialCheckbox4.MouseLocation = new System.Drawing.Point(-1, -1);
+ this.materialCheckbox4.MouseState = MaterialSkin.MouseState.HOVER;
+ this.materialCheckbox4.Name = "materialCheckbox4";
+ this.materialCheckbox4.ReadOnly = false;
+ this.materialCheckbox4.Ripple = true;
+ this.materialCheckbox4.Size = new System.Drawing.Size(10, 10);
+ this.materialCheckbox4.TabIndex = 0;
+ this.materialCheckbox4.Text = "materialCheckbox4";
+ this.materialCheckbox4.UseVisualStyleBackColor = true;
+ //
+ // materialDrawer1
+ //
+ this.materialDrawer1.AutoHide = false;
+ this.materialDrawer1.AutoShow = false;
+ this.materialDrawer1.BackgroundWithAccent = false;
+ this.materialDrawer1.BaseTabControl = null;
+ this.materialDrawer1.Depth = 0;
+ this.materialDrawer1.HighlightWithAccent = true;
+ this.materialDrawer1.IndicatorWidth = 0;
+ this.materialDrawer1.IsOpen = false;
+ this.materialDrawer1.Location = new System.Drawing.Point(-103, 20);
+ this.materialDrawer1.MouseState = MaterialSkin.MouseState.HOVER;
+ this.materialDrawer1.Name = "materialDrawer1";
+ this.materialDrawer1.ShowIconsWhenHidden = false;
+ this.materialDrawer1.Size = new System.Drawing.Size(103, 548);
+ this.materialDrawer1.TabIndex = 6;
+ this.materialDrawer1.Text = "materialDrawer1";
+ this.materialDrawer1.UseColors = false;
+ //
+ // Form1
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(1162, 794);
+ this.Controls.Add(this.materialDrawer1);
+ this.Controls.Add(this.textBox1);
+ this.Controls.Add(this.listBox2);
+ this.Controls.Add(this.treeView1);
+ this.Controls.Add(this.button1);
+ this.DrawerIsOpen = true;
+ this.Name = "Form1";
+ this.Text = "Form1";
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private Button button1;
+ private TreeView treeView1;
+ private ListBox listBox2;
+ private TextBox textBox1;
+ private MaterialSkin.Controls.MaterialCheckbox materialCheckbox1;
+ private MaterialSkin.Controls.MaterialCheckbox materialCheckbox2;
+ private MaterialSkin.Controls.MaterialCheckbox materialCheckbox3;
+ private MaterialSkin.Controls.MaterialCheckbox materialCheckbox4;
+ private MaterialSkin.Controls.MaterialDrawer materialDrawer1;
+ }
+}
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/Form1.cs b/src/ui/Superlocal.Agile.WinApp/Forms/MainForm.cs
similarity index 52%
rename from Superlocal.Agile.WinApp/Form1.cs
rename to src/ui/Superlocal.Agile.WinApp/Forms/MainForm.cs
index 3146e87..4cc2e7b 100644
--- a/Superlocal.Agile.WinApp/Form1.cs
+++ b/src/ui/Superlocal.Agile.WinApp/Forms/MainForm.cs
@@ -3,12 +3,15 @@ using Superlocal.Agile.WinApp.Records;
using Superlocal.Agile.WinApp.Entities;
using MaterialSkin.Controls;
using MaterialSkin;
+using Microsoft.Extensions.Logging;
+using Superlocal.Agile.Infrastructure.Database;
namespace Superlocal.Agile.WinApp
{
- public partial class Form1 : MaterialForm
+ public partial class MainForm : MaterialForm
{
-
+ private readonly ILogger _logger;
+ private readonly SqliteDbContext _dbContext;
private WindowInfo? _activeWindowsInfo;
private readonly SynchronizationContext? synchronizationContext;
@@ -16,14 +19,16 @@ namespace Superlocal.Agile.WinApp
private List Applications = new List();
private List WindowsInfo = new List();
- public Form1()
+ public MainForm(ILogger logger, SqliteDbContext dbContext)
{
+ _logger = logger;
+ _dbContext = dbContext;
InitializeComponent();
var materialSkinManager = MaterialSkinManager.Instance;
materialSkinManager.AddFormToManage(this);
materialSkinManager.Theme = MaterialSkinManager.Themes.LIGHT;
materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey500, Accent.LightBlue200, TextShade.WHITE);
- materialTabControl1.TabPages.Add(new TabPage());
+
synchronizationContext = SynchronizationContext.Current; //context from UI thread
Task.Run(() =>
{
@@ -35,89 +40,6 @@ namespace Superlocal.Agile.WinApp
});
}
- //private void GetActiveWindow()
- //{
- // int processId;
- // Span Buff = new Span();
-
- // IntPtr handle = PInvoke.User32.GetForegroundWindow();
-
- // PInvoke.User32.GetWindowThreadProcessId(handle, out processId);
- // Process process = Process.GetProcessById(processId);
- // var processName = "";
- // string? processExecutable = "";
- // int programId = 0;
-
- // if (process != null)
- // {
- // processName = process.ProcessName;
- // if (process.MainModule != null)
- // {
- // processExecutable = process.MainModule.FileName;
- // programId = !string.IsNullOrWhiteSpace(processExecutable) ? processExecutable.GetHashCode() : 0;
- // }
- // }
-
- // var hasText = PInvoke.User32.GetWindowText(handle, Buff) > 0;
- // string windowTitle = hasText ? Buff.ToString() : process != null ? process.ProcessName : "Untitled";
-
- // if (handle == IntPtr.Zero || (handle == ActiveWindowHandle && windowTitle == ActiveWindowTitle))
- // return;
-
- // List? timeSheet = null;
-
- // void CloseTimeEntry(string key)
- // {
- // if (key == null || !timeSpent.ContainsKey(key))
- // return;
-
- // timeSheet = timeSpent[key];
- // var v = timeSheet.FirstOrDefault(x => x.End.Equals(DateTime.MaxValue));
- // if (v != null)
- // v.End = DateTime.Now;
- // }
-
- // void AddNewEntry(string key)
- // {
- // ActiveWindowHandle = handle;
- // ActiveWindowTitle = key;
- // if (timeSpent.ContainsKey(key))
- // {
- // timeSheet = timeSpent[key];
- // timeSheet.Add(new TimePeriod(DateTime.Now));
- // timeSpent[ActiveWindowTitle] = timeSheet;
- // }
- // else
- // {
- // timeSheet = new List();
- // timeSheet.Add(new TimePeriod(DateTime.Now));
- // timeSpent.Add(ActiveWindowTitle, timeSheet);
- // }
-
- // }
-
- // CloseTimeEntry(ActiveWindowTitle);
- // AddNewEntry(windowTitle);
-
-
- // synchronizationContext.Post(new SendOrPostCallback(o =>
- // {
-
- // textBox1.Text = o != null ? o.ToString() : "Untitled";
-
- // treeView1.Nodes.Clear();
- // foreach (var entry in timeSpent)
- // {
- // var p = treeView1.Nodes.Add(entry.Key);
- // foreach (var time in entry.Value)
- // {
- // p.Nodes.Add(time.Start.ToString() + " - " + time.End.ToString() + ": " + time.End.Subtract(time.Start).TotalMinutes);
- // }
- // }
- // treeView1.ExpandAll();
- // }), Buff.ToString());
- //}
-
private void WatchActiveWindow()
{
var windowInfo = WindowInfoHelper.GetActiveWindowInfo();
@@ -128,6 +50,8 @@ namespace Superlocal.Agile.WinApp
if (!WindowsInfo.Contains(windowInfo))
WindowsInfo.Add(windowInfo);
+ _logger.LogDebug(JsonConvert.SerializeObject(WindowsInfo));
+
StopRunningWindow();
StartWindowActivation(windowInfo);
diff --git a/Superlocal.Agile.WinApp/Form1.resx b/src/ui/Superlocal.Agile.WinApp/Forms/MainForm.resx
similarity index 100%
rename from Superlocal.Agile.WinApp/Form1.resx
rename to src/ui/Superlocal.Agile.WinApp/Forms/MainForm.resx
diff --git a/src/ui/Superlocal.Agile.WinApp/Models/Settings.cs b/src/ui/Superlocal.Agile.WinApp/Models/Settings.cs
new file mode 100644
index 0000000..c57f678
--- /dev/null
+++ b/src/ui/Superlocal.Agile.WinApp/Models/Settings.cs
@@ -0,0 +1,8 @@
+
+namespace Superlocal.Agile.WinApp.Models
+{
+ internal class Settings
+ {
+ public string DbPath { get; set; }
+ }
+}
diff --git a/src/ui/Superlocal.Agile.WinApp/Program.cs b/src/ui/Superlocal.Agile.WinApp/Program.cs
new file mode 100644
index 0000000..5d45833
--- /dev/null
+++ b/src/ui/Superlocal.Agile.WinApp/Program.cs
@@ -0,0 +1,67 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using Microsoft.Extensions.Logging;
+using Superlocal.Agile.Infrastructure.Database;
+using Superlocal.Agile.WinApp.Models;
+
+namespace Superlocal.Agile.WinApp
+{
+ internal static class Program
+ {
+ #region Properties
+
+ public static Settings Settings { get; private set; }
+
+ #endregion
+
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ ApplicationConfiguration.Initialize();
+
+ IConfiguration config = new ConfigurationBuilder()
+ .AddJsonFile("appsettings.json")
+ .AddEnvironmentVariables()
+ .Build();
+
+ Settings = config.GetRequiredSection("Settings").Get();
+
+ var dbPath = Settings.DbPath;
+ if (string.IsNullOrWhiteSpace(Path.GetDirectoryName(dbPath)))
+ {
+ dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Superlocal.Agile", dbPath);
+ }
+ var connectionString = string.Format("Data Source={0};", dbPath);
+
+ var builder = new HostBuilder()
+ .ConfigureServices((hostContext, services) =>
+ {
+ services.AddSingleton()
+ .AddLogging(configure => configure.AddConsole())
+ .AddDbContext(options => options.UseSqlite(connectionString))
+ ;
+ });
+
+ var host = builder.Build();
+
+ using (var serviceScope = host.Services.CreateScope())
+ {
+ var services = serviceScope.ServiceProvider;
+ try
+ {
+ var mainForm = services.GetRequiredService();
+ Application.Run(mainForm);
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine("Error Occured");
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Superlocal.Agile.WinApp/Records/ProcessInfo.cs b/src/ui/Superlocal.Agile.WinApp/Records/ProcessInfo.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/Records/ProcessInfo.cs
rename to src/ui/Superlocal.Agile.WinApp/Records/ProcessInfo.cs
diff --git a/Superlocal.Agile.WinApp/Records/TimePeriod.cs b/src/ui/Superlocal.Agile.WinApp/Records/TimePeriod.cs
similarity index 100%
rename from Superlocal.Agile.WinApp/Records/TimePeriod.cs
rename to src/ui/Superlocal.Agile.WinApp/Records/TimePeriod.cs
diff --git a/Superlocal.Agile.WinApp/Records/WindowInfo.cs b/src/ui/Superlocal.Agile.WinApp/Records/WindowInfo.cs
similarity index 82%
rename from Superlocal.Agile.WinApp/Records/WindowInfo.cs
rename to src/ui/Superlocal.Agile.WinApp/Records/WindowInfo.cs
index 84dbc80..b11fb6e 100644
--- a/Superlocal.Agile.WinApp/Records/WindowInfo.cs
+++ b/src/ui/Superlocal.Agile.WinApp/Records/WindowInfo.cs
@@ -55,8 +55,17 @@ namespace Superlocal.Agile.WinApp.Records
int processId;
PInvoke.User32.GetWindowThreadProcessId(handle, out processId);
var process = ProcessInfoHelper.GetProcessInfo(processId);
- var s = PInvoke.User32.GetWindowText(handle);
- string windowTitle = !string.IsNullOrWhiteSpace(s) ? s.ToString() : process != null && !string.IsNullOrEmpty(process.ProcessName) ? process.ProcessName : "Untitled";
+ var windowTitle = string.Empty;
+ try
+ {
+ windowTitle = PInvoke.User32.GetWindowText(handle);
+ }
+ catch (Exception)
+ {
+ // TODO add logger
+ }
+
+ windowTitle = !string.IsNullOrWhiteSpace(windowTitle) ? windowTitle.ToString() : process != null && !string.IsNullOrEmpty(process.ProcessName) ? process.ProcessName : "Untitled";
return new WindowInfo(handle, windowTitle, process);
}
diff --git a/src/ui/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj b/src/ui/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj
new file mode 100644
index 0000000..7e2d7a2
--- /dev/null
+++ b/src/ui/Superlocal.Agile.WinApp/Superlocal.Agile.WinApp.csproj
@@ -0,0 +1,50 @@
+
+
+
+ WinExe
+ net6.0-windows
+ enable
+ true
+ enable
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ui/Superlocal.Agile.WinApp/appsettings.json b/src/ui/Superlocal.Agile.WinApp/appsettings.json
new file mode 100644
index 0000000..3b085ba
--- /dev/null
+++ b/src/ui/Superlocal.Agile.WinApp/appsettings.json
@@ -0,0 +1,5 @@
+{
+ "Settings": {
+ "DbPath": "superlocal_agile.db"
+ }
+}
\ No newline at end of file
diff --git a/tests/Superlocal.Agile.Tests/README.md b/tests/Superlocal.Agile.Tests/README.md
new file mode 100644
index 0000000..eb8321e
--- /dev/null
+++ b/tests/Superlocal.Agile.Tests/README.md
@@ -0,0 +1,3 @@
+# References
+
+https://www.lambdatest.com/blog/nunit-vs-xunit-vs-mstest/
\ No newline at end of file
diff --git a/tests/Superlocal.Agile.Tests/Superlocal.Agile.Tests.csproj b/tests/Superlocal.Agile.Tests/Superlocal.Agile.Tests.csproj
new file mode 100644
index 0000000..9f77f5f
--- /dev/null
+++ b/tests/Superlocal.Agile.Tests/Superlocal.Agile.Tests.csproj
@@ -0,0 +1,23 @@
+
+
+
+ net6.0
+ enable
+
+ false
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
diff --git a/tests/Superlocal.Agile.Tests/UnitTest1.cs b/tests/Superlocal.Agile.Tests/UnitTest1.cs
new file mode 100644
index 0000000..07e9b53
--- /dev/null
+++ b/tests/Superlocal.Agile.Tests/UnitTest1.cs
@@ -0,0 +1,13 @@
+using Xunit;
+
+namespace Superlocal.Agile.Tests
+{
+ public class UnitTest1
+ {
+ [Fact]
+ public void Test1()
+ {
+
+ }
+ }
+}
\ No newline at end of file