/// <summary> /// Creates a Work order event item base don the DB version. /// </summary> /// <param name="fmWorkOrderEvent"></param> /// <returns></returns> protected WorkOrderEvent MakeWorkOrderEvent(FMWorkOrderEvent fmWorkOrderEvent) { //check for null if (fmWorkOrderEvent == null) { return(null); } var workOrderEvent = new WorkOrderEvent { AlarmTier = fmWorkOrderEvent.AlarmTier, Automated = fmWorkOrderEvent.Automated, EventCode = fmWorkOrderEvent.EventCode, EventDateTime = fmWorkOrderEvent.EventDateTime, EventDesc = fmWorkOrderEvent.EventDesc, EventId = fmWorkOrderEvent.EventId, Notes = fmWorkOrderEvent.Notes, SLADue = fmWorkOrderEvent.SLADue, Status = fmWorkOrderEvent.Status, StatusDisplay = fmWorkOrderEvent.Status == (int)WorkOrderEventStatus.Open ? HttpContext.Current.GetLocaleResource(ResourceTypes.Label, "Open") : @HttpContext.Current.GetLocaleResource(ResourceTypes.Label, "Closed"), Vandalism = fmWorkOrderEvent.Vandalism, WorkOrderEventId = fmWorkOrderEvent.WorkOrderEventId, Severity = fmWorkOrderEvent.AlarmTier, SeverityDisplay = HttpContext.Current.GetLocaleResource(ResourceTypes.Label, "Severe"), //default this to something - is set below. WorkOrderId = fmWorkOrderEvent.WorkOrderId, }; //fix up alarm tier display - have to go back to pems for this info. var tier = PemsEntities.AlarmTiers.FirstOrDefault(x => x.Tier == workOrderEvent.AlarmTier); if (tier != null) { workOrderEvent.SeverityDisplay = tier.TierDesc; } return(workOrderEvent); }
/// <summary> /// Creates a work order event if we need to. /// </summary> /// <param name="activeAlarmResponse"></param> /// <param name="currentCustomer"></param> /// <param name="customeId"></param> /// <param name="eventSource"></param> /// <param name="eventCode"></param> /// <param name="eventUID"></param> /// <param name="workOrderId"></param> /// <param name="maintenanceEntities"></param> private void CreateWorkOrderEvent(DataResponseActiveAlarmsActiveAlarm activeAlarmResponse, PemsCity currentCustomer, int customeId, int eventSource, int eventCode, long eventUID, long workOrderId, MaintenanceEntities maintenanceEntities) { //check to see if we need to crate the event first. the PK for it is workorderid, eventid, eventcode var existingWorkOrderEvent = maintenanceEntities.FMWorkOrderEvents.FirstOrDefault( x => x.WorkOrderId == workOrderId && x.EventId == eventUID && x.EventCode == eventCode && x.Status == (int)WorkOrderEventStatus.Open); if (existingWorkOrderEvent != null) { return; } //if we got here, we have to creat the event. using (var pemsEntities = new PEMEntities(currentCustomer.PemsConnectionStringName)) { var ec = pemsEntities.EventCodes.FirstOrDefault( x => x.CustomerID == customeId && x.EventSource == eventSource && x.EventCode1 == eventCode); if (ec != null) { //we found the event code, continue. . var fmWorkOrderEvent = new FMWorkOrderEvent(); fmWorkOrderEvent.AlarmTier = ec.AlarmTier; // alarm tier of the event code fmWorkOrderEvent.Automated = true; fmWorkOrderEvent.EventCode = eventCode; fmWorkOrderEvent.EventDateTime = activeAlarmResponse.TimeOfOccurrance; fmWorkOrderEvent.EventDesc = ec.EventDescVerbose; fmWorkOrderEvent.EventId = eventUID; fmWorkOrderEvent.Notes = activeAlarmResponse.Notes; fmWorkOrderEvent.SLADue = activeAlarmResponse.SLADue; fmWorkOrderEvent.Status = (int)WorkOrderEventStatus.Open; fmWorkOrderEvent.Vandalism = false; fmWorkOrderEvent.WorkOrderId = workOrderId; maintenanceEntities.FMWorkOrderEvents.Add(fmWorkOrderEvent); maintenanceEntities.SaveChanges(); } } }
/// <summary> /// Creates a work order event for a given work order and returns the ID of the generated event. /// </summary> /// <param name="eventId"></param> /// <param name="workOrderId"></param> /// <param name="eventCode"></param> /// <param name="eventDateTime"></param> /// <param name="eventDescription"></param> /// <param name="slaDue"></param> /// <param name="alarmTier"></param> /// <param name="notes"></param> /// <param name="automated"></param> /// <param name="vandalism"></param> /// <param name="status"></param> /// <returns></returns> public long CreateWorkOrderEvent(int eventId, long workOrderId, int eventCode, DateTime eventDateTime, string eventDescription, DateTime slaDue, int alarmTier, string notes, bool automated, bool vandalism, int status) { var fmWorkOrderEvent = new FMWorkOrderEvent(); fmWorkOrderEvent.AlarmTier = alarmTier; // alarm tier of the event code fmWorkOrderEvent.Automated = automated; fmWorkOrderEvent.EventCode = eventCode; fmWorkOrderEvent.EventDateTime = eventDateTime; fmWorkOrderEvent.EventDesc = eventDescription; fmWorkOrderEvent.EventId = eventId; fmWorkOrderEvent.Notes = notes; fmWorkOrderEvent.SLADue = slaDue; fmWorkOrderEvent.Status = status; fmWorkOrderEvent.Vandalism = vandalism; fmWorkOrderEvent.WorkOrderId = workOrderId; MaintenanceEntities.FMWorkOrderEvents.Add(fmWorkOrderEvent); MaintenanceEntities.SaveChanges(); return(fmWorkOrderEvent.WorkOrderEventId); }