using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL; using Tango.Core.DI; using Tango.Integration.Operation; using Tango.PMR.Diagnostics; using Tango.PPC.Common; using Tango.PPC.Common.Application; using Tango.PPC.Common.Connection; using Tango.PPC.Common.Notifications; using Tango.SharedUI; namespace Tango.PPC.UI.Dialogs { public class BitResultsViewVM : DialogViewVM { private List _results; public List Results { get { return _results; } set { _results = value; RaisePropertyChangedAuto(); } } [TangoInject] public IMachineProvider MachineProvider { get; set; } [TangoInject] public INotificationProvider NotificationProvider { get; set; } [TangoInject] public IPPCApplicationManager ApplicationManager { get; set; } private bool _bitSuccessful; public bool BitSuccessful { get { return _bitSuccessful; } set { _bitSuccessful = value; RaisePropertyChangedAuto(); } } public BitResultsViewVM() { TangoIOC.Default.Inject(this); Results = new List(); IsFree = false; } public async override void OnShow() { base.OnShow(); try { using (ObservablesContext db = ObservablesContext.CreateDefault()) { var bitTypes = await db.BitTypes.ToListAsync(); var results = await MachineProvider.MachineOperator.GetBitResults(bitTypes); if (ApplicationManager.IsInTechnicianMode) { Results = results; } else { Results = results.Where(x => x.BitResult.Status == BitResultStatus.Failed || x.BitResult.Status == BitResultStatus.Warning).ToList(); BitSuccessful = Results.Count == 0; } IsFree = true; } } catch (Exception ex) { LogManager.Log(ex, "Error fetching BIT results."); Cancel(); await NotificationProvider.ShowError($"Error fetching BIT results.\n{ex.FlattenMessage()}"); } } } }