Exemplo n.º 1
0
        /// <summary>
        /// Возвращает чеки которые нужно выполнить на назначенный ресурс lifeLenghtSourcе
        /// если вернет null то значит входные данные не верны
        /// </summary>
        /// <param name="checkInput"></param>
        /// <param name="schedule"></param>
        /// <param name="lifeLenghtSource"></param>
        /// <returns></returns>
        public static MaintenanceCheckGroupCollection GetFirstCheckBySource(this IEnumerable <MaintenanceCheck> checkInput, bool schedule, int?lifeLenghtSource)
        {
            //if (lifeLenghtSource == null || lifeLenghtSource.Value == 0) return null;
            if (lifeLenghtSource == null)
            {
                return(null);
            }
            //сортировка коллекции по типу Shedule;
            MaintenanceCheckCollection sourceCollection = new MaintenanceCheckCollection(checkInput.Where(c => c.Schedule == schedule).ToList());
            //поиск минимального шага
            int?minStep = sourceCollection.FindMinStep(schedule);

            if (minStep == null)
            {
                return(null);
            }

            List <MaintenanceCheckGroupByType> checksGroups = new List <MaintenanceCheckGroupByType>(sourceCollection.GroupingCheckByType(minStep, schedule));

            if (checksGroups.Count == 0)
            {
                return(null);
            }

            return(GetCheckBySource(checksGroups, lifeLenghtSource, minStep, schedule));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Возвращает чеки которые нужно выполнить на следующем шаге(должен быть выполнен хотя бы один шаг)
        /// если вернет null то значит входные данные не верны
        /// </summary>
        /// <param name="checkInput"></param>
        /// <param name="schedule"></param>
        /// <returns></returns>
        public static MaintenanceCheckGroupCollection GetNextCheckByLastCompliane(this IEnumerable <MaintenanceCheck> checkInput, bool schedule)
        {
            //сортировка коллекции по типу Shedule;
            MaintenanceCheckCollection sourceCollection = new MaintenanceCheckCollection(checkInput.Where(c => c.Schedule == schedule).ToList());
            //поиск минимального шага
            int?minStep = sourceCollection.FindMinStep(schedule);

            if (minStep == null)
            {
                return(null);
            }

            List <MaintenanceCheckGroupByType> checksGroups = new List <MaintenanceCheckGroupByType>(sourceCollection.GroupingCheckByType(minStep, schedule));

            if (checksGroups.Count == 0)
            {
                return(null);
            }

            return(schedule
                                ? GetNextCheckSchedule(checkInput, checksGroups, minStep)
                                : GetNextCheckUnschedule(checkInput, checksGroups, minStep));
        }