public bool hasErrors(out string error)
        {
            error = string.Empty;
            if (Processes.Count < this.ProcessesAmount || Processes.Any(i => i.Operations.Count == 0))
            {
                error += "\nDefine operation sequences for all processes.";
            }
            if (Buffers.Count < this.Machines)
            {
                error += "\nDefine buffers.";
            }
            if (Inputs.Count < this.ProcessesAmount)
            {
                error += "\nDefine inputs.";
            }

            if (string.IsNullOrEmpty(error))
            {
                return(false);
            }
            else
            {
                error = "Input data error." + error;
                return(true);
            }
        }
 private void Init()
 {
     SelectedProcess = Processes.FirstOrDefault();
     SelectedProcess.IsCountingNotVisitedOutputLinesOn = false;
     StartProcessesCommand = new Command(StartProcesses, () => Processes.Any(x => !x.InProgress));
     StopProcessesCommand  = new Command(StopProcesses, () => Processes.Any(x => x.InProgress));
 }
Exemple #3
0
        /// <summary>
        /// Генирируем имя процесса по шаблону Пр_{порядковый номер}.
        /// </summary>
        /// <returns></returns>
        string ChangeName()
        {
            var counter = 0;
            var name    = $"Пр_{++counter}";

            while (Processes.Any(p => p.Name == (name = $"Пр_{counter++}")))
            {
            }
            return(name);
        }
        private void OnTimerElapsed(object sender, ElapsedEventArgs e)
        {
            var a = new Process();

            a.GetHashCode();

            var procs       = Process.GetProcesses();
            var procsToSkip = procs.Where(p => Processes.Any(pr => pr.Process.Id == p.Id));
            var procsToAdd  = procs.Where(p => !Processes.Any(pr => pr.Process.Id == p.Id));
        }
Exemple #5
0
        private void Init()
        {
            SelectedProcess = Processes.FirstOrDefault();
            SelectedProcess.IsCountingNotVisitedOutputLinesOn = false;

            StartProcessesCommand = new Command(StartProcesses, () => Processes.Any(x => !x.InProgress));
            StopProcessesCommand  = new Command(StopProcesses, () => Processes.Any(x => x.InProgress));
            //todo
            ViewReportCommand = new Command(ViewReport);
            //ViewReportCommand = new Command(ViewReport,() => Processes.Any(x => !x.InProgress && x.MeasureSettings.Any(y=>y.MeasuredUnits.Any())));
        }
Exemple #6
0
        public bool HasModelToUpdate(StoredObjectInfo newModel)
        {
            RWLock.EnterReadLock();

            try
            {
                return(Processes.Any(p => p.Language == newModel.Language && p.Type == newModel.ModelType && p.Tag == newModel.Tag && p.Version < newModel.Version));
            }
            finally
            {
                RWLock.ExitReadLock();
            }
        }
Exemple #7
0
        public bool HasModel(StoredObjectInfo model, bool matchVersion = true)
        {
            RWLock.EnterReadLock();

            try
            {
                return(Processes.Any(p => p.Language == model.Language && p.Type == model.ModelType && p.
                                     Tag == model.Tag && (!matchVersion || p.Version == model.Version)));
            }
            finally
            {
                RWLock.ExitReadLock();
            }
        }