aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.UnitTesting/Logging/SessionLoging_TST.cs
blob: 873fcca57043a7a77244e106318ed66244781998 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Tango.Logging;

namespace Tango.UnitTesting.Logging
{
    [TestClass]
    [TestCategory("Logging")]
    public class SessionLoging_TST
    {
        [TestMethod]
        public void Create_Session_File_Logger()
        {
            SessionFileLogger sessionlogger = new SessionFileLogger();
            LogManager.Default.RegisterLogger(sessionlogger);
            sessionlogger.CreateSession();
            var manager = LogManager.Default;

            manager.Log($"This is a test 1");
            Thread.Sleep(300);
            SessionFileLogger slogger = LogManager.Default.RegisteredLoggers.FirstOrDefault(x => x.GetType() == typeof(SessionFileLogger)) as SessionFileLogger;
            string[] fileEntries = Directory.GetFiles(slogger.Folder, "*.log");
            Assert.AreEqual(1, fileEntries.Count());

            sessionlogger.CreateSession();
            manager.Log($"This is a test 2");
            Thread.Sleep(300);
            fileEntries = Directory.GetFiles(slogger.Folder, "*.log");
            Assert.AreEqual(1, fileEntries.Count());
        }
    }
}
>using Tango.PPC.Shared.Updates; using static Tango.SharedUI.Controls.NavigationControl; namespace Tango.FSE.PPCConsole.ViewModels { /// <summary> /// Represents the remote system software/firmware updates view model. /// </summary> /// <seealso cref="Tango.FSE.Common.FSEViewModel" /> /// <seealso cref="Tango.SharedUI.Controls.NavigationControl.INavigationViewModel" /> public class UpdatesViewVM : FSEViewModel, INavigationViewModel { private bool _loaded; private ICollectionView _updatesView; private ICollectionView _packagesView; #region Properties private List<TangoUpdate> _updates; /// <summary> /// Gets or sets the list of history software updates. /// </summary> public List<TangoUpdate> Updates { get { return _updates; } set { _updates = value; RaisePropertyChangedAuto(); } } private List<PackageInstallation> _packages; /// <summary> /// Gets or sets the history of installed packages. /// </summary> public List<PackageInstallation> Packages { get { return _packages; } set { _packages = value; RaisePropertyChangedAuto(); } } private String _filter; /// <summary> /// Gets or sets the search filter. /// </summary> public String Filter { get { return _filter; } set { _filter = value; RaisePropertyChangedAuto(); OnFilterChanged(); } } #endregion #region Commands /// <summary> /// Reloads the updates from the remote machine. /// </summary> public RelayCommand RefreshCommand { get; set; } /// <summary> /// Invokes a detailed dialog of the selected update. /// </summary> public RelayCommand<TangoUpdate> OpenUpdateCommand { get; set; } #endregion #region Constructors /// <summary> /// Initializes a new instance of the <see cref="UpdatesViewVM"/> class. /// </summary> public UpdatesViewVM() { OpenUpdateCommand = new RelayCommand<TangoUpdate>(OpenUpdate); RefreshCommand = new RelayCommand(RefreshUpdates); } #endregion #region Override Methods public override void OnNavigatedTo() { base.OnNavigatedTo(); LoadMachineUpdates(); } public override void OnApplicationStarted() { base.OnApplicationStarted(); MachineProvider.MachineConnected += MachineProvider_MachineConnected; } #endregion #region Event Handlers private void MachineProvider_MachineConnected(object sender, Common.Connection.MachineConnectedEventArgs e) { _loaded = false; if (MachineProvider.ConnectionType.IsRemote()) { if (IsVisible) { LoadMachineUpdates(); } } } #endregion #region Private Methods private void RefreshUpdates() { _loaded = false; LoadMachineUpdates(); } private async void OpenUpdate(TangoUpdate update) { await NotificationProvider.ShowDialog(new MachineUpdateViewVM() { Update = update }); } private void OnFilterChanged() { _updatesView?.Refresh(); _packagesView?.Refresh(); } private async void LoadMachineUpdates() { if (!MachineProvider.IsConnected || !MachineProvider.ConnectionType.IsRemote()) return; if (!_loaded) { try { IsFree = false; await Task.Delay(1000); var result = await MachineUpdatesProvider.GetUpdates(); Updates = result.Updates.ToList(); Packages = result.Packages.ToList(); _filter = null; RaisePropertyChanged(nameof(Filter)); _updatesView = CollectionViewSource.GetDefaultView(Updates); _updatesView.Filter = OnUpdatesFilter; _packagesView = CollectionViewSource.GetDefaultView(Packages); _packagesView.Filter = OnPackagesFilter; _loaded = true; } catch (Exception ex) { LogManager.Log(ex, "Error retrieving machine updates."); NotificationProvider.PushErrorReportingSnackbar(ex, "PPC Module Error", "Error occurred while trying to retrieve the machine software updates history."); } finally { IsFree = true; } } } private bool OnPackagesFilter(object obj) { PackageInstallation package = obj as PackageInstallation; return String.IsNullOrWhiteSpace(Filter) || package.PackageName.ToLower().Contains(Filter.ToLower()); } private bool OnUpdatesFilter(object obj) { TangoUpdate update = obj as TangoUpdate; return String.IsNullOrWhiteSpace(Filter) || update.UpdateStatus.ToDescription().ToLower().Contains(Filter.ToLower()); } #endregion } }