aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
authorMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
committerMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
commit00a491d93733d4625ad329b2ba8237f445364b3f (patch)
tree4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs
parent124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff)
downloadTango-00a491d9.tar.gz
Tango-00a491d9.zip
merge
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs220
1 files changed, 0 insertions, 220 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs
deleted file mode 100644
index 5db5e004d..000000000
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs
+++ /dev/null
@@ -1,220 +0,0 @@
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL;
-using Tango.BL.ActionLogs;
-using Tango.BL.Builders;
-using Tango.BL.Entities;
-using Tango.Core.Commands;
-using Tango.Core.Threading;
-using Tango.MachineStudio.Common;
-using Tango.MachineStudio.Common.Authentication;
-using Tango.MachineStudio.Common.Notifications;
-using Tango.MachineStudio.Sites.Contracts;
-using Tango.MachineStudio.Sites.Models;
-
-namespace Tango.MachineStudio.Sites.ViewModels
-{
- public class MainViewVM : StudioViewModel<IMainView>
- {
- private ObservablesContext _db;
- private INotificationProvider _notification;
- private IAuthenticationProvider _authentication;
- private IActionLogManager _actionLogManager;
- private ActionTimer _filter_timer;
-
- private List<SiteModel> _sites;
- public List<SiteModel> Sites
- {
- get { return _sites; }
- set { _sites = value; RaisePropertyChangedAuto(); }
- }
-
- private SiteModel _selectedSite;
- public SiteModel SelectedSite
- {
- get { return _selectedSite; }
- set { _selectedSite = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
- }
-
- private String _filter;
- public String Filter
- {
- get { return _filter; }
- set { _filter = value; RaisePropertyChangedAuto(); OnFilterChanged(); }
- }
-
- private SiteDetailsViewVM _siteDetailsViewVM;
- public SiteDetailsViewVM SiteDetailsViewVM
- {
- get { return _siteDetailsViewVM; }
- set { _siteDetailsViewVM = value; RaisePropertyChangedAuto(); }
- }
-
- public RelayCommand AddSiteCommand { get; set; }
-
- public RelayCommand RemoveSiteCommand { get; set; }
-
- public RelayCommand ManageSiteCommand { get; set; }
-
- public RelayCommand BackToSitesCommand { get; set; }
-
- public MainViewVM(INotificationProvider notificationProvider, IAuthenticationProvider authentication, IActionLogManager actionLogManager)
- {
- _notification = notificationProvider;
- _authentication = authentication;
- _actionLogManager = actionLogManager;
- _filter_timer = new ActionTimer(TimeSpan.FromMilliseconds(500));
-
- ManageSiteCommand = new RelayCommand(() => LoadSelectedSite(), () => SelectedSite != null);
- BackToSitesCommand = new RelayCommand(() => { View.NavigateTo(SitesNavigationView.SitesView); });
- AddSiteCommand = new RelayCommand(AddNewSite);
- RemoveSiteCommand = new RelayCommand(RemoveSelectedSite, () => SelectedSite != null);
- }
-
- private async void RemoveSelectedSite()
- {
- if (!_notification.ShowQuestion("Are you sure you wish to remove the selected site?")) return;
-
- try
- {
- using (_notification.PushTaskItem("Removing site..."))
- {
- IsFree = false;
- await Task.Factory.StartNew(() =>
- {
- var site = _db.Sites.SingleOrDefault(x => x.Guid == SelectedSite.Guid);
- site.Delete(_db);
- _db.SaveChanges();
- _actionLogManager.InsertLog(BL.Enumerations.ActionLogType.SiteDeleted, _authentication.CurrentUser, site.Name, site, "Site deleted using Machine Studio.");
- Sites.Remove(SelectedSite);
- LoadSites();
- });
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error removing site.");
- _notification.ShowError($"Error removing site.\n{ex.FlattenMessage()}");
- }
- finally
- {
- IsFree = true;
- }
- }
-
- private async void AddNewSite()
- {
- try
- {
- String name = _notification.ShowTextInput("Enter site name", "name");
- if (String.IsNullOrWhiteSpace(name)) return;
-
- using (_notification.PushTaskItem("Creating site..."))
- {
- IsFree = false;
- SiteDetailsViewVM = new SiteDetailsViewVM();
- SiteDetailsViewVM.Saved += SiteDetailsViewVM_Saved;
- await SiteDetailsViewVM.Init(SelectedSite?.Guid, _notification, _authentication, _actionLogManager, true, name);
- View.NavigateTo(SitesNavigationView.SiteDetailsView);
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error creating site.");
- _notification.ShowError($"Error creating site.\n{ex.FlattenMessage()}");
- }
- finally
- {
- IsFree = true;
- }
- }
-
- private async void LoadSelectedSite()
- {
- try
- {
- using (_notification.PushTaskItem("Loading site details..."))
- {
- IsFree = false;
- SiteDetailsViewVM = new SiteDetailsViewVM();
- SiteDetailsViewVM.Saved += SiteDetailsViewVM_Saved;
- await SiteDetailsViewVM.Init(SelectedSite.Guid, _notification, _authentication, _actionLogManager, false);
- View.NavigateTo(SitesNavigationView.SiteDetailsView);
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error loading site details.");
- _notification.ShowError($"Error loading site details.\n{ex.FlattenMessage()}");
- }
- finally
- {
- IsFree = true;
- }
- }
-
- private void SiteDetailsViewVM_Saved(object sender, EventArgs e)
- {
- OnFilterChanged();
- View.NavigateTo(SitesNavigationView.SitesView);
- }
-
- private void OnFilterChanged()
- {
- if (Filter != null)
- {
- _filter_timer.ResetReplace(() =>
- {
- try
- {
- LoadSites();
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error loading sites list.");
- }
- });
- }
- }
-
- private void LoadSites()
- {
- using (_notification.PushTaskItem("Loading sites..."))
- {
- Sites = (from site in _db.Sites
- join organization in _db.Organizations on site.OrganizationGuid equals organization.Guid
- join sites_rmls in _db.SitesRmls on site.Guid equals sites_rmls.SiteGuid into rmls
- join sites_catalogs in _db.SitesCatalogs on site.Guid equals sites_catalogs.SiteGuid into catalogs
- join sites_machines in _db.Machines on site.Guid equals sites_machines.SiteGuid into machines
- where Filter == null || Filter == "" || site.Name.ToLower().StartsWith(Filter.ToLower()) || organization.Name.ToLower().StartsWith(Filter.ToLower())
- select new
- {
- Site = site,
- OrganizationName = organization.Name,
- ThreadCount = rmls.Count(x => x.SiteGuid == site.Guid),
- CatalogCount = catalogs.Count(x => x.SiteGuid == site.Guid),
- MachineCount = machines.Count(x => x.SiteGuid == site.Guid)
- }).Distinct().ToList().DistinctBy(x => x.Site.Guid).Select(x => new SiteModel()
- {
- Guid = x.Site.Guid,
- ID = x.Site.ID,
- Name = x.Site.Name,
- Description = x.Site.Description,
- ThreadCount = x.ThreadCount,
- CatalogCount = x.CatalogCount,
- MachineCount = x.MachineCount,
- Organization = x.OrganizationName,
- }).ToList();
- }
- }
-
- public override void OnApplicationReady()
- {
- _db = ObservablesContext.CreateDefault();
- }
- }
-}