Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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();
                }
            }
        }
Esempio n. 3
0
        /// <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);
        }