using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Data; using Tango.BL.Entities; using Tango.Core; using System.Data.Entity; using Tango.Core.Threading; namespace Tango.BL { public partial class ObservablesStaticCollections : ExtendedObject { private ObservablesContext db; private bool _initialized; public bool IsInitialized { get { return _initialized; } private set { _initialized = value; } } private static ObservablesStaticCollections _instance; /// /// Gets the singleton instance. /// public static ObservablesStaticCollections Instance { get { if (_instance == null) { _instance = new ObservablesStaticCollections(); } return _instance; } } private ObservablesStaticCollections() { } public ObservablesStaticCollections(ObservablesContext context) { db = context; } public ObservablesContext Context { get { return db; } } public void InitializeLite(Action progressLog = null) { if (!_initialized) { progressLog?.Invoke("Loading static collections..."); db = ObservablesContext.CreateDefault(); WindingMethods = db.WindingMethods.ToObservableCollection(); progressLog?.Invoke("Loading color spaces..."); ColorSpaces = db.ColorSpaces.ToObservableCollection(); progressLog?.Invoke("Loading spools..."); SpoolTypes = db.SpoolTypes.ToObservableCollection(); progressLog?.Invoke("Loading events..."); EventTypes = db.EventTypes.ToObservableCollection(); progressLog?.Invoke("Loading blowers..."); HardwareBlowerTypes = db.HardwareBlowerTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareBlowers = db.HardwareBlowers.ToObservableCollection(); progressLog?.Invoke("Loading break sensors..."); HardwareBreakSensorTypes = db.HardwareBreakSensorTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareBreakSensors = db.HardwareBreakSensors.ToObservableCollection(); progressLog?.Invoke("Loading dancers..."); HardwareDancerTypes = db.HardwareDancerTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareDancers = db.HardwareDancers.ToObservableCollection(); progressLog?.Invoke("Loading motors..."); HardwareMotorTypes = db.HardwareMotorTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareMotors = db.HardwareMotors.ToObservableCollection(); progressLog?.Invoke("Loading pid controls..."); HardwarePidControlTypes = db.HardwarePidControlTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwarePidControls = db.HardwarePidControls.ToObservableCollection(); progressLog?.Invoke("Loading speed sensors..."); HardwareSpeedSensorTypes = db.HardwareSpeedSensorTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareSpeedSensors = db.HardwareSpeedSensors.ToObservableCollection(); progressLog?.Invoke("Loading winders..."); HardwareWinderTypes = db.HardwareWinderTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareWinders = db.HardwareWinders.ToObservableCollection(); progressLog?.Invoke("Loading tech controllers..."); TechControllers = db.TechControllers.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech dispensers..."); TechDispensers = db.TechDispensers.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech io's..."); TechIos = db.TechIos.ToObservableCollection(); progressLog?.Invoke("Loading tech monitors..."); TechMonitors = db.TechMonitors.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech valves..."); TechValves = db.TechValves.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech heaters..."); TechHeaters = db.TechHeaters.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //progressLog?.Invoke("Loading machines..."); Machines = db.Machines.Include(x => x.Organization).ToObservableCollection(); //progressLog?.Invoke("Loading users..."); //Users = db.Users.Where(x => !x.Deleted).Include(x => x.Contact).ToObservableCollection(); //progressLog?.Invoke("Loading machine versions..."); MachineVersions = db.MachineVersions.ToObservableCollection(); //Load later... //Task.Factory.StartNew(() => //{ // //LiquidTypes = db.LiquidTypes.ToObservableCollection(); // //DispenserTypes = db.DispenserTypes.ToObservableCollection(); // //MidTankTypes = db.MidTankTypes.ToObservableCollection(); // //CartridgeTypes = db.CartridgeTypes.ToObservableCollection(); // //IdsPackFormulas = db.IdsPackFormulas.ToObservableCollection(); // //Rmls = db.Rmls.ToObservableCollection(); // //LiquidTypesRmls = db.LiquidTypesRmls.ToObservableCollection(); // //foreach (var machine in Machines) // //{ // // ObservablesContextAdapter adapter = new ObservablesContextAdapter(db); // // adapter.GetConfiguration(x => x.Guid == machine.ConfigurationGuid); // //} //}); _initialized = true; } } /// /// Initializes this instance. /// public void Initialize(Action progressLog = null) { if (!_initialized) { progressLog?.Invoke("Loading static collections..."); db = ObservablesContext.CreateDefault(); WindingMethods = db.WindingMethods.ToObservableCollection(); progressLog?.Invoke("Loading color spaces..."); ColorSpaces = db.ColorSpaces.ToObservableCollection(); progressLog?.Invoke("Loading spools..."); SpoolTypes = db.SpoolTypes.ToObservableCollection(); progressLog?.Invoke("Loading events..."); EventTypes = db.EventTypes.ToObservableCollection(); progressLog?.Invoke("Loading blowers..."); HardwareBlowerTypes = db.HardwareBlowerTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareBlowers = db.HardwareBlowers.ToObservableCollection(); progressLog?.Invoke("Loading break sensors..."); HardwareBreakSensorTypes = db.HardwareBreakSensorTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareBreakSensors = db.HardwareBreakSensors.ToObservableCollection(); progressLog?.Invoke("Loading dancers..."); HardwareDancerTypes = db.HardwareDancerTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareDancers = db.HardwareDancers.ToObservableCollection(); progressLog?.Invoke("Loading motors..."); HardwareMotorTypes = db.HardwareMotorTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareMotors = db.HardwareMotors.ToObservableCollection(); progressLog?.Invoke("Loading pid controls..."); HardwarePidControlTypes = db.HardwarePidControlTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwarePidControls = db.HardwarePidControls.ToObservableCollection(); progressLog?.Invoke("Loading speed sensors..."); HardwareSpeedSensorTypes = db.HardwareSpeedSensorTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareSpeedSensors = db.HardwareSpeedSensors.ToObservableCollection(); progressLog?.Invoke("Loading winders..."); HardwareWinderTypes = db.HardwareWinderTypes.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); //HardwareWinders = db.HardwareWinders.ToObservableCollection(); progressLog?.Invoke("Loading tech controllers..."); TechControllers = db.TechControllers.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech dispensers..."); TechDispensers = db.TechDispensers.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech io's..."); TechIos = db.TechIos.ToObservableCollection(); progressLog?.Invoke("Loading tech monitors..."); TechMonitors = db.TechMonitors.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech valves..."); TechValves = db.TechValves.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading tech heaters..."); TechHeaters = db.TechHeaters.ToList().OrderByAlphaNumeric(x => x.Description).ToObservableCollection(); progressLog?.Invoke("Loading machines..."); Machines = db.Machines.Include(x => x.Organization).ToObservableCollection(); progressLog?.Invoke("Loading users..."); Users = db.Users.Where(x => !x.Deleted).Include(x => x.Contact).ToObservableCollection(); progressLog?.Invoke("Loading machine versions..."); MachineVersions = db.MachineVersions.ToObservableCollection(); //Load later... Task.Factory.StartNew(() => { LiquidTypes = db.LiquidTypes.ToObservableCollection(); DispenserTypes = db.DispenserTypes.ToObservableCollection(); MidTankTypes = db.MidTankTypes.ToObservableCollection(); CartridgeTypes = db.CartridgeTypes.ToObservableCollection(); IdsPackFormulas = db.IdsPackFormulas.ToObservableCollection(); Rmls = db.Rmls.ToObservableCollection(); LiquidTypesRmls = db.LiquidTypesRmls.ToObservableCollection(); foreach (var machine in Machines) { ObservablesContextAdapter adapter = new ObservablesContextAdapter(db); adapter.GetConfiguration(x => x.Guid == machine.ConfigurationGuid); } }); _initialized = true; } //InitCollectionSources(); } /// /// Creates a collection view from the specified observable collection. /// /// /// The collection. /// private ICollectionView CreateCollectionView(ObservableCollection collection) { var view = CollectionViewSource.GetDefaultView(collection); return view; } } }