aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2018-06-23 20:57:43 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2018-06-23 20:57:43 +0300
commit55c624cfa11e1c7998e5d3de0721aeee0814ce33 (patch)
treeadaad581c820aee174d559b6bae1075a78ea793b /Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs
parent9488c1e116ffb61beb7bd581695605a75b2b7de9 (diff)
downloadTango-55c624cfa11e1c7998e5d3de0721aeee0814ce33.tar.gz
Tango-55c624cfa11e1c7998e5d3de0721aeee0814ce33.zip
Implemented TouchAutoComplete!
Refactored VSIX Tango Build Engine to use VS dialogs only. Added SQLite generation to VSIX. Implemented Job customer with auto complete on PPC job view.
Diffstat (limited to 'Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs')
-rw-r--r--Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs83
1 files changed, 56 insertions, 27 deletions
diff --git a/Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs b/Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs
index 9de557117..624124ef2 100644
--- a/Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs
+++ b/Software/Visual_Studio/VSIX/Tango.BuildExtensions/TangoBuildCommand.cs
@@ -41,6 +41,7 @@ namespace Tango.BuildExtensions
private const String pmrGeneratorProjectName = "Tango.PMRGenerator.CLI";
private const String pmrProjectName = "Tango.PMR";
private const String protoCliProjectName = "Tango.Protobuf.CLI";
+ private const String sqliteProjectName = "Tango.SQLiteGenerator.CLI";
#region Redundant
@@ -143,7 +144,7 @@ namespace Tango.BuildExtensions
_application = TestStack.White.Application.Attach(_vsProcess);
_window = _application.GetWindow(vsWindowTitle);
- OpenProgressForm();
+ OpenVSProgress("Tango Build Engine", "Initializing...", true);
try
{
@@ -163,18 +164,22 @@ namespace Tango.BuildExtensions
{
UpdateAndBuildPmrMessages();
}
+ if (buildForm.GenerateSQLite)
+ {
+ GenerateSQLite();
+ }
if (buildForm.BuildSolution)
{
BuildSolution();
}
- SetProgressText("Done!");
+ SetVSProgress("Done!");
Wait(1000);
- CloseProgressForm();
+ CloseVSProgress();
}
catch (Exception ex)
{
- CloseProgressForm();
+ CloseVSProgress();
ShowMessage(ex.Message);
}
});
@@ -191,7 +196,7 @@ namespace Tango.BuildExtensions
var projectItems = project.ProjectItems.OfType<ProjectItem>().ToList();
- SetProgressText("Locating " + edmxModelName + " scheme...");
+ SetVSProgress("Locating " + edmxModelName + " scheme...");
var items = GetProjectItems(project);
@@ -202,20 +207,20 @@ namespace Tango.BuildExtensions
throw new NullReferenceException("Could not locate " + edmxModelName + "!");
}
- SetProgressText("Expanding diagram...");
+ SetVSProgress("Expanding diagram...");
edmx.ExpandView();
- SetProgressText("Opening edmx diagram window...");
+ SetVSProgress("Opening EDMX diagram window...");
Window win = edmx.Open(EnvDTE.Constants.vsViewKindPrimary);
win.Visible = true;
- SetProgressText("Waiting for edmx diagram window...");
+ SetVSProgress("Waiting for EDMX diagram window...");
_window.WaitTill(() => _window.Get(SearchCriteria.ByText(edmxModelName + " [Diagram1]")) != null);
- SetProgressText("Cleaning up edmx scheme...");
+ SetVSProgress("Cleaning up EDMX scheme...");
DTE.MainWindow.Activate();
DTE.ExecuteCommand("Edit.SelectAll");
@@ -225,7 +230,7 @@ namespace Tango.BuildExtensions
_window.WaitWhileBusy();
- SetProgressText("Reinitializing edmx scheme...");
+ SetVSProgress("Reinitializing EDMX scheme...");
var window = WindowInfo.GetWindow(edmxModelName + " [Diagram1]*");
window.SetActive();
@@ -256,13 +261,13 @@ namespace Tango.BuildExtensions
updateWindow.PressKey(KeyboardInput.SpecialKeys.RETURN);
- SetProgressText("Generating edmx scheme...");
+ SetVSProgress("Generating EDMX scheme...");
WaitForWindowClose("Update Wizard");
_window.WaitWhileBusy();
- SetProgressText("Saving changes...");
+ SetVSProgress("Saving changes...");
win.Close(vsSaveChanges.vsSaveChangesYes);
@@ -270,14 +275,14 @@ namespace Tango.BuildExtensions
foreach (var template in edmx.ProjectItems.OfType<ProjectItem>().Where(x => x.Name.EndsWith(".tt")))
{
- SetProgressText("Running custom tool for " + template.Name + "...");
+ SetVSProgress("Running custom tool for " + template.Name + "...");
(template.Object as VSProjectItem).RunCustomTool();
_window.WaitWhileBusy();
}
_window.WaitWhileBusy();
- SetProgressText("Building project " + dalProjectName + "...");
+ SetVSProgress("Building project " + dalProjectName + "...");
DTE.Solution.SolutionBuild.BuildProject("Debug", project.FullName, true);
@@ -296,13 +301,13 @@ namespace Tango.BuildExtensions
throw new NullReferenceException("Could not locate project " + observablesGeneratorProjectName);
}
- SetProgressText("Building project " + observablesGeneratorProjectName + "...");
+ SetVSProgress("Building project " + observablesGeneratorProjectName + "...");
DTE.Solution.SolutionBuild.BuildProject("Debug", project.FullName, true);
DTE.Solution.Properties.Item("StartupProject").Value = observablesGeneratorProjectName;
- SetProgressText("Executing observables generator...");
+ SetVSProgress("Executing observables generator...");
DTE.ExecuteCommand("Debug.Start");
@@ -317,7 +322,7 @@ namespace Tango.BuildExtensions
throw new NullReferenceException("Could not locate project " + observablesProjectName);
}
- SetProgressText("Updating " + observablesProjectName + "...");
+ SetVSProgress("Updating " + observablesProjectName + "...");
foreach (var file in Directory.GetFiles(Path.GetDirectoryName(observablesProject.FileName), "*.cs", SearchOption.AllDirectories))
{
@@ -325,13 +330,13 @@ namespace Tango.BuildExtensions
if (parentFolderName != "Debug" && parentFolderName != "Release" && parentFolderName != "obj")
{
- SetProgressText("Adding/Updating file " + Path.GetFileName(file) + "...");
+ SetVSProgress("Adding/Updating file " + Path.GetFileName(file) + "...");
observablesProject.ProjectItems.AddFromFile(file);
Wait(10);
}
}
- SetProgressText("Building project " + observablesProjectName + "...");
+ SetVSProgress("Building project " + observablesProjectName + "...");
DTE.Solution.SolutionBuild.BuildProject("Debug", observablesProject.FullName, true);
@@ -350,13 +355,13 @@ namespace Tango.BuildExtensions
throw new NullReferenceException("Could not locate project " + pmrGeneratorProjectName);
}
- SetProgressText("Building project " + pmrGeneratorProjectName + "...");
+ SetVSProgress("Building project " + pmrGeneratorProjectName + "...");
DTE.Solution.SolutionBuild.BuildProject("Debug", project.FullName, true);
DTE.Solution.Properties.Item("StartupProject").Value = pmrGeneratorProjectName;
- SetProgressText("Executing PMR generator...");
+ SetVSProgress("Executing PMR generator...");
DTE.ExecuteCommand("Debug.Start");
@@ -374,7 +379,7 @@ namespace Tango.BuildExtensions
throw new NullReferenceException("Could not locate project " + protoCliProjectName);
}
- SetProgressText("Building project " + protoCliProjectName + "...");
+ SetVSProgress("Building project " + protoCliProjectName + "...");
DTE.Solution.SolutionBuild.BuildProject("Debug", protoProject.FullName, true);
@@ -385,7 +390,7 @@ namespace Tango.BuildExtensions
DTE.Solution.Properties.Item("StartupProject").Value = protoCliProjectName;
- SetProgressText("Executing Tango Proto Compiler...");
+ SetVSProgress("Executing Tango Proto Compiler...");
DTE.ExecuteCommand("Debug.Start");
@@ -401,7 +406,7 @@ namespace Tango.BuildExtensions
throw new NullReferenceException("Could not locate project " + pmrProjectName);
}
- SetProgressText("Updating " + pmrProjectName + "...");
+ SetVSProgress("Updating " + pmrProjectName + "...");
foreach (var file in Directory.GetFiles(Path.GetDirectoryName(project.FileName), "*.cs", SearchOption.AllDirectories))
{
@@ -409,13 +414,13 @@ namespace Tango.BuildExtensions
if (parentFolderName != "Debug" && parentFolderName != "Release" && parentFolderName != "obj")
{
- SetProgressText("Adding/Updating file " + Path.GetFileName(file) + "...");
+ SetVSProgress("Adding/Updating file " + Path.GetFileName(file) + "...");
project.ProjectItems.AddFromFile(file);
Wait(10);
}
}
- SetProgressText("Building project " + pmrProjectName + "...");
+ SetVSProgress("Building project " + pmrProjectName + "...");
DTE.Solution.SolutionBuild.BuildProject("Debug", project.FullName, true);
@@ -425,9 +430,33 @@ namespace Tango.BuildExtensions
}
}
+ private void GenerateSQLite()
+ {
+ var project = _projects.SingleOrDefault(x => x.Name == sqliteProjectName);
+
+ if (project == null)
+ {
+ throw new NullReferenceException("Could not locate project " + sqliteProjectName);
+ }
+
+ SetVSProgress("Building project " + sqliteProjectName + "...");
+
+ DTE.Solution.SolutionBuild.BuildProject("Debug", project.FullName, true);
+
+ DTE.Solution.Properties.Item("StartupProject").Value = sqliteProjectName;
+
+ SetVSProgress("Executing SQLite generator...");
+
+ DTE.ExecuteCommand("Debug.Start");
+
+ WaitForWindowOpen("Tango SQLite Generator");
+
+ WaitForWindowClose("Tango SQLite Generator");
+ }
+
private void BuildSolution()
{
- SetProgressText("Building solution...");
+ SetVSProgress("Building solution...");
DTE.Solution.SolutionBuild.Build(true);
if (DTE.Solution.SolutionBuild.LastBuildInfo > 0)