aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs19
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs23
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs2
3 files changed, 41 insertions, 3 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs
index 4d88a71d9..404a459d3 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Catalogs/ViewModels/MainViewVM.cs
@@ -17,6 +17,10 @@ using Microsoft.Win32;
using Tango.Core.Helpers;
using System.IO;
using Tango.MachineStudio.Catalogs.Excel;
+using Tango.BL.ActionLogs;
+using Tango.MachineStudio.Common.Authentication;
+using Tango.BL.Enumerations;
+using Tango.BL.DTO;
namespace Tango.MachineStudio.Catalogs.ViewModels
{
@@ -25,6 +29,9 @@ namespace Tango.MachineStudio.Catalogs.ViewModels
private ObservablesContext _catalogsContext;
private ObservablesContext _activeCatalogContext;
private INotificationProvider _notification;
+ private IActionLogManager _actionLogManager;
+ private IAuthenticationProvider _authentication;
+ private ColorCatalogDTO _catalogBeforeSave;
#region Properties
@@ -151,9 +158,11 @@ namespace Tango.MachineStudio.Catalogs.ViewModels
/// Initializes a new instance of the <see cref="MainViewVM"/> class.
/// </summary>
/// <param name="notificationProvider">The notification provider.</param>
- public MainViewVM(INotificationProvider notificationProvider) : this()
+ public MainViewVM(INotificationProvider notificationProvider, IActionLogManager actionLogManager, IAuthenticationProvider authenticationProvider) : this()
{
+ _actionLogManager = actionLogManager;
_notification = notificationProvider;
+ _authentication = authenticationProvider;
}
#endregion
@@ -206,6 +215,8 @@ namespace Tango.MachineStudio.Catalogs.ViewModels
SelectedItem = SelectedGroup.ColorCatalogsItems.FirstOrDefault();
}
+ _catalogBeforeSave = ColorCatalogDTO.FromObservable(ActiveCatalog);
+
View.NavigateTo(CatalogsNavigationView.CatalogView);
}
catch (Exception ex)
@@ -233,6 +244,7 @@ namespace Tango.MachineStudio.Catalogs.ViewModels
{
IsFree = false;
await SelectedCatalog.DeleteCascadeAsync(_catalogsContext);
+ _actionLogManager.InsertLog(ActionLogType.CatalogDeleted, _authentication.CurrentUser, SelectedCatalog.Name, SelectedCatalog, "Catalog deleted using Machine Studio.");
SelectedCatalog = null;
}
catch (Exception ex)
@@ -265,6 +277,7 @@ namespace Tango.MachineStudio.Catalogs.ViewModels
newCatalog.Company = "Twine";
_catalogsContext.ColorCatalogs.Add(newCatalog);
await _catalogsContext.SaveChangesAsync();
+ _actionLogManager.InsertLog(ActionLogType.CatalogCreated, _authentication.CurrentUser, newCatalog.Name, newCatalog, "Catalog created using Machine Studio.");
SelectedCatalog = newCatalog;
EditSelectedCatalog();
}
@@ -308,6 +321,10 @@ namespace Tango.MachineStudio.Catalogs.ViewModels
ActiveCatalog.LastUpdated = DateTime.UtcNow;
await _activeCatalogContext.SaveChangesAsync();
await LoadCatalogs();
+
+ var activeCatalogDTO = ColorCatalogDTO.FromObservable(ActiveCatalog);
+ _actionLogManager.InsertLog(ActionLogType.CatalogSaved, _authentication.CurrentUser, ActiveCatalog.Name, _catalogBeforeSave, activeCatalogDTO, "Catalog created using Machine Studio.");
+ _catalogBeforeSave = activeCatalogDTO;
_notification.ShowInfo("Catalog updated successfully.");
}
catch (Exception ex)
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
index d598e2458..4b276462e 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs
@@ -1928,7 +1928,7 @@ namespace Tango.MachineStudio.Developer.ViewModels
_activeJobDbContext.SaveChanges();
var afterJobDTO = JobDTO.FromObservable(ActiveJob);
- _actionLogManager.InsertLog(ActionLogType.JobSaved, AuthenticationProvider.CurrentUser, _beforeSaveJobDTO.Name, _beforeSaveJobDTO, afterJobDTO, "Job saved from research module in Machine Studio.").GetAwaiter().GetResult();
+ _actionLogManager.InsertLog(ActionLogType.JobSaved, AuthenticationProvider.CurrentUser, _beforeSaveJobDTO.Name, _beforeSaveJobDTO, afterJobDTO, "Job saved from research module in Machine Studio.");
_beforeSaveJobDTO = afterJobDTO;
_machineDbContext.Entry(SelectedMachineJob).Reload();
@@ -2191,6 +2191,8 @@ namespace Tango.MachineStudio.Developer.ViewModels
{
if (_notification.ShowQuestion("Are you sure you want to delete the selected jobs?"))
{
+ var jobsToReport = SelectedJobs.Select(x => JobDTO.FromObservable(x)).ToList();
+
LogManager.Log(String.Format("Removing {0} jobs...", SelectedJobs.Count));
SelectedJobs.ToList().ForEach(x =>
{
@@ -2202,6 +2204,11 @@ namespace Tango.MachineStudio.Developer.ViewModels
LogManager.Log("Saving selected machine to database...");
await SelectedMachine.SaveAsync(_machineDbContext);
}
+
+ foreach (var job in jobsToReport)
+ {
+ _actionLogManager.InsertLog(ActionLogType.JobDeleted, AuthenticationProvider.CurrentUser, job.Name, job, "Job deleted using Machine Studio.", true);
+ }
}
}
}
@@ -2258,6 +2265,7 @@ namespace Tango.MachineStudio.Developer.ViewModels
LogManager.Log("Saving selected machine to database...");
await SelectedMachine.SaveAsync(_machineDbContext);
+ _actionLogManager.InsertLog(ActionLogType.JobCreated, AuthenticationProvider.CurrentUser, newJob.Name, newJob, "Job created using Machine Studio.");
SelectedMachineJob = newJob;
LoadSelectedJob();
}
@@ -2388,6 +2396,11 @@ namespace Tango.MachineStudio.Developer.ViewModels
LogManager.Log("Saving selected machine to database...");
await SelectedMachine.SaveAsync(_machineDbContext);
+ foreach (var job in SelectedJobs)
+ {
+ _actionLogManager.InsertLog(ActionLogType.JobCreated, AuthenticationProvider.CurrentUser, job.Name, job, "Job created using Machine Studio.");
+ }
+
CanWork = true;
}
}
@@ -2611,6 +2624,8 @@ namespace Tango.MachineStudio.Developer.ViewModels
LogManager.Log($"Importing job files...");
+ List<Job> jobsToReport = new List<Job>();
+
foreach (var file in dlg.FileNames)
{
var bytes = File.ReadAllBytes(file);
@@ -2619,10 +2634,16 @@ namespace Tango.MachineStudio.Developer.ViewModels
job.JobSource = JobSource.Remote;
_machineDbContext.Jobs.Add(job);
+ jobsToReport.Add(job);
}
await _machineDbContext.SaveChangesAsync();
+ foreach (var job in jobsToReport)
+ {
+ _actionLogManager.InsertLog(ActionLogType.JobImported, AuthenticationProvider.CurrentUser, job.Name, job, "New job imported using Machine Studio.");
+ }
+
IsFree = true;
_notification.ShowInfo($"Jobs imported successfully.");
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
index a61f14746..6c550ffda 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs
@@ -95,7 +95,7 @@ namespace Tango.MachineStudio.UI
TangoIOC.Default.Register<IEventLogger, DefaultEventLogger>();
TangoIOC.Default.Register<ISpeechProvider, DefaultSpeechProvider>();
TangoIOC.Default.Register<IFirmwareUpgrader, DefaultFirmwareUpgrader>();
- TangoIOC.Default.Register<IActionLogManager, DefaultActionLogManager>(new DefaultActionLogManager() { ThrowExceptions = false });
+ TangoIOC.Default.Register<IActionLogManager, DefaultActionLogManager>();
TangoIOC.Default.Register<TeamFoundationServiceExtendedClient>(new TeamFoundationServiceExtendedClient("https://twinetfs.visualstudio.com", String.Empty, "szzfokrceo4rhd4eqi5qpmxn3pa5iwl3q7tlqd36l2m7smz2ynoa"));