aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs175
1 files changed, 0 insertions, 175 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs
deleted file mode 100644
index cacda1e8d..000000000
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/SiteDetailsViewVM.cs
+++ /dev/null
@@ -1,175 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL;
-using Tango.BL.Entities;
-using Tango.Core.Commands;
-using Tango.SharedUI;
-using Tango.SharedUI.Components;
-using System.Data.Entity;
-using Tango.MachineStudio.Common.Notifications;
-using Tango.MachineStudio.Common.Authentication;
-using Tango.BL.ActionLogs;
-using Tango.BL.DTO;
-using Tango.BL.Builders;
-
-namespace Tango.MachineStudio.Sites.ViewModels
-{
- public class SiteDetailsViewVM : ViewModel
- {
- private ObservablesContext _db;
- private INotificationProvider _notification;
- private IAuthenticationProvider _authentication;
- private IActionLogManager _actionLogManager;
- private bool _isNew;
- private SiteDTO _siteBeforeSave;
-
- public event EventHandler Saved;
-
- private Site _site;
- public Site Site
- {
- get { return _site; }
- set { _site = value; RaisePropertyChangedAuto(); }
- }
-
- private List<Organization> _organizations;
- public List<Organization> Organizations
- {
- get { return _organizations; }
- set { _organizations = value; RaisePropertyChangedAuto(); }
- }
-
- private SelectedObjectCollection<Rml> _rmls;
- public SelectedObjectCollection<Rml> Rmls
- {
- get { return _rmls; }
- set { _rmls = value; RaisePropertyChangedAuto(); }
- }
-
- private SelectedObjectCollection<ColorCatalog> _catalogs;
- public SelectedObjectCollection<ColorCatalog> Catalogs
- {
- get { return _catalogs; }
- set { _catalogs = value; RaisePropertyChangedAuto(); }
- }
-
- private List<Machine> _machines;
- public List<Machine> Machines
- {
- get { return _machines; }
- set { _machines = value; RaisePropertyChangedAuto(); }
- }
-
- public RelayCommand SaveCommand { get; set; }
-
- public SiteDetailsViewVM()
- {
- SaveCommand = new RelayCommand(Save, () => IsFree);
- }
-
- public async Task Init(String siteGuid, INotificationProvider notification, IAuthenticationProvider authentication, IActionLogManager actionLogManager, bool isNew, string newSiteName = null)
- {
- _notification = notification;
- _authentication = authentication;
- _actionLogManager = actionLogManager;
-
- _db = ObservablesContext.CreateDefault();
- Organizations = await _db.Organizations.ToListAsync();
-
- if (isNew)
- {
- Site = new Site();
- Site.Name = newSiteName;
- Site.Description = "My site description";
- _db.Sites.Add(Site);
-
- _isNew = true;
- }
- else
- {
- _isNew = false;
- Site = await new SiteBuilder(_db).Set(siteGuid)
- .WithSiteCatalogs()
- .WithCatalogs()
- .WithSiteRmls()
- .WithRmls()
- .WithOrganization()
- .BuildAsync();
- }
-
- Machines = await _db.Machines.Where(x => x.SiteGuid == Site.Guid).Include(x => x.Organization).ToListAsync();
-
- var rmls = await _db.Rmls.OrderBy(x => x.Name).ToListAsync();
- var catalogs = await _db.ColorCatalogs.OrderBy(x => x.Name).ToListAsync();
-
- Rmls = new SelectedObjectCollection<Rml>(rmls.ToObservableCollection(), Site.SitesRmls.Select(x => x.Rml).ToObservableCollection());
- Catalogs = new SelectedObjectCollection<ColorCatalog>(catalogs.ToObservableCollection(), Site.SitesCatalogs.Select(x => x.ColorCatalog).ToObservableCollection());
-
- _siteBeforeSave = SiteDTO.FromObservable(Site);
- }
-
- private async void Save()
- {
- try
- {
- if (!Site.Validate(_db))
- {
- _notification.ShowError(String.Join("\n", Site.ValidationErrors));
- return;
- }
-
- IsFree = false;
-
- using (_notification.PushTaskItem("Saving site details..."))
- {
- //Check if site organization has changed and there are no machines that belongs to this site but different organization.
- if (_db.Machines.Any(x => x.SiteGuid == Site.Guid && x.OrganizationGuid != Site.OrganizationGuid))
- {
- throw new InvalidOperationException($"One or more machines belongs to this site but not to '{Site.Organization.Name}' organization.");
- }
-
- //Remove site rmls.
- Site.SitesRmls.ToList().Where(x => !Rmls.SynchedSource.ToList().Exists(y => y.Guid == x.RmlGuid)).ToList().ForEach(x => _db.SitesRmls.Remove(x));
- Site.SitesCatalogs.ToList().Where(x => !Catalogs.SynchedSource.ToList().Exists(y => y.Guid == x.ColorCatalogGuid)).ToList().ForEach(x => _db.SitesCatalogs.Remove(x));
-
- foreach (var selectedRml in Rmls.SynchedSource.Where(x => !Site.SitesRmls.ToList().Exists(y => y.RmlGuid == x.Guid)))
- {
- _db.SitesRmls.Add(new SitesRml() { SiteGuid = Site.Guid, RmlGuid = selectedRml.Guid });
- }
-
- foreach (var selectedCatalog in Catalogs.SynchedSource.Where(x => !Site.SitesCatalogs.ToList().Exists(y => y.ColorCatalogGuid == x.Guid)))
- {
- _db.SitesCatalogs.Add(new SitesCatalog() { SiteGuid = Site.Guid, ColorCatalogGuid = selectedCatalog.Guid });
- }
-
- await _db.SaveChangesAsync();
-
- if (_isNew)
- {
- _actionLogManager.InsertLog(BL.Enumerations.ActionLogType.SiteCreated, _authentication.CurrentUser, Site.Name, Site, "Site created using Machine Studio.");
- }
- else
- {
- SiteDTO siteAfter = SiteDTO.FromObservable(Site);
- _actionLogManager.InsertLog(BL.Enumerations.ActionLogType.SiteSaved, _authentication.CurrentUser, _siteBeforeSave.Name, _siteBeforeSave, siteAfter, "Site saved using Machine Studio.");
- _siteBeforeSave = siteAfter;
- }
- }
- _db.Dispose();
- Saved?.Invoke(this, new EventArgs());
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error saving site details.");
- _notification.ShowError($"Error saving site details.\n{ex.FlattenMessage()}");
- }
- finally
- {
- IsFree = true;
- }
- }
- }
-}