/// <summary>
        ///
        /// </summary>
        /// <param name="date"></param>
        /// <param name="failureTypes"></param>
        /// <param name="times"></param>
        /// <param name="devices"></param>
        /// <returns></returns>
        public static List <string> FindDevicesFailedBeforeDate(
            DateTime date,
            List <FailureType> failureTypes,
            List <DateTime> times,
            List <Device> devices)
        {
            var problematicDevices = new HashSet <int>();

            for (int i = 0; i < failureTypes.Count; i++)
            {
                if (Failure.IsFailureSerious(failureTypes[i].GetHashCode()) == 1 && Common.Earlier(times[i], date.Day, date.Month, date.Year) == 1)
                {
                    problematicDevices.Add(devices[i].DeviceId);
                }
            }

            var result = new List <string>();

            foreach (var device in devices)
            {
                if (problematicDevices.Contains(device.DeviceId))
                {
                    result.Add(device.Name);
                }
            }

            return(result);
        }
        /// <summary>
        /// </summary>
        /// <param name="day"></param>
        /// <param name="failureTypes">
        /// 0 for unexpected shutdown,
        /// 1 for short non-responding,
        /// 2 for hardware failures,
        /// 3 for connection problems
        /// </param>
        /// <param name="deviceId"></param>
        /// <param name="times"></param>
        /// <param name="devices"></param>
        /// <returns></returns>
        public static List <string> FindDevicesFailedBeforeDateObsolete(
            int day,
            int month,
            int year,
            int[] failureTypes,
            int[] deviceId,
            object[][] times,
            List <Dictionary <string, object> > devices)
        {
            var      result       = new List <string>();
            DateTime receivedDate = new DateTime(year, month, day);
            var      devicesList  = new List <Device>();
            var      failuresList = new List <Failure>();

            for (int i = 0; i < deviceId.Length; i++)
            {
                var newDevice = new Device()
                {
                    Name = devices[i]["Name"] as string, Id = (int)devices[i]["DeviceId"]
                };
                devicesList.Add(newDevice);
                var newFailure = new Failure()
                {
                    FailuredDevice    = newDevice,
                    FailureTime       = new DateTime((int)times[i][2], (int)times[i][1], (int)times[i][0]),
                    IsFailureCritical = Failure.IsFailureSerious(failureTypes[i])
                };
                failuresList.Add(newFailure);
            }
            result = FindDevicesFailedBeforeDate(receivedDate, failuresList, devicesList);
            return(result);
        }
        /// <summary>
        /// </summary>
        /// <param name="day"></param>
        /// <param name="failureTypes">
        /// 0 for unexpected shutdown,
        /// 1 for short non-responding,
        /// 2 for hardware failures,
        /// 3 for connection problems
        /// </param>
        /// <param name="deviceId"></param>
        /// <param name="times"></param>
        /// <param name="devices"></param>
        /// <returns></returns>
        public static List <string> FindDevicesFailedBeforeDateObsolete(
            int day,
            int month,
            int year,
            int[] failureTypes,
            int[] deviceId,
            object[][] times,
            List <Dictionary <string, object> > devices)
        {
            var problematicDevices = new HashSet <int>();

            for (int i = 0; i < failureTypes.Length; i++)
            {
                if (Failure.IsFailureSerious(failureTypes[i]) == 1 && Common.Earlier(times[i], day, month, year) == 1)
                {
                    problematicDevices.Add(deviceId[i]);
                }
            }

            var result = new List <string>();

            foreach (var device in devices)
            {
                if (problematicDevices.Contains((int)device["DeviceId"]))
                {
                    result.Add(device["Name"] as string);
                }
            }

            return(result);
        }
Пример #4
0
        public static List <string> FindDevicesFailedBeforeDate(
            DateTime curDate,
            Failure[] failures,
            Device[] devices)
        {
            var problematicDevices = new HashSet <int>();

            for (int i = 0; i < failures.Length; i++)
            {
                if (Failure.IsFailureSerious(failures[i].Type) && Common.Earlier(failures[i].FailureDate, curDate))
                {
                    problematicDevices.Add(failures[i].DeviceId);
                }
            }

            var result = new List <string>();

            foreach (var device in devices)
            {
                if (problematicDevices.Contains(device.Id))
                {
                    result.Add(device.Name);
                }
            }

            return(result);
        }
Пример #5
0
        public static List <string> FindDevicesFailedBeforeDate(DateTime currentDatetime, List <Failure> failures, List <Device> listOfDevices)
        {
            List <string> resultX = new List <string>();

            for (int i = 0; i < failures.Count; i++)
            {
                if (Failure.IsFailureSerious(Convert.ToInt32(failures[i].failure)) && failures[i].Earlier(currentDatetime))
                {
                    foreach (var item in listOfDevices)
                    {
                        if (item.ID == failures[i].device)
                        {
                            resultX.Add(item.Name);
                        }
                    }
                }
            }

            return(resultX);
        }