aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2017-12-19 18:52:45 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2017-12-19 18:52:45 +0200
commitd9b0b7617864600f690a8202d06b2fb2a64306db (patch)
treeeca093060ff23172158c90f2c2c1b0d59a42bf6f /Software
parentcc3bf81fabd005fa74c2b9663589892480f1a6bb (diff)
downloadTango-d9b0b7617864600f690a8202d06b2fb2a64306db.tar.gz
Tango-d9b0b7617864600f690a8202d06b2fb2a64306db.zip
Started working on 'Synchronization' - Machine Studio module.
Diffstat (limited to 'Software')
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/Entity.java9
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/ActionTypes.java22
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Actions.java15
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/EventTypes.java22
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Events.java15
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/LiquidTypes.java (renamed from Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Liquids.java)4
-rw-r--r--Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/DAL_TST.java21
-rw-r--r--Software/DB/Tango.dbbin557056 -> 557056 bytes
-rw-r--r--Software/DB/Tango.mdfbin8388608 -> 8388608 bytes
-rw-r--r--Software/DB/Tango_log.ldfbin8388608 -> 8388608 bytes
-rw-r--r--Software/Graphics/Machine Studio Modules/synchronization.jpgbin0 -> 41826 bytes
-rw-r--r--Software/Graphics/android-phone-color.pngbin0 -> 3254 bytes
-rw-r--r--Software/Graphics/arrow_right.pngbin0 -> 1094 bytes
-rw-r--r--Software/Graphics/remote-db.pngbin0 -> 159697 bytes
-rw-r--r--Software/Graphics/sqlite.pngbin0 -> 123916 bytes
-rw-r--r--Software/Graphics/synch_big.pngbin0 -> 83487 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ConfigurationsViewVM.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/android-phone-color.pngbin0 -> 3254 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/arrow_right.pngbin0 -> 1094 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/remote-db.pngbin0 -> 159697 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/sqlite.pngbin0 -> 123916 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synch_big.pngbin0 -> 83487 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synchronization.jpgbin0 -> 41826 bytes
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs15
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs17
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs18
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.Designer.cs62
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.resx117
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.Designer.cs30
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.settings7
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs46
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj184
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml12
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModelLocator.cs45
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs13
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml150
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml40
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml.cs31
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml69
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml12
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml.cs28
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/packages.config9
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml65
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj10
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/packages.config1
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj4
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_DISPLAY_PANEL_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_FIRMWARE_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_OS_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/CARTRIDGE_TYPES.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/DISPENSER_TYPES.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_FIRMWARE_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_SOFTWARE_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/EVENT_TYPES.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/FIBER_SYNTHS.cs (renamed from Software/Visual_Studio/Tango.DAL.Local/DB/FIBER_SYNTHESISES.cs)2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/HARDWARE_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/LIQUID_TYPES.cs1
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx86
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram12
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/MACHINE_VERSIONS.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/DB/RML.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Enumerations/ActionTypes.cs13
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Enumerations/EventTypes.cs13
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/Enumerations/Permissions.cs6
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ObservableEntityExtensions.cs2
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/IObservableEntity.cs5
-rw-r--r--Software/Visual_Studio/Tango.DAL.Observables/ObservableEntity.cs21
-rw-r--r--Software/Visual_Studio/Tango.Synchronization/Local/LocalDBSynchronizer.cs8
-rw-r--r--Software/Visual_Studio/Tango.Synchronization/Local/SqliteDataBase.cs10
-rw-r--r--Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBSynchronizer.cs18
-rw-r--r--Software/Visual_Studio/Tango.UnitTesting/DAL_TST.cs20
-rw-r--r--Software/Visual_Studio/Tango.UnitTesting/Synchronization_TST.cs18
-rw-r--r--Software/Visual_Studio/Tango.sln17
83 files changed, 1413 insertions, 80 deletions
diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/Entity.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/Entity.java
index fd41d9230..6cf88e85e 100644
--- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/Entity.java
+++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/Entity.java
@@ -9,6 +9,8 @@ import org.joda.time.DateTimeZone;
import java.util.UUID;
+import io.reactivex.Single;
+
/**
* Represents a DAL base entity.
@@ -117,4 +119,11 @@ public class Entity extends BaseRXModel
setGuid(UUID.randomUUID().toString());
setLast_updated(DateTime.now(DateTimeZone.UTC));
}
+
+ @Override
+ public Single<Boolean> save()
+ {
+ setLast_updated(DateTime.now(DateTimeZone.UTC));
+ return super.save();
+ }
}
diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/ActionTypes.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/ActionTypes.java
new file mode 100644
index 000000000..8233a0b88
--- /dev/null
+++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/ActionTypes.java
@@ -0,0 +1,22 @@
+package com.twine.tango.dal.enumerations;
+
+import com.twine.tango.core.DescriptionAnnotation;
+
+public enum ActionTypes
+{
+
+ @DescriptionAnnotation(description = "Some description")
+ Action1(1),
+
+ @DescriptionAnnotation(description = "Some action 2 description")
+ Action2(2),
+
+ ;
+
+ private int value;
+
+ ActionTypes(int value)
+ {
+ this.value = value;
+ }
+}
diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Actions.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Actions.java
deleted file mode 100644
index 55eebeb78..000000000
--- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Actions.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.twine.tango.dal.enumerations;
-
-import com.twine.tango.core.DescriptionAnnotation;
-
-public enum Actions
-{
- ;
-
- private int value;
-
- Actions(int value)
- {
- this.value = value;
- }
-}
diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/EventTypes.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/EventTypes.java
new file mode 100644
index 000000000..06ecf3f4f
--- /dev/null
+++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/EventTypes.java
@@ -0,0 +1,22 @@
+package com.twine.tango.dal.enumerations;
+
+import com.twine.tango.core.DescriptionAnnotation;
+
+public enum EventTypes
+{
+
+ @DescriptionAnnotation(description = "Some event description")
+ Event1(1),
+
+ @DescriptionAnnotation(description = "Some event 2 description")
+ Event2(2),
+
+ ;
+
+ private int value;
+
+ EventTypes(int value)
+ {
+ this.value = value;
+ }
+}
diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Events.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Events.java
deleted file mode 100644
index bfa2e1758..000000000
--- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Events.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.twine.tango.dal.enumerations;
-
-import com.twine.tango.core.DescriptionAnnotation;
-
-public enum Events
-{
- ;
-
- private int value;
-
- Events(int value)
- {
- this.value = value;
- }
-}
diff --git a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Liquids.java b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/LiquidTypes.java
index ca82d56ad..d2d480167 100644
--- a/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/Liquids.java
+++ b/Software/Android_Studio/Tango.DAL/src/main/java/com/twine/tango/dal/enumerations/LiquidTypes.java
@@ -2,7 +2,7 @@ package com.twine.tango.dal.enumerations;
import com.twine.tango.core.DescriptionAnnotation;
-public enum Liquids
+public enum LiquidTypes
{
@DescriptionAnnotation(description = "Cyan")
@@ -15,7 +15,7 @@ public enum Liquids
private int value;
- Liquids(int value)
+ LiquidTypes(int value)
{
this.value = value;
}
diff --git a/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/DAL_TST.java b/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/DAL_TST.java
new file mode 100644
index 000000000..f04070d6a
--- /dev/null
+++ b/Software/Android_Studio/Tango.UnitTesting/src/androidTest/java/com/twine/tango/unittesting/DAL_TST.java
@@ -0,0 +1,21 @@
+package com.twine.tango.unittesting;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.runner.RunWith;
+
+/**
+ * Created by Roy on 12/19/2017.
+ */
+
+@RunWith(AndroidJUnit4.class)
+public class DAL_TST
+{
+ public void perform_basic_dal_test()
+ {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getTargetContext();
+ }
+}
diff --git a/Software/DB/Tango.db b/Software/DB/Tango.db
index 2a238547c..a0d317b86 100644
--- a/Software/DB/Tango.db
+++ b/Software/DB/Tango.db
Binary files differ
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf
index 6438c34ad..11a540748 100644
--- a/Software/DB/Tango.mdf
+++ b/Software/DB/Tango.mdf
Binary files differ
diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf
index a3a92fbf2..5687558f7 100644
--- a/Software/DB/Tango_log.ldf
+++ b/Software/DB/Tango_log.ldf
Binary files differ
diff --git a/Software/Graphics/Machine Studio Modules/synchronization.jpg b/Software/Graphics/Machine Studio Modules/synchronization.jpg
new file mode 100644
index 000000000..801bbce48
--- /dev/null
+++ b/Software/Graphics/Machine Studio Modules/synchronization.jpg
Binary files differ
diff --git a/Software/Graphics/android-phone-color.png b/Software/Graphics/android-phone-color.png
new file mode 100644
index 000000000..46453bf83
--- /dev/null
+++ b/Software/Graphics/android-phone-color.png
Binary files differ
diff --git a/Software/Graphics/arrow_right.png b/Software/Graphics/arrow_right.png
new file mode 100644
index 000000000..5b7f0736b
--- /dev/null
+++ b/Software/Graphics/arrow_right.png
Binary files differ
diff --git a/Software/Graphics/remote-db.png b/Software/Graphics/remote-db.png
new file mode 100644
index 000000000..844695629
--- /dev/null
+++ b/Software/Graphics/remote-db.png
Binary files differ
diff --git a/Software/Graphics/sqlite.png b/Software/Graphics/sqlite.png
new file mode 100644
index 000000000..46cecd740
--- /dev/null
+++ b/Software/Graphics/sqlite.png
Binary files differ
diff --git a/Software/Graphics/synch_big.png b/Software/Graphics/synch_big.png
new file mode 100644
index 000000000..ff6476f44
--- /dev/null
+++ b/Software/Graphics/synch_big.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ConfigurationsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ConfigurationsViewVM.cs
index 617faab31..bdec4f91b 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ConfigurationsViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ConfigurationsViewVM.cs
@@ -18,7 +18,7 @@ namespace Tango.MachineStudio.DB.ViewModels
protected override void InitializeEntity(Configuration entity)
{
base.InitializeEntity(entity);
- entity.CreationDate = DateTime.Now;
+ entity.CreationDate = DateTime.UtcNow;
}
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs
index b6d77748e..89759309b 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs
@@ -167,8 +167,7 @@ namespace Tango.MachineStudio.DB.ViewModels
try
{
- SelectedEntity.Deleted = true;
- await SelectedEntity.SaveAsync();
+ await SelectedEntity.SoftDeleteAsync();
}
catch (Exception ex)
{
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs
index fbec464bd..2349941fe 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs
@@ -20,7 +20,7 @@ namespace Tango.MachineStudio.DB.ViewModels
protected override void InitializeEntity(Machine entity)
{
base.InitializeEntity(entity);
- entity.ProductionDate = DateTime.Now;
+ entity.ProductionDate = DateTime.UtcNow;
}
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/android-phone-color.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/android-phone-color.png
new file mode 100644
index 000000000..46453bf83
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/android-phone-color.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/arrow_right.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/arrow_right.png
new file mode 100644
index 000000000..5b7f0736b
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/arrow_right.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/remote-db.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/remote-db.png
new file mode 100644
index 000000000..844695629
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/remote-db.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/sqlite.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/sqlite.png
new file mode 100644
index 000000000..46cecd740
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/sqlite.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synch_big.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synch_big.png
new file mode 100644
index 000000000..ff6476f44
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synch_big.png
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synchronization.jpg b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synchronization.jpg
new file mode 100644
index 000000000..801bbce48
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Images/synchronization.jpg
Binary files differ
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs
new file mode 100644
index 000000000..8d38acb7c
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/NavigationView.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.MachineStudio.Synchronization.Navigation
+{
+ public enum NavigationView
+ {
+ MenuView,
+ LocalSynchronizationView,
+ RemoteSynchronizationView,
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs
new file mode 100644
index 000000000..847fa2456
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Navigation/SyncNavigationManager.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.MachineStudio.Synchronization.Views;
+
+namespace Tango.MachineStudio.Synchronization.Navigation
+{
+ public class SyncNavigationManager
+ {
+ public void NavigateTo(NavigationView view)
+ {
+ MainView.Instance.TransitionControl.AutoNavigate(view.ToString());
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000..d0a85a97c
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs
@@ -0,0 +1,18 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+[assembly: AssemblyTitle("Tango - Machine Studio Synchronization Module")]
+
+[assembly: ComVisible(false)]
+
+[assembly:ThemeInfo(
+ ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
+ //(used if a resource is not found in the page,
+ // or application resource dictionaries)
+ ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
+ //(used if a resource is not found in the page,
+ // app, or any theme specific resource dictionaries)
+)]
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.Designer.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.Designer.cs
new file mode 100644
index 000000000..81d350bfd
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.Designer.cs
@@ -0,0 +1,62 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// 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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.MachineStudio.Synchronization.Properties {
+
+
+ /// <summary>
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// </summary>
+ // 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", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ /// <summary>
+ /// Returns the cached ResourceManager instance used by this class.
+ /// </summary>
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if ((resourceMan == null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.MachineStudio.Synchronization.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ /// <summary>
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ /// </summary>
+ [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/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.resx b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.resx
new file mode 100644
index 000000000..af7dbebba
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Resources.resx
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.Designer.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.Designer.cs
new file mode 100644
index 000000000..2c61b78ac
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+// 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.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Tango.MachineStudio.Synchronization.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.settings b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.settings
new file mode 100644
index 000000000..033d7a5e9
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/Settings.settings
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+ <Profiles>
+ <Profile Name="(Default)" />
+ </Profiles>
+ <Settings />
+</SettingsFile> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs
new file mode 100644
index 000000000..039b9faf6
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/SynchronizationModule.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Media.Imaging;
+using Tango.DAL.Observables;
+using Tango.MachineStudio.Common;
+using Tango.MachineStudio.Synchronization.Views;
+using Tango.SharedUI.Helpers;
+
+namespace Tango.MachineStudio.Synchronization
+{
+ public class SynchronizationModule : IStudioModule
+ {
+ private bool _isInitialized;
+
+ public string Name => "Synchronization";
+
+ public string Description => "Perform local to local or remote to local database synchronization.";
+
+ public BitmapSource Image => ResourceHelper.GetImageFromResources("Images/synchronization.jpg");
+
+ public FrameworkElement MainView => new MainView();
+
+ public bool IsInitialized => _isInitialized;
+
+ public Permissions Permission => Permissions.RunSynchronizationModule;
+
+ public void Dispose()
+ {
+ //Dispose...
+ }
+
+ public void Initialize()
+ {
+ if (!_isInitialized)
+ {
+ //Initialize..
+
+ _isInitialized = true;
+ }
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj
new file mode 100644
index 000000000..53a0476e5
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Tango.MachineStudio.Synchronization.csproj
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}</ProjectGuid>
+ <OutputType>library</OutputType>
+ <RootNamespace>Tango.MachineStudio.Synchronization</RootNamespace>
+ <AssemblyName>Tango.MachineStudio.Synchronization</AssemblyName>
+ <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\..\Build\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="FontAwesome.WPF, Version=4.7.0.37774, Culture=neutral, PublicKeyToken=0758b07a11a4f466, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\FontAwesome.WPF.4.7.0.9\lib\net40\FontAwesome.WPF.dll</HintPath>
+ </Reference>
+ <Reference Include="GalaSoft.MvvmLight, Version=5.3.0.19026, Culture=neutral, PublicKeyToken=e7570ab207bcb616, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.dll</HintPath>
+ </Reference>
+ <Reference Include="GalaSoft.MvvmLight.Extras, Version=5.3.0.19032, Culture=neutral, PublicKeyToken=669f0b5e8f868abf, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.Extras.dll</HintPath>
+ </Reference>
+ <Reference Include="GalaSoft.MvvmLight.Platform, Version=5.3.0.19032, Culture=neutral, PublicKeyToken=5f873c45e98af8a1, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.Platform.dll</HintPath>
+ </Reference>
+ <Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
+ </Reference>
+ <Reference Include="MaterialDesignColors, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MaterialDesignColors.1.1.2\lib\net45\MaterialDesignColors.dll</HintPath>
+ </Reference>
+ <Reference Include="MaterialDesignThemes.Wpf, Version=2.3.1.953, Culture=neutral, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
+ </Reference>
+ <Reference Include="Microsoft.Practices.ServiceLocation, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+ <HintPath>..\..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Xml" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="System.Net.Http" />
+ <Reference Include="System.Xaml">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="WindowsBase" />
+ <Reference Include="PresentationCore" />
+ <Reference Include="PresentationFramework" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Navigation\NavigationView.cs" />
+ <Compile Include="Navigation\SyncNavigationManager.cs" />
+ <Compile Include="ViewModelLocator.cs" />
+ <Compile Include="ViewModels\MainViewVM.cs" />
+ <Compile Include="ViewModels\MenuViewVM.cs" />
+ <Compile Include="Views\RemoteSynchronizationView.xaml.cs">
+ <DependentUpon>RemoteSynchronizationView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\LocalSynchronizationView.xaml.cs">
+ <DependentUpon>LocalSynchronizationView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\MainView.xaml.cs">
+ <DependentUpon>MainView.xaml</DependentUpon>
+ </Compile>
+ <Compile Include="Views\MenuView.xaml.cs">
+ <DependentUpon>MenuView.xaml</DependentUpon>
+ </Compile>
+ <Page Include="UserControl1.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Compile Include="..\..\..\Versioning\GlobalVersionInfo.cs">
+ <Link>GlobalVersionInfo.cs</Link>
+ </Compile>
+ <Compile Include="SynchronizationModule.cs" />
+ <Compile Include="UserControl1.xaml.cs">
+ <DependentUpon>UserControl1.xaml</DependentUpon>
+ <SubType>Code</SubType>
+ </Compile>
+ <Page Include="Views\RemoteSynchronizationView.xaml">
+ <Generator>MSBuild:Compile</Generator>
+ <SubType>Designer</SubType>
+ </Page>
+ <Page Include="Views\LocalSynchronizationView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="Views\MainView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ <Page Include="Views\MenuView.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Properties\AssemblyInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="Properties\Resources.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>Resources.resx</DependentUpon>
+ </Compile>
+ <Compile Include="Properties\Settings.Designer.cs">
+ <AutoGen>True</AutoGen>
+ <DependentUpon>Settings.settings</DependentUpon>
+ <DesignTimeSharedInput>True</DesignTimeSharedInput>
+ </Compile>
+ <EmbeddedResource Include="Properties\Resources.resx">
+ <Generator>ResXFileCodeGenerator</Generator>
+ <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+ </EmbeddedResource>
+ <None Include="packages.config" />
+ <None Include="Properties\Settings.settings">
+ <Generator>SettingsSingleFileGenerator</Generator>
+ <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\..\Tango.Core\Tango.Core.csproj">
+ <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
+ <Name>Tango.Core</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.DAL.Observables\Tango.DAL.Observables.csproj">
+ <Project>{0ecd6da8-7aa6-48d9-8b65-279d176ad9af}</Project>
+ <Name>Tango.DAL.Observables</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.SharedUI\Tango.SharedUI.csproj">
+ <Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
+ <Name>Tango.SharedUI</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\..\Tango.Synchronization\Tango.Synchronization.csproj">
+ <Project>{7ada4e86-cad7-4968-a210-3a8a9e5153ab}</Project>
+ <Name>Tango.Synchronization</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
+ <Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
+ <Name>Tango.MachineStudio.Common</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\synchronization.jpg" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\android-phone-color.png" />
+ <Resource Include="Images\arrow_right.png" />
+ <Resource Include="Images\remote-db.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\sqlite.png" />
+ </ItemGroup>
+ <ItemGroup>
+ <Resource Include="Images\synch_big.png" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml
new file mode 100644
index 000000000..50afe7e4e
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml
@@ -0,0 +1,12 @@
+<UserControl x:Class="Tango.MachineStudio.Synchronization.UserControl1"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.MachineStudio.Synchronization"
+ mc:Ignorable="d"
+ d:DesignHeight="300" d:DesignWidth="300">
+ <Grid>
+
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml.cs
new file mode 100644
index 000000000..16186b6bd
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/UserControl1.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.MachineStudio.Synchronization
+{
+ /// <summary>
+ /// Interaction logic for UserControl1.xaml
+ /// </summary>
+ public partial class UserControl1 : UserControl
+ {
+ public UserControl1()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModelLocator.cs
new file mode 100644
index 000000000..30162e824
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModelLocator.cs
@@ -0,0 +1,45 @@
+using GalaSoft.MvvmLight;
+using GalaSoft.MvvmLight.Ioc;
+using Microsoft.Practices.ServiceLocation;
+using Tango.MachineStudio.Synchronization.Navigation;
+using Tango.MachineStudio.Synchronization.ViewModels;
+
+namespace Tango.MachineStudio.Synchronization
+{
+ /// <summary>
+ /// This class contains static references to all the view models in the
+ /// application and provides an entry point for the bindings.
+ /// </summary>
+ public static class ViewModelLocator
+ {
+ /// <summary>
+ /// Initializes a new instance of the ViewModelLocator class.
+ /// </summary>
+ static ViewModelLocator()
+ {
+ ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
+ SimpleIoc.Default.Register<MainViewVM>();
+ SimpleIoc.Default.Register<MenuViewVM>();
+
+ SimpleIoc.Default.Unregister<SyncNavigationManager>();
+
+ SimpleIoc.Default.Register<SyncNavigationManager, SyncNavigationManager>();
+ }
+
+ public static MainViewVM MainViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<MainViewVM>();
+ }
+ }
+
+ public static MenuViewVM MenuViewVM
+ {
+ get
+ {
+ return ServiceLocator.Current.GetInstance<MenuViewVM>();
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs
new file mode 100644
index 000000000..61bf6e20c
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MainViewVM.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.SharedUI;
+
+namespace Tango.MachineStudio.Synchronization.ViewModels
+{
+ public class MainViewVM : ViewModel
+ {
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs
new file mode 100644
index 000000000..8eb68a383
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/MenuViewVM.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Core.Commands;
+using Tango.MachineStudio.Synchronization.Navigation;
+using Tango.SharedUI;
+
+namespace Tango.MachineStudio.Synchronization.ViewModels
+{
+ public class MenuViewVM : ViewModel
+ {
+ private SyncNavigationManager _navigation;
+
+ public MenuViewVM(SyncNavigationManager navigation)
+ {
+ _navigation = navigation;
+
+ StartLocalSyncCommand = new RelayCommand(() => { _navigation.NavigateTo(NavigationView.LocalSynchronizationView); });
+ StartRemoteSyncCommand = new RelayCommand(() => { _navigation.NavigateTo(NavigationView.RemoteSynchronizationView); });
+ }
+
+ public RelayCommand StartLocalSyncCommand { get; set; }
+
+ public RelayCommand StartRemoteSyncCommand { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml
new file mode 100644
index 000000000..ded60fbb7
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml
@@ -0,0 +1,150 @@
+<UserControl x:Class="Tango.MachineStudio.Synchronization.Views.LocalSynchronizationView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
+ xmlns:local="clr-namespace:Tango.MachineStudio.Synchronization.Views"
+ xmlns:fa="http://schemas.fontawesome.io/icons/"
+ mc:Ignorable="d"
+ d:DesignHeight="720" d:DesignWidth="1280">
+
+ <UserControl.Resources>
+ <VisualBrush x:Key="badgeBackground">
+ <VisualBrush.Visual>
+ <Border>
+ <Path Stretch="Fill" RenderTransformOrigin="0.5,0.5">
+ <Path.RenderTransform>
+ <ScaleTransform ScaleX="-1"></ScaleTransform>
+ </Path.RenderTransform>
+ <Path.Fill>
+ <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
+ <GradientStop Color="#EEEEEE" Offset="0.4" />
+ <GradientStop Color="White" Offset="1"/>
+ </LinearGradientBrush>
+ </Path.Fill>
+ <Path.Data>
+ <PathGeometry Figures="M 53.868 43.913 H 19.511 c -0.444 0 -0.875 -0.151 -1.221 -0.428 L 0.734 29.439 c -0.978 -0.783 -0.978 -2.271 0 -3.053 L 18.29 12.341 c 0.347 -0.277 0.777 -0.428 1.221 -0.428 h 34.356 c 1.081 0 1.958 0.877 1.958 1.958 v 28.084 c 0 1.081 -0.876 1.958 -1.957 1.958 z" FillRule="NonZero"/>
+ </Path.Data>
+ </Path>
+ </Border>
+ </VisualBrush.Visual>
+ </VisualBrush>
+ </UserControl.Resources>
+
+ <Grid>
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="600"/>
+ <ColumnDefinition Width="1*"/>
+ </Grid.ColumnDefinitions>
+ <Grid Margin="20">
+ <GroupBox Header="Compare">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="57*"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition MaxWidth="250" />
+ <ColumnDefinition/>
+ </Grid.ColumnDefinitions>
+
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition/>
+ <RowDefinition/>
+ </Grid.RowDefinitions>
+
+ <StackPanel HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20 0 0 0">
+ <Image Source="../Images/sqlite.png" Width="100" Margin="10" Opacity="0.8" HorizontalAlignment="Left" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock Background="{StaticResource badgeBackground}" Padding="5" Width="200" FontSize="11" HorizontalAlignment="Left">Master DataBase</TextBlock>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <TextBox IsReadOnly="True" Width="130" BorderBrush="#4E4E4E" Text="{Binding MasterDBName}"></TextBox>
+ <Button Margin="5 0 0 0" Cursor="Hand" VerticalAlignment="Center" Style="{DynamicResource MetroCircleButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding BrowseMasterDBCommand}">
+ <fa:ImageAwesome Icon="FolderOpen" Width="24" Foreground="Gray"></fa:ImageAwesome>
+ </Button>
+ </StackPanel>
+ </StackPanel>
+
+ <StackPanel HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Row="1" Margin="20 0 0 0">
+ <Image Source="../Images/sqlite.png" Width="80" Margin="10" Opacity="0.8" HorizontalAlignment="Left" RenderOptions.BitmapScalingMode="Fant"></Image>
+ <TextBlock Background="{StaticResource badgeBackground}" Padding="5" Width="200" FontSize="11" HorizontalAlignment="Left">Slave DataBase</TextBlock>
+ <StackPanel Orientation="Horizontal" Margin="0 5 0 0">
+ <TextBox IsReadOnly="True" Width="130" BorderBrush="#4E4E4E" Text="{Binding SlaveDBName}"></TextBox>
+ <Button Margin="5 0 0 0" Cursor="Hand" VerticalAlignment="Center" Style="{DynamicResource MetroCircleButtonStyle}" mahapps:ButtonHelper.PreserveTextCase="True" BorderThickness="0" Command="{Binding BrowseSlaveDBCommand}">
+ <fa:ImageAwesome Icon="FolderOpen" Width="24" Foreground="Gray"></fa:ImageAwesome>
+ </Button>
+ </StackPanel>
+ </StackPanel>
+ </Grid>
+
+ <Button Margin="20 10" Grid.Row="1" Width="160" Height="40" HorizontalAlignment="Left" Command="{Binding CompareCommand}">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">COMPARE</TextBlock>
+ <fa:ImageAwesome Icon="LongArrowRight" VerticalAlignment="Center" Foreground="{Binding RelativeSource={RelativeSource AncestorType=Button},Path=Foreground}" Width="16"></fa:ImageAwesome>
+ </StackPanel>
+ </Button>
+
+ <Grid Grid.Column="1" Grid.RowSpan="2">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="20"/>
+ <RowDefinition Height="205*"/>
+ </Grid.RowDefinitions>
+ <TextBlock Margin="10 5 0 0">Differences</TextBlock>
+ <ListBox Margin="10" Background="#F1F1F1" Grid.Row="1" ItemsSource="{Binding Differences}" SelectedItem="{Binding SelectedDifference,Mode=TwoWay}">
+ <ListBox.ItemTemplate>
+ <DataTemplate>
+ <Border Padding="10">
+ <StackPanel Orientation="Horizontal">
+ <fa:ImageAwesome Icon="Cog" Width="20" Height="20" Foreground="Gray"></fa:ImageAwesome>
+ <TextBlock VerticalAlignment="Center" Margin="10 0 0 0" Text="{Binding Description}"></TextBlock>
+ </StackPanel>
+ </Border>
+ </DataTemplate>
+ </ListBox.ItemTemplate>
+ </ListBox>
+ </Grid>
+ </Grid>
+ </GroupBox>
+ </Grid>
+
+ <Grid Grid.Column="1" Margin="20">
+ <GroupBox Header="Synchronize">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="20"/>
+ <RowDefinition Height="71*"/>
+ </Grid.RowDefinitions>
+ <TextBlock Margin="10 0 0 0" VerticalAlignment="Bottom">SQL Command</TextBlock>
+ <TextBox Margin="10" Foreground="Gray" FontSize="11" Text="{Binding SelectedDifference.Command,Mode=OneWay}" BorderThickness="0" IsReadOnly="True" Background="#F1F1F1" Padding="5" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" AcceptsReturn="True" Grid.Row="1"></TextBox>
+ </Grid>
+
+ <Grid Grid.Row="1">
+ <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
+ <Button Margin="10 10" Grid.Row="1" Width="160" Height="40" HorizontalAlignment="Right" Command="{Binding CommitCommand}">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">COMMIT</TextBlock>
+ <fa:ImageAwesome Icon="Bolt" VerticalAlignment="Center" Foreground="{Binding RelativeSource={RelativeSource AncestorType=Button},Path=Foreground}" Width="16"></fa:ImageAwesome>
+ </StackPanel>
+ </Button>
+ <Button Margin="10 10" Grid.Row="1" Width="160" Height="40" HorizontalAlignment="Right" Command="{Binding CommitAllCommand}">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock VerticalAlignment="Center" Margin="10 0 10 0">COMMIT ALL</TextBlock>
+ <fa:ImageAwesome Icon="SortAmountAsc" VerticalAlignment="Center" Foreground="{Binding RelativeSource={RelativeSource AncestorType=Button},Path=Foreground}" Width="16"></fa:ImageAwesome>
+ </StackPanel>
+ </Button>
+ </StackPanel>
+ </Grid>
+ </Grid>
+ </GroupBox>
+ </Grid>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml.cs
new file mode 100644
index 000000000..f6c70143d
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/LocalSynchronizationView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.MachineStudio.Synchronization.Views
+{
+ /// <summary>
+ /// Interaction logic for LocalSynchronizationView.xaml
+ /// </summary>
+ public partial class LocalSynchronizationView : UserControl
+ {
+ public LocalSynchronizationView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml
new file mode 100644
index 000000000..53bcfdb1e
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml
@@ -0,0 +1,40 @@
+<UserControl x:Class="Tango.MachineStudio.Synchronization.Views.MainView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.MachineStudio.Synchronization.Views"
+ xmlns:global="clr-namespace:Tango.MachineStudio.Synchronization"
+ xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI"
+ mc:Ignorable="d"
+ d:DesignHeight="720" d:DesignWidth="1280" Background="White" DataContext="{x:Static global:ViewModelLocator.MainViewVM}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="1*"/>
+ <RowDefinition Height="200"/>
+ </Grid.RowDefinitions>
+
+ <Image Source="../Images/synch_big.png" Opacity="0.2" Margin="-100"></Image>
+
+ <controls:MultiTransitionControl x:Name="TransitionControl" x:FieldModifier="public" AlwaysFade="True" TransitionType="Zoom">
+ <controls:MultiTransitionControl.Controls>
+ <ContentControl Tag="MenuView">
+ <local:MenuView></local:MenuView>
+ </ContentControl>
+ <ContentControl Tag="LocalSynchronizationView">
+ <local:LocalSynchronizationView></local:LocalSynchronizationView>
+ </ContentControl>
+ <ContentControl Tag="RemoteSynchronizationView">
+ <local:RemoteSynchronizationView></local:RemoteSynchronizationView>
+ </ContentControl>
+ </controls:MultiTransitionControl.Controls>
+ </controls:MultiTransitionControl>
+
+ <Grid Grid.Row="1">
+ <TextBox Background="#202020" Foreground="Gainsboro" FontSize="11" Padding="5" Style="{x:Null}" BorderThickness="1" IsReadOnly="True" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap">
+ 11:35:10.34> Synchronization Engine Started...
+ </TextBox>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml.cs
new file mode 100644
index 000000000..65e50905d
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MainView.xaml.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.MachineStudio.Synchronization.Views
+{
+ /// <summary>
+ /// Interaction logic for MainView.xaml
+ /// </summary>
+ public partial class MainView : UserControl
+ {
+ public static MainView Instance;
+
+ public MainView()
+ {
+ InitializeComponent();
+ Instance = this;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml
new file mode 100644
index 000000000..6210ca94c
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml
@@ -0,0 +1,69 @@
+<UserControl x:Class="Tango.MachineStudio.Synchronization.Views.MenuView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.MachineStudio.Synchronization.Views"
+ xmlns:global="clr-namespace:Tango.MachineStudio.Synchronization"
+ mc:Ignorable="d"
+ d:DesignHeight="720" d:DesignWidth="1280" DataContext="{x:Static global:ViewModelLocator.MenuViewVM}">
+ <Grid>
+ <Grid>
+ <Grid>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="1*"/>
+ <ColumnDefinition Width="1*"/>
+ </Grid.ColumnDefinitions>
+
+ <Grid VerticalAlignment="Center">
+ <StackPanel>
+ <StackPanel HorizontalAlignment="Center" Margin="0 0 0 30">
+ <TextBlock TextAlignment="Center" FontSize="25">Remote Synchronization</TextBlock>
+ <TextBlock TextAlignment="Center" FontSize="14" Foreground="#303030">Synchronize local SQLite database file with the remote Twine database.</TextBlock>
+ </StackPanel>
+ <Viewbox RenderOptions.BitmapScalingMode="Fant" Width="400">
+ <Grid Width="450">
+ <StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <Image Source="../Images/remote-db.png" Width="200"></Image>
+ <Image Source="../Images/arrow_right.png" Width="100"></Image>
+ <Image Source="../Images/android-phone-color.png" Width="180"></Image>
+ </StackPanel>
+
+ <Button Command="{Binding StartRemoteSyncCommand}" Height="80" Margin="20 20 10 0" HorizontalAlignment="Right" Padding="10" FontSize="20" Width="200">START</Button>
+ </StackPanel>
+ </Grid>
+ </Viewbox>
+ </StackPanel>
+ </Grid>
+
+ <Grid VerticalAlignment="Center" Grid.Column="1">
+ <StackPanel>
+ <StackPanel HorizontalAlignment="Center" Margin="0 0 0 30">
+ <TextBlock TextAlignment="Center" FontSize="25">Local Synchronization</TextBlock>
+ <TextBlock TextAlignment="Center" FontSize="14" Foreground="#303030">Synchronize two SQLite local database files.</TextBlock>
+ </StackPanel>
+ <Viewbox RenderOptions.BitmapScalingMode="Fant" Width="400">
+ <Grid Width="450">
+ <StackPanel>
+ <StackPanel Orientation="Horizontal">
+ <Image Source="../Images/sqlite.png" Width="160"></Image>
+ <Image Source="../Images/arrow_right.png" Width="100" RenderTransformOrigin="0.5,0.5">
+ <Image.RenderTransform>
+ <RotateTransform Angle="180"></RotateTransform>
+ </Image.RenderTransform>
+ </Image>
+ <Image Source="../Images/sqlite.png" Width="160"></Image>
+ </StackPanel>
+
+ <Button Command="{Binding StartLocalSyncCommand}" Height="80" Margin="5 20 20 0" HorizontalAlignment="Left" Padding="10" FontSize="20" Width="200">START</Button>
+ </StackPanel>
+ </Grid>
+ </Viewbox>
+ </StackPanel>
+ </Grid>
+ </Grid>
+ </Grid>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml.cs
new file mode 100644
index 000000000..eb4c17ca0
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/MenuView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.MachineStudio.Synchronization.Views
+{
+ /// <summary>
+ /// Interaction logic for MenuView.xaml
+ /// </summary>
+ public partial class MenuView : UserControl
+ {
+ public MenuView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml
new file mode 100644
index 000000000..92c8fa674
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml
@@ -0,0 +1,12 @@
+<UserControl x:Class="Tango.MachineStudio.Synchronization.Views.RemoteSynchronizationView"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:local="clr-namespace:Tango.MachineStudio.Synchronization.Views"
+ mc:Ignorable="d"
+ d:DesignHeight="720" d:DesignWidth="1280" Background="White">
+ <Grid>
+ <TextBlock>Remote Sync</TextBlock>
+ </Grid>
+</UserControl>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml.cs
new file mode 100644
index 000000000..cee8e20d1
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Views/RemoteSynchronizationView.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace Tango.MachineStudio.Synchronization.Views
+{
+ /// <summary>
+ /// Interaction logic for LocalSynchronizationView.xaml
+ /// </summary>
+ public partial class RemoteSynchronizationView : UserControl
+ {
+ public RemoteSynchronizationView()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/packages.config b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/packages.config
new file mode 100644
index 000000000..42945b407
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/packages.config
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="CommonServiceLocator" version="1.3" targetFramework="net46" />
+ <package id="FontAwesome.WPF" version="4.7.0.9" targetFramework="net46" />
+ <package id="MahApps.Metro" version="1.5.0" targetFramework="net46" />
+ <package id="MaterialDesignColors" version="1.1.2" targetFramework="net46" />
+ <package id="MaterialDesignThemes" version="2.3.1.953" targetFramework="net46" />
+ <package id="MvvmLightLibs" version="5.3.0.0" targetFramework="net46" />
+</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml
new file mode 100644
index 000000000..482e852d6
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml
@@ -0,0 +1,65 @@
+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:Tango.MachineStudio.Common.Resources">
+ <ResourceDictionary.MergedDictionaries>
+ <!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
+ <!-- Accent and AppTheme setting -->
+ <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml">
+ </ResourceDictionary>
+ <!--Material Design-->
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/materialdesigncolor.lightblue.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/materialdesigncolor.yellow.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.CheckBox.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.PopupBox.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.RadioButton.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToggleButton.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.TextBlock.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Label.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.Slider.xaml">
+ </ResourceDictionary>
+ <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/materialdesigntheme.ProgressBar.xaml"/>
+
+
+ <!--MahApps Brushes-->
+ <ResourceDictionary>
+ <SolidColorBrush x:Key="HighlightBrush" Color="{DynamicResource Primary700}" />
+ <SolidColorBrush x:Key="AccentColorBrush" Color="{DynamicResource Primary500}" />
+ <SolidColorBrush x:Key="AccentColorBrush2" Color="{DynamicResource Primary400}" />
+ <SolidColorBrush x:Key="AccentColorBrush3" Color="{DynamicResource Primary300}" />
+ <SolidColorBrush x:Key="AccentColorBrush4" Color="{DynamicResource Primary200}" />
+ <SolidColorBrush x:Key="WindowTitleColorBrush" Color="{DynamicResource Primary700}" />
+ <SolidColorBrush x:Key="AccentSelectedColorBrush" Color="{DynamicResource Primary500Foreground}" />
+ <LinearGradientBrush x:Key="ProgressBrush" EndPoint="0.001,0.5" StartPoint="1.002,0.5">
+ <GradientStop Color="{DynamicResource Primary700}" Offset="0" />
+ <GradientStop Color="{DynamicResource Primary300}" Offset="1" />
+ </LinearGradientBrush>
+ <SolidColorBrush x:Key="CheckmarkFill" Color="{DynamicResource Primary500}" />
+ <SolidColorBrush x:Key="RightArrowFill" Color="{DynamicResource Primary500}" />
+ <SolidColorBrush x:Key="IdealForegroundColorBrush" Color="{DynamicResource Primary500Foreground}" />
+ <SolidColorBrush x:Key="IdealForegroundDisabledBrush" Color="{DynamicResource Primary500}" Opacity="0.4" />
+ </ResourceDictionary>
+
+ </ResourceDictionary.MergedDictionaries>
+</ResourceDictionary> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
index 1aa5216b4..70962a2f7 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
@@ -40,6 +40,9 @@
<Reference Include="GalaSoft.MvvmLight.Platform, Version=5.3.0.19032, Culture=neutral, PublicKeyToken=5f873c45e98af8a1, processorArchitecture=MSIL">
<HintPath>..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\GalaSoft.MvvmLight.Platform.dll</HintPath>
</Reference>
+ <Reference Include="MahApps.Metro, Version=1.5.0.23, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
+ <HintPath>..\..\packages\MahApps.Metro.1.5.0\lib\net45\MahApps.Metro.dll</HintPath>
+ </Reference>
<Reference Include="MaterialDesignColors, Version=1.1.2.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\MaterialDesignColors.1.1.2\lib\net45\MaterialDesignColors.dll</HintPath>
</Reference>
@@ -52,8 +55,7 @@
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
- <HintPath>..\..\packages\MvvmLightLibs.5.3.0.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
- <Private>True</Private>
+ <HintPath>..\..\packages\MahApps.Metro.1.5.0\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" />
@@ -94,6 +96,10 @@
<Compile Include="Navigation\INavigationManager.cs" />
<Compile Include="Navigation\NavigationView.cs" />
<Compile Include="Notifications\INotificationProvider.cs" />
+ <Page Include="Resources\MaterialDesign.xaml">
+ <SubType>Designer</SubType>
+ <Generator>MSBuild:Compile</Generator>
+ </Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs">
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/packages.config b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/packages.config
index f67c854e3..4fd672b32 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/packages.config
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/packages.config
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CommonServiceLocator" version="1.3" targetFramework="net46" />
+ <package id="MahApps.Metro" version="1.5.0" targetFramework="net46" />
<package id="MaterialDesignColors" version="1.1.2" targetFramework="net46" />
<package id="MaterialDesignThemes" version="2.3.1.953" targetFramework="net46" />
<package id="MvvmLightLibs" version="5.3.0.0" targetFramework="net46" />
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
index be0c1a829..4aa14b56a 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
@@ -232,6 +232,10 @@
<Project>{94f7acf8-55e1-4a02-b9bc-a818413fdbbf}</Project>
<Name>Tango.MachineStudio.DB</Name>
</ProjectReference>
+ <ProjectReference Include="..\Modules\Tango.MachineStudio.Synchronization\Tango.MachineStudio.Synchronization.csproj">
+ <Project>{12d0c43c-391f-4c74-92ab-82e9a9beeb9b}</Project>
+ <Name>Tango.MachineStudio.Synchronization</Name>
+ </ProjectReference>
<ProjectReference Include="..\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
<Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
<Name>Tango.MachineStudio.Common</Name>
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_DISPLAY_PANEL_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_DISPLAY_PANEL_VERSIONS.cs
index df8ed6d2f..410d0309c 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_DISPLAY_PANEL_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_DISPLAY_PANEL_VERSIONS.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public double VERSION { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_FIRMWARE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_FIRMWARE_VERSIONS.cs
index 3cf9cd3ce..dca8e82f1 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_FIRMWARE_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_FIRMWARE_VERSIONS.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public double VERSION { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_OS_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_OS_VERSIONS.cs
index a3d4afab8..c05a2410c 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_OS_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_OS_VERSIONS.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public double VERSION { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_VERSIONS.cs
index 7ef6c94cb..c250201d0 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/APPLICATION_VERSIONS.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public double VERSION { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/CARTRIDGE_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/CARTRIDGE_TYPES.cs
index 87d05642b..6d8e2d441 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/CARTRIDGE_TYPES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/CARTRIDGE_TYPES.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public long CODE { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/DISPENSER_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/DISPENSER_TYPES.cs
index f66752a5e..718ab5219 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/DISPENSER_TYPES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/DISPENSER_TYPES.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public long CODE { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_FIRMWARE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_FIRMWARE_VERSIONS.cs
index d44343495..b4f3c3c85 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_FIRMWARE_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_FIRMWARE_VERSIONS.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public double VERSION { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_SOFTWARE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_SOFTWARE_VERSIONS.cs
index a0b0a7b22..117295091 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_SOFTWARE_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/EMBEDDED_SOFTWARE_VERSIONS.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public double VERSION { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/EVENT_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/EVENT_TYPES.cs
index 3ec964cb8..af7b10d05 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/EVENT_TYPES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/EVENT_TYPES.cs
@@ -18,6 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public long CODE { get; set; }
public string NAME { get; set; }
public string DESCRIPTION { get; set; }
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/FIBER_SYNTHESISES.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/FIBER_SYNTHS.cs
index f6667a7c1..668872f68 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/FIBER_SYNTHESISES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/FIBER_SYNTHS.cs
@@ -12,7 +12,7 @@ namespace Tango.DAL.Local.DB
using System;
using System.Collections.Generic;
- public partial class FIBER_SYNTHESISES
+ public partial class FIBER_SYNTHS
{
public long ID { get; set; }
public string GUID { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/HARDWARE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/HARDWARE_VERSIONS.cs
index 0ceb68f7c..62b93a878 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/HARDWARE_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/HARDWARE_VERSIONS.cs
@@ -18,5 +18,7 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public double VERSION { get; set; }
+ public string NAME { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/LIQUID_TYPES.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/LIQUID_TYPES.cs
index 652d219ba..16e069ef1 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/LIQUID_TYPES.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/LIQUID_TYPES.cs
@@ -21,5 +21,6 @@ namespace Tango.DAL.Local.DB
public long CODE { get; set; }
public string NAME { get; set; }
public double VERSION { get; set; }
+ public long COLOR { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs
index 10f77068c..24df1c1ce 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.Context.cs
@@ -42,7 +42,7 @@ namespace Tango.DAL.Local.DB
public virtual DbSet<EVENT_TYPES> EVENT_TYPES { get; set; }
public virtual DbSet<EVENT_TYPES_ACTIONS> EVENT_TYPES_ACTIONS { get; set; }
public virtual DbSet<FIBER_SHAPES> FIBER_SHAPES { get; set; }
- public virtual DbSet<FIBER_SYNTHESISES> FIBER_SYNTHESISES { get; set; }
+ public virtual DbSet<FIBER_SYNTHS> FIBER_SYNTHS { get; set; }
public virtual DbSet<HARDWARE_VERSIONS> HARDWARE_VERSIONS { get; set; }
public virtual DbSet<IDS_PACKS> IDS_PACKS { get; set; }
public virtual DbSet<LINEAR_MASS_DENSITY_UNITS> LINEAR_MASS_DENSITY_UNITS { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx
index 261cec120..aa2095368 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx
@@ -41,6 +41,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="APPLICATION_FIRMWARE_VERSIONS">
<Key>
@@ -50,6 +52,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="APPLICATION_OS_VERSIONS">
<Key>
@@ -59,6 +63,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="APPLICATION_VERSIONS">
<Key>
@@ -68,6 +74,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="CARTRIDGE_TYPES">
<Key>
@@ -77,6 +85,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="CODE" Type="integer" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="CARTRIDGES">
<Key>
@@ -129,6 +139,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="CODE" Type="integer" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="DISPENSERS">
<Key>
@@ -148,6 +160,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="EMBEDDED_SOFTWARE_VERSIONS">
<Key>
@@ -157,6 +171,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="EVENT_TYPES">
<Key>
@@ -166,6 +182,7 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="CODE" Type="integer" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="DESCRIPTION" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
@@ -189,7 +206,7 @@
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
</EntityType>
- <EntityType Name="FIBER_SYNTHESISES">
+ <EntityType Name="FIBER_SYNTHS">
<Key>
<PropertyRef Name="ID" />
</Key>
@@ -206,6 +223,8 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="IDS_PACKS">
<Key>
@@ -240,6 +259,7 @@
<Property Name="CODE" Type="integer" Nullable="false" />
<Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="COLOR" Type="integer" Nullable="false" />
</EntityType>
<EntityType Name="LIQUID_TYPES_RMLS">
<Key>
@@ -260,7 +280,9 @@
<Property Name="GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LAST_UPDATED" Type="datetime" Nullable="false" />
<Property Name="DELETED" Type="bit" Nullable="false" />
+ <Property Name="NAME" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="VERSION" Type="real" Nullable="false" />
+ <Property Name="DEFAULT_CONFIGURATION_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
</EntityType>
<EntityType Name="MACHINES">
<Key>
@@ -378,7 +400,7 @@
<Property Name="CONDITION_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="LINEAR_MASS_DENSITY_UNIT_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="FIBER_SHAPE_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
- <Property Name="FIBER_SYNTHESIS_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
+ <Property Name="FIBER_SYNTH_GUID" Type="nvarchar" MaxLength="2147483647" Nullable="false" />
<Property Name="FIBER_SIZE" Type="real" Nullable="false" />
<Property Name="NUMBER_OF_FIBERS" Type="integer" Nullable="false" />
<Property Name="PLIES_PER_FIBER" Type="integer" Nullable="false" />
@@ -464,7 +486,7 @@
<EntitySet Name="EVENT_TYPES" EntityType="Self.EVENT_TYPES" store:Type="Tables" />
<EntitySet Name="EVENT_TYPES_ACTIONS" EntityType="Self.EVENT_TYPES_ACTIONS" store:Type="Tables" />
<EntitySet Name="FIBER_SHAPES" EntityType="Self.FIBER_SHAPES" store:Type="Tables" />
- <EntitySet Name="FIBER_SYNTHESISES" EntityType="Self.FIBER_SYNTHESISES" store:Type="Tables" />
+ <EntitySet Name="FIBER_SYNTHS" EntityType="Self.FIBER_SYNTHS" store:Type="Tables" />
<EntitySet Name="HARDWARE_VERSIONS" EntityType="Self.HARDWARE_VERSIONS" store:Type="Tables" />
<EntitySet Name="IDS_PACKS" EntityType="Self.IDS_PACKS" store:Type="Tables" />
<EntitySet Name="LINEAR_MASS_DENSITY_UNITS" EntityType="Self.LINEAR_MASS_DENSITY_UNITS" store:Type="Tables" />
@@ -509,7 +531,7 @@
<EntitySet Name="EVENT_TYPES" EntityType="LocalModel.EVENT_TYPES" />
<EntitySet Name="EVENT_TYPES_ACTIONS" EntityType="LocalModel.EVENT_TYPES_ACTIONS" />
<EntitySet Name="FIBER_SHAPES" EntityType="LocalModel.FIBER_SHAPES" />
- <EntitySet Name="FIBER_SYNTHESISES" EntityType="LocalModel.FIBER_SYNTHESISES" />
+ <EntitySet Name="FIBER_SYNTHS" EntityType="LocalModel.FIBER_SYNTHS" />
<EntitySet Name="HARDWARE_VERSIONS" EntityType="LocalModel.HARDWARE_VERSIONS" />
<EntitySet Name="IDS_PACKS" EntityType="LocalModel.IDS_PACKS" />
<EntitySet Name="LINEAR_MASS_DENSITY_UNITS" EntityType="LocalModel.LINEAR_MASS_DENSITY_UNITS" />
@@ -568,6 +590,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="APPLICATION_FIRMWARE_VERSIONS">
<Key>
@@ -577,6 +601,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="APPLICATION_OS_VERSIONS">
<Key>
@@ -586,6 +612,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="APPLICATION_VERSIONS">
<Key>
@@ -595,6 +623,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="CARTRIDGE_TYPES">
<Key>
@@ -604,6 +634,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="CODE" Type="Int64" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="CARTRIDGE">
<Key>
@@ -656,6 +688,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="CODE" Type="Int64" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="DISPENSER">
<Key>
@@ -675,6 +709,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="EMBEDDED_SOFTWARE_VERSIONS">
<Key>
@@ -684,6 +720,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="EVENT_TYPES">
<Key>
@@ -693,6 +731,7 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="CODE" Type="Int64" Nullable="false" />
<Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="DESCRIPTION" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
@@ -716,7 +755,7 @@
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
</EntityType>
- <EntityType Name="FIBER_SYNTHESISES">
+ <EntityType Name="FIBER_SYNTHS">
<Key>
<PropertyRef Name="ID" />
</Key>
@@ -733,6 +772,8 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="IDS_PACKS">
<Key>
@@ -767,6 +808,7 @@
<Property Name="CODE" Type="Int64" Nullable="false" />
<Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="COLOR" Type="Int64" Nullable="false" />
</EntityType>
<EntityType Name="LIQUID_TYPES_RMLS">
<Key>
@@ -787,7 +829,9 @@
<Property Name="GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LAST_UPDATED" Type="DateTime" Nullable="false" />
<Property Name="DELETED" Type="Boolean" Nullable="false" />
+ <Property Name="NAME" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="VERSION" Type="Double" Nullable="false" />
+ <Property Name="DEFAULT_CONFIGURATION_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
</EntityType>
<EntityType Name="MACHINE">
<Key>
@@ -905,7 +949,7 @@
<Property Name="CONDITION_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="LINEAR_MASS_DENSITY_UNIT_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="FIBER_SHAPE_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
- <Property Name="FIBER_SYNTHESIS_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
+ <Property Name="FIBER_SYNTH_GUID" Type="String" Nullable="false" MaxLength="2147483647" FixedLength="false" Unicode="true" />
<Property Name="FIBER_SIZE" Type="Double" Nullable="false" />
<Property Name="NUMBER_OF_FIBERS" Type="Int64" Nullable="false" />
<Property Name="PLIES_PER_FIBER" Type="Int64" Nullable="false" />
@@ -1012,6 +1056,8 @@
<EntitySetMapping Name="APPLICATION_DISPLAY_PANEL_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.APPLICATION_DISPLAY_PANEL_VERSIONS">
<MappingFragment StoreEntitySet="APPLICATION_DISPLAY_PANEL_VERSIONS">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1022,6 +1068,8 @@
<EntitySetMapping Name="APPLICATION_FIRMWARE_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.APPLICATION_FIRMWARE_VERSIONS">
<MappingFragment StoreEntitySet="APPLICATION_FIRMWARE_VERSIONS">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1032,6 +1080,8 @@
<EntitySetMapping Name="APPLICATION_OS_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.APPLICATION_OS_VERSIONS">
<MappingFragment StoreEntitySet="APPLICATION_OS_VERSIONS">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1042,6 +1092,8 @@
<EntitySetMapping Name="APPLICATION_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.APPLICATION_VERSIONS">
<MappingFragment StoreEntitySet="APPLICATION_VERSIONS">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1052,6 +1104,8 @@
<EntitySetMapping Name="CARTRIDGE_TYPES">
<EntityTypeMapping TypeName="LocalModel.CARTRIDGE_TYPES">
<MappingFragment StoreEntitySet="CARTRIDGE_TYPES">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="CODE" ColumnName="CODE" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1108,6 +1162,8 @@
<EntitySetMapping Name="DISPENSER_TYPES">
<EntityTypeMapping TypeName="LocalModel.DISPENSER_TYPES">
<MappingFragment StoreEntitySet="DISPENSER_TYPES">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="CODE" ColumnName="CODE" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1129,6 +1185,8 @@
<EntitySetMapping Name="EMBEDDED_FIRMWARE_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.EMBEDDED_FIRMWARE_VERSIONS">
<MappingFragment StoreEntitySet="EMBEDDED_FIRMWARE_VERSIONS">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1139,6 +1197,8 @@
<EntitySetMapping Name="EMBEDDED_SOFTWARE_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.EMBEDDED_SOFTWARE_VERSIONS">
<MappingFragment StoreEntitySet="EMBEDDED_SOFTWARE_VERSIONS">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1151,6 +1211,7 @@
<MappingFragment StoreEntitySet="EVENT_TYPES">
<ScalarProperty Name="DESCRIPTION" ColumnName="DESCRIPTION" />
<ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="CODE" ColumnName="CODE" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1180,9 +1241,9 @@
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
- <EntitySetMapping Name="FIBER_SYNTHESISES">
- <EntityTypeMapping TypeName="LocalModel.FIBER_SYNTHESISES">
- <MappingFragment StoreEntitySet="FIBER_SYNTHESISES">
+ <EntitySetMapping Name="FIBER_SYNTHS">
+ <EntityTypeMapping TypeName="LocalModel.FIBER_SYNTHS">
+ <MappingFragment StoreEntitySet="FIBER_SYNTHS">
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1193,6 +1254,8 @@
<EntitySetMapping Name="HARDWARE_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.HARDWARE_VERSIONS">
<MappingFragment StoreEntitySet="HARDWARE_VERSIONS">
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
+ <ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1227,6 +1290,7 @@
<EntitySetMapping Name="LIQUID_TYPES">
<EntityTypeMapping TypeName="LocalModel.LIQUID_TYPES">
<MappingFragment StoreEntitySet="LIQUID_TYPES">
+ <ScalarProperty Name="COLOR" ColumnName="COLOR" />
<ScalarProperty Name="VERSION" ColumnName="VERSION" />
<ScalarProperty Name="NAME" ColumnName="NAME" />
<ScalarProperty Name="CODE" ColumnName="CODE" />
@@ -1252,7 +1316,9 @@
<EntitySetMapping Name="MACHINE_VERSIONS">
<EntityTypeMapping TypeName="LocalModel.MACHINE_VERSIONS">
<MappingFragment StoreEntitySet="MACHINE_VERSIONS">
+ <ScalarProperty Name="DEFAULT_CONFIGURATION_GUID" ColumnName="DEFAULT_CONFIGURATION_GUID" />
<ScalarProperty Name="VERSION" ColumnName="VERSION" />
+ <ScalarProperty Name="NAME" ColumnName="NAME" />
<ScalarProperty Name="DELETED" ColumnName="DELETED" />
<ScalarProperty Name="LAST_UPDATED" ColumnName="LAST_UPDATED" />
<ScalarProperty Name="GUID" ColumnName="GUID" />
@@ -1383,7 +1449,7 @@
<ScalarProperty Name="PLIES_PER_FIBER" ColumnName="PLIES_PER_FIBER" />
<ScalarProperty Name="NUMBER_OF_FIBERS" ColumnName="NUMBER_OF_FIBERS" />
<ScalarProperty Name="FIBER_SIZE" ColumnName="FIBER_SIZE" />
- <ScalarProperty Name="FIBER_SYNTHESIS_GUID" ColumnName="FIBER_SYNTHESIS_GUID" />
+ <ScalarProperty Name="FIBER_SYNTH_GUID" ColumnName="FIBER_SYNTH_GUID" />
<ScalarProperty Name="FIBER_SHAPE_GUID" ColumnName="FIBER_SHAPE_GUID" />
<ScalarProperty Name="LINEAR_MASS_DENSITY_UNIT_GUID" ColumnName="LINEAR_MASS_DENSITY_UNIT_GUID" />
<ScalarProperty Name="CONDITION_GUID" ColumnName="CONDITION_GUID" />
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram
index 5bbf17d24..f36a25560 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/LocalADO.edmx.diagram
@@ -22,16 +22,16 @@
<EntityTypeShape EntityType="LocalModel.EVENT_TYPES" Width="1.5" PointX="8.75" PointY="9.75" />
<EntityTypeShape EntityType="LocalModel.EVENT_TYPES_ACTIONS" Width="1.5" PointX="10.75" PointY="0.75" />
<EntityTypeShape EntityType="LocalModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="10.75" />
- <EntityTypeShape EntityType="LocalModel.FIBER_SYNTHESISES" Width="1.5" PointX="10.75" PointY="3.75" />
+ <EntityTypeShape EntityType="LocalModel.FIBER_SYNTHS" Width="1.5" PointX="10.75" PointY="3.75" />
<EntityTypeShape EntityType="LocalModel.HARDWARE_VERSIONS" Width="1.5" PointX="10.75" PointY="6.75" />
<EntityTypeShape EntityType="LocalModel.IDS_PACKS" Width="1.5" PointX="10.75" PointY="9.75" />
<EntityTypeShape EntityType="LocalModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="2.75" PointY="11.75" />
<EntityTypeShape EntityType="LocalModel.LIQUID_TYPES" Width="1.5" PointX="4.75" PointY="11.75" />
<EntityTypeShape EntityType="LocalModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="12.75" PointY="0.75" />
<EntityTypeShape EntityType="LocalModel.MACHINE_VERSIONS" Width="1.5" PointX="12.75" PointY="3.75" />
- <EntityTypeShape EntityType="LocalModel.MACHINE" Width="1.5" PointX="12.75" PointY="6.75" />
- <EntityTypeShape EntityType="LocalModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="6.75" PointY="12.75" />
- <EntityTypeShape EntityType="LocalModel.MACHINES_EVENTS" Width="1.5" PointX="12.75" PointY="10.75" />
+ <EntityTypeShape EntityType="LocalModel.MACHINE" Width="1.5" PointX="12.75" PointY="7.75" />
+ <EntityTypeShape EntityType="LocalModel.MACHINES_CONFIGURATIONS" Width="1.5" PointX="12.75" PointY="11.75" />
+ <EntityTypeShape EntityType="LocalModel.MACHINES_EVENTS" Width="1.5" PointX="6.75" PointY="13.75" />
<EntityTypeShape EntityType="LocalModel.MEDIA_COLORS" Width="1.5" PointX="8.75" PointY="13.75" />
<EntityTypeShape EntityType="LocalModel.MEDIA_CONDITIONS" Width="1.5" PointX="14.75" PointY="0.75" />
<EntityTypeShape EntityType="LocalModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="14.75" />
@@ -42,8 +42,8 @@
<EntityTypeShape EntityType="LocalModel.ROLE" Width="1.5" PointX="12.75" PointY="14.75" />
<EntityTypeShape EntityType="LocalModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.75" PointY="14.75" />
<EntityTypeShape EntityType="LocalModel.SYNC_CONFIGURATIONS" Width="1.5" PointX="2.75" PointY="15.75" />
- <EntityTypeShape EntityType="LocalModel.USER" Width="1.5" PointX="4.75" PointY="15.75" />
- <EntityTypeShape EntityType="LocalModel.USERS_ROLES" Width="1.5" PointX="16.75" PointY="0.75" />
+ <EntityTypeShape EntityType="LocalModel.USER" Width="1.5" PointX="16.75" PointY="0.75" />
+ <EntityTypeShape EntityType="LocalModel.USERS_ROLES" Width="1.5" PointX="16.75" PointY="4.75" />
</Diagram>
</edmx:Diagrams>
</edmx:Designer>
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/MACHINE_VERSIONS.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/MACHINE_VERSIONS.cs
index 987d5b501..482c5ff01 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/MACHINE_VERSIONS.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/MACHINE_VERSIONS.cs
@@ -18,6 +18,8 @@ namespace Tango.DAL.Local.DB
public string GUID { get; set; }
public System.DateTime LAST_UPDATED { get; set; }
public bool DELETED { get; set; }
+ public string NAME { get; set; }
public double VERSION { get; set; }
+ public string DEFAULT_CONFIGURATION_GUID { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Local/DB/RML.cs b/Software/Visual_Studio/Tango.DAL.Local/DB/RML.cs
index 6761a538f..8b7723d95 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/DB/RML.cs
+++ b/Software/Visual_Studio/Tango.DAL.Local/DB/RML.cs
@@ -25,7 +25,7 @@ namespace Tango.DAL.Local.DB
public string CONDITION_GUID { get; set; }
public string LINEAR_MASS_DENSITY_UNIT_GUID { get; set; }
public string FIBER_SHAPE_GUID { get; set; }
- public string FIBER_SYNTHESIS_GUID { get; set; }
+ public string FIBER_SYNTH_GUID { get; set; }
public double FIBER_SIZE { get; set; }
public long NUMBER_OF_FIBERS { get; set; }
public long PLIES_PER_FIBER { get; set; }
diff --git a/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj b/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj
index 14625e59f..b37074e7f 100644
--- a/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj
+++ b/Software/Visual_Studio/Tango.DAL.Local/Tango.DAL.Local.csproj
@@ -116,7 +116,7 @@
<Compile Include="DB\FIBER_SHAPES.cs">
<DependentUpon>LocalADO.tt</DependentUpon>
</Compile>
- <Compile Include="DB\FIBER_SYNTHESISES.cs">
+ <Compile Include="DB\FIBER_SYNTHS.cs">
<DependentUpon>LocalADO.tt</DependentUpon>
</Compile>
<Compile Include="DB\HARDWARE_VERSIONS.cs">
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/ActionTypes.cs b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/ActionTypes.cs
index 750b1b4ab..3473559e6 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/ActionTypes.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/ActionTypes.cs
@@ -8,5 +8,18 @@ namespace Tango.DAL.Observables
{
public enum ActionTypes
{
+
+ /// <summary>
+ /// (Some description)
+ /// </summary>
+ [Description("Some description")]
+ Action1 = 1,
+
+ /// <summary>
+ /// (Some action 2 description)
+ /// </summary>
+ [Description("Some action 2 description")]
+ Action2 = 2,
+
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/EventTypes.cs b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/EventTypes.cs
index 4321c9f9f..66df05539 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/EventTypes.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/EventTypes.cs
@@ -8,5 +8,18 @@ namespace Tango.DAL.Observables
{
public enum EventTypes
{
+
+ /// <summary>
+ /// (Some event description)
+ /// </summary>
+ [Description("Some event description")]
+ Event1 = 1,
+
+ /// <summary>
+ /// (Some event 2 description)
+ /// </summary>
+ [Description("Some event 2 description")]
+ Event2 = 2,
+
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/Permissions.cs b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/Permissions.cs
index 542555b51..8e90b2b87 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/Permissions.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/Enumerations/Permissions.cs
@@ -27,5 +27,11 @@ namespace Tango.DAL.Observables
[Description("Allows loading the database module in Machine Studio")]
RunDataBaseModule = 2,
+ /// <summary>
+ /// (Allows loading the synchronization module in machine studio)
+ /// </summary>
+ [Description("Allows loading the synchronization module in machine studio")]
+ RunSynchronizationModule = 3,
+
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs b/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs
index f80c45eae..6ab3b602f 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ConfigurationExtensions.cs
@@ -10,7 +10,7 @@ public static class ConfigurationExtensions
public static Configuration CloneConfiguration(this Configuration configuration)
{
Configuration cloned = configuration.CloneEntity();
- cloned.CreationDate = DateTime.Now;
+ cloned.CreationDate = DateTime.UtcNow;
foreach (var idsPack in configuration.IdsPacks)
{
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ObservableEntityExtensions.cs b/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ObservableEntityExtensions.cs
index 8fad6e39c..eb7e6efb9 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ObservableEntityExtensions.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/ExtensionMethods/ObservableEntityExtensions.cs
@@ -11,7 +11,7 @@ public static class ObservableEntityExtensions
{
T cloned = entity.ShallowClone();
cloned.Guid = Guid.NewGuid().ToString();
- cloned.LastUpdated = DateTime.Now;
+ cloned.LastUpdated = DateTime.UtcNow;
return cloned;
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/IObservableEntity.cs b/Software/Visual_Studio/Tango.DAL.Observables/IObservableEntity.cs
index 397d7b820..10bb15f3f 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/IObservableEntity.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/IObservableEntity.cs
@@ -25,8 +25,13 @@ namespace Tango.DAL.Observables
Task SaveAsync();
+ [Obsolete("The method delete is not for use as it prevents the synchronization of remote and local database.")]
void Delete();
+ void SoftDelete();
+
+ Task SoftDeleteAsync();
+
List<KeyValuePair<String, String>> GetDependentEntitiesNameAndGuid();
}
}
diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ObservableEntity.cs b/Software/Visual_Studio/Tango.DAL.Observables/ObservableEntity.cs
index e5e49ac38..74bcfbb83 100644
--- a/Software/Visual_Studio/Tango.DAL.Observables/ObservableEntity.cs
+++ b/Software/Visual_Studio/Tango.DAL.Observables/ObservableEntity.cs
@@ -138,6 +138,8 @@ namespace Tango.DAL.Observables
public abstract void Delete();
public abstract Task SaveAsync();
+ public abstract void SoftDelete();
+ public abstract Task SoftDeleteAsync();
}
public abstract class ObservableEntity<T> : ObservableEntity where T : class
@@ -183,7 +185,7 @@ namespace Tango.DAL.Observables
{
Entity = Activator.CreateInstance<T>();
Guid = System.Guid.NewGuid().ToString();
- LastUpdated = DateTime.Now;
+ LastUpdated = DateTime.UtcNow;
_isNew = true;
}
@@ -219,10 +221,27 @@ namespace Tango.DAL.Observables
ObservablesEntitiesAdapter.Instance.SaveChanges();
}
+ public override void SoftDelete()
+ {
+ this.Deleted = true;
+ Save();
+ }
+
+ public override Task SoftDeleteAsync()
+ {
+ return Task.Factory.StartNew(() =>
+ {
+ SoftDelete();
+ });
+ }
+
internal override void Save(List<IObservableEntity> savedEntities)
{
savedEntities.Add(this);
+ //Update last updated...
+ this.LastUpdated = DateTime.UtcNow;
+
//Match guids..
foreach (var prop in this.GetType().GetProperties().Where(x => !x.PropertyType.IsGenericType && x.PropertyType.IsClass && x.PropertyType != typeof(String) && x.PropertyType != typeof(DateTime)))
diff --git a/Software/Visual_Studio/Tango.Synchronization/Local/LocalDBSynchronizer.cs b/Software/Visual_Studio/Tango.Synchronization/Local/LocalDBSynchronizer.cs
index ca58686f3..c7b6900d6 100644
--- a/Software/Visual_Studio/Tango.Synchronization/Local/LocalDBSynchronizer.cs
+++ b/Software/Visual_Studio/Tango.Synchronization/Local/LocalDBSynchronizer.cs
@@ -8,7 +8,7 @@ namespace Tango.Synchronization.Local
{
public class LocalDBSynchronizer
{
- public static void Synchronize(String masterSQLiteFile, String slaveSQLiteFile)
+ public static List<Diff> Synchronize(String masterSQLiteFile, String slaveSQLiteFile)
{
using (LocalDBComparer comparer = new LocalDBComparer(new SQLiteDataBase(masterSQLiteFile), new SQLiteDataBase(slaveSQLiteFile)))
{
@@ -17,12 +17,14 @@ namespace Tango.Synchronization.Local
{
diff.Commit();
}
+
+ return diffs;
}
}
- public static Task SynchronizeAsync(String masterSQLiteFile, String slaveSQLiteFile)
+ public static Task<List<Diff>> SynchronizeAsync(String masterSQLiteFile, String slaveSQLiteFile)
{
- return Task.Factory.StartNew(() => Synchronize(masterSQLiteFile, slaveSQLiteFile));
+ return Task.Factory.StartNew<List<Diff>>(() => { return Synchronize(masterSQLiteFile, slaveSQLiteFile); });
}
}
}
diff --git a/Software/Visual_Studio/Tango.Synchronization/Local/SqliteDataBase.cs b/Software/Visual_Studio/Tango.Synchronization/Local/SqliteDataBase.cs
index b3d259e8c..add791b19 100644
--- a/Software/Visual_Studio/Tango.Synchronization/Local/SqliteDataBase.cs
+++ b/Software/Visual_Studio/Tango.Synchronization/Local/SqliteDataBase.cs
@@ -100,6 +100,16 @@ namespace Tango.Synchronization.Local
return table;
}
+ public void ClearDataBase()
+ {
+ foreach (var table in Tables)
+ {
+ var dropCommand = _connection.CreateCommand();
+ dropCommand.CommandText = String.Format("DELETE FROM {0};", table.TableName);
+ dropCommand.ExecuteNonQuery();
+ }
+ }
+
/// <summary>
/// Clones a table from another database into this database.
/// </summary>
diff --git a/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBSynchronizer.cs b/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBSynchronizer.cs
index ae39e118b..7abd8ad7e 100644
--- a/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBSynchronizer.cs
+++ b/Software/Visual_Studio/Tango.Synchronization/Remote/RemoteDBSynchronizer.cs
@@ -6,13 +6,21 @@ using System.Threading.Tasks;
using remote = Tango.DAL.Remote.DB;
using local = Tango.DAL.Local.DB;
using Tango.Settings;
+using Tango.Synchronization.Local;
namespace Tango.Synchronization.Remote
{
public class RemoteDBSynchronizer
{
- public static void Synchronize(String sqliteDbFile, String serialNumber)
+ public static List<Diff> Synchronize(String sqliteDbFile, String serialNumber, bool overrideLocal = false)
{
+ if (overrideLocal)
+ {
+ SQLiteDataBase sqlite = new SQLiteDataBase(sqliteDbFile);
+ sqlite.LoadTables();
+ sqlite.ClearDataBase();
+ }
+
using (var remoteDB = new remote.RemoteDB(SettingsManager.Default.DataBase.SQLServerAddress, false))
{
using (var localDB = new local.LocalDB(sqliteDbFile))
@@ -27,15 +35,17 @@ namespace Tango.Synchronization.Remote
remoteDB.SaveChanges();
localDB.SaveChanges();
+
+ return diffs;
}
}
}
- public static Task SynchronizeAsync(String sqliteDBFile, String serialNumber)
+ public static Task<List<Diff>> SynchronizeAsync(String sqliteDBFile, String serialNumber, bool overrideLocal = false)
{
- return Task.Factory.StartNew(() =>
+ return Task.Factory.StartNew<List<Diff>>(() =>
{
- Synchronize(sqliteDBFile, serialNumber);
+ return Synchronize(sqliteDBFile, serialNumber, overrideLocal);
});
}
}
diff --git a/Software/Visual_Studio/Tango.UnitTesting/DAL_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/DAL_TST.cs
index e9fa5e6ba..88ea53900 100644
--- a/Software/Visual_Studio/Tango.UnitTesting/DAL_TST.cs
+++ b/Software/Visual_Studio/Tango.UnitTesting/DAL_TST.cs
@@ -17,21 +17,21 @@ namespace Tango.UnitTesting
using (var db = new DAL.Remote.DB.RemoteDB(SettingsManager.Default.DataBase.SQLServerAddress, false))
{
- var action = new DAL.Remote.DB.ACTION();
+ var action = new DAL.Remote.DB.ACTION_TYPES();
action.CODE = 1;
action.NAME = "Action 1";
action.DESCRIPTION = "Description 1";
action.GUID = guid;
- action.LAST_UPDATED = DateTime.Now;
+ action.LAST_UPDATED = DateTime.UtcNow;
- db.ACTIONS.Add(action);
+ db.ACTION_TYPES.Add(action);
db.SaveChanges();
}
using (var db = new DAL.Remote.DB.RemoteDB(SettingsManager.Default.DataBase.SQLServerAddress, false))
{
- var action = db.ACTIONS.Single(x => x.GUID == guid);
- db.ACTIONS.Remove(action);
+ var action = db.ACTION_TYPES.Single(x => x.GUID == guid);
+ db.ACTION_TYPES.Remove(action);
db.SaveChanges();
}
}
@@ -43,21 +43,21 @@ namespace Tango.UnitTesting
using (var db = new DAL.Local.DB.LocalDB(Helper.GetSQLiteFilePath()))
{
- var action = new DAL.Local.DB.ACTION();
+ var action = new DAL.Local.DB.ACTION_TYPES();
action.CODE = 1;
action.NAME = "Action 1";
action.DESCRIPTION = "Description 1";
action.GUID = guid;
- db.ACTIONS.Add(action);
+ db.ACTION_TYPES.Add(action);
db.SaveChanges();
}
using (var db = new DAL.Local.DB.LocalDB(Helper.GetSQLiteFilePath()))
{
- var actions = db.ACTIONS.ToList();
- var action = db.ACTIONS.Single(x => x.GUID == guid);
- db.ACTIONS.Remove(action);
+ var actions = db.ACTION_TYPES.ToList();
+ var action = db.ACTION_TYPES.Single(x => x.GUID == guid);
+ db.ACTION_TYPES.Remove(action);
db.SaveChanges();
}
}
diff --git a/Software/Visual_Studio/Tango.UnitTesting/Synchronization_TST.cs b/Software/Visual_Studio/Tango.UnitTesting/Synchronization_TST.cs
index 765d93115..3b949cf90 100644
--- a/Software/Visual_Studio/Tango.UnitTesting/Synchronization_TST.cs
+++ b/Software/Visual_Studio/Tango.UnitTesting/Synchronization_TST.cs
@@ -20,7 +20,23 @@ namespace Tango.UnitTesting
{
var console = Helper.InitializeLogging(true);
- RemoteDBSynchronizer.Synchronize(Helper.GetSQLiteFilePath(), "1234");
+ using (var remoteDB = new remote.RemoteDB(SettingsManager.Default.DataBase.SQLServerAddress, false))
+ {
+ using (var localDB = new local.LocalDB(Helper.GetSQLiteFilePath()))
+ {
+ RemoteDBComparer comparer = new RemoteDBComparer(remoteDB, localDB, "1111");
+ var diffs = comparer.Compare();
+ }
+ }
+
+ console.WaitForConsoleExit().Wait();
+ }
+
+ [TestMethod]
+ public void Synchronize_Remote_And_Local()
+ {
+ var console = Helper.InitializeLogging(true);
+ RemoteDBSynchronizer.Synchronize(Helper.GetSQLiteFilePath(), "1111", true);
console.WaitForConsoleExit().Wait();
}
diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln
index 831c15e13..0a1922bd7 100644
--- a/Software/Visual_Studio/Tango.sln
+++ b/Software/Visual_Studio/Tango.sln
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26430.14
+VisualStudioVersion = 15.0.26430.16
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.Protobuf", "Tango.Protobuf\Tango.Protobuf.csproj", "{40073806-914E-4E78-97AB-FA9639308EBE}"
EndProject
@@ -95,6 +95,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Develop
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ColorPicker", "Tango.ColorPicker\Tango.ColorPicker.csproj", "{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Synchronization", "MachineStudio\Modules\Tango.MachineStudio.Synchronization\Tango.MachineStudio.Synchronization.csproj", "{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -522,6 +524,18 @@ Global
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x64.Build.0 = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.ActiveCfg = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.Build.0 = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.Build.0 = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.Build.0 = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.ActiveCfg = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.Build.0 = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.ActiveCfg = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -545,5 +559,6 @@ Global
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
{CB0B0AA2-BB24-4BCA-A720-45E397684E12} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B}
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
EndGlobalSection
EndGlobal