diff options
| author | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
|---|---|---|
| committer | Mirta <mirta@twine-s.com> | 2020-12-30 16:39:52 +0200 |
| commit | 00a491d93733d4625ad329b2ba8237f445364b3f (patch) | |
| tree | 4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Sites/ViewModels/MainViewVM.cs | |
| parent | 124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff) | |
| download | Tango-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.cs | 220 |
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(); - } - } -} |
