using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Enumerations; using Tango.PMR.Diagnostics; namespace Tango.BL.Entities { [Serializable] public partial class MachinesEvent { private static Dictionary _eventTypesGuids; private static bool _eventFactoryInitialized; private void InitializeEventFactory() { if (!_eventFactoryInitialized) { _eventFactoryInitialized = true; _eventTypesGuids = new Dictionary(); foreach (var type in ObservablesEntitiesAdapter.Instance.EventTypes) { _eventTypesGuids.Add((EventTypes)type.Code, type); } } } public MachinesEvent(Event pmrEvent) : this() { InitializeEventFactory(); DateTime = DateTime.UtcNow; Description = pmrEvent.Message; EventType = _eventTypesGuids[(EventTypes)pmrEvent.Type]; } [NotMapped] public EventTypesCategories Category { get { return (EventTypesCategories)EventType.EventTypesCategory.Code; } } [NotMapped] public EventTypesGroups Group { get { return (EventTypesGroups)EventType.EventTypesGroup.Code; } } [NotMapped] public EventTypes Type { get { return (EventTypes)EventType.Code; } } [NotMapped] public List ActionTypes { get { return EventType.EventTypesActions.Select(x => (ActionTypes)x.ActionType.Code).Distinct().ToList(); } } } }