using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; namespace SKMC.Api.Common.Logger { public class LogDataService { private static LogDataService instance; private readonly object lockEventObject = new object(); private readonly object lockProductionObject = new object(); private readonly object lockParameterObject = new object(); private readonly object lockProcessObject = new object(); private readonly object lockActionObject = new object(); public ObservableCollection LogEventModels { get; set; } = new ObservableCollection(); public ObservableCollection LogProductionModels { get; set; } = new ObservableCollection(); public ObservableCollection LogParameterModels { get; set; } = new ObservableCollection(); public ObservableCollection LogProcessModels { get; set; } = new ObservableCollection(); public ObservableCollection LogActionModels { get; set; } = new ObservableCollection(); public static LogDataService Instance() { if (instance == null) instance = new LogDataService(); return instance; } private LogDataService() { BindingOperations.EnableCollectionSynchronization(LogEventModels, lockEventObject); BindingOperations.EnableCollectionSynchronization(LogProductionModels, lockProductionObject); BindingOperations.EnableCollectionSynchronization(LogParameterModels, lockParameterObject); BindingOperations.EnableCollectionSynchronization(LogProcessModels, lockProcessObject); BindingOperations.EnableCollectionSynchronization(LogActionModels, lockActionObject); } } }