예제 #1
0
        public IEnumerable <SqlPublishResult> GetChangeSqlPublishResults()
        {
            if (PublishResults == null)
            {
                return(Enumerable.Empty <SqlPublishResult>());
            }

            return(PublishResults
                   .Where(pair => pair.Value.Changed)
                   .Select(pair => pair.Value));
        }
예제 #2
0
        private void Run()
        {
            computationInfo.IsActive = true;
            State = StartableState.Running;

            try
            {
                var results = new List <GymResult <Exercisetype, Resulttype> >();

                double runs = athlitis.Count * dataset.Count;
                computationInfo.Length = 1.0 / runs;
                double counter = 0;
                foreach (var athlit in athlitis)
                {
                    athlit.ComputationInfo = ComputationInfo;
                    var res = new GymResult <Exercisetype, Resulttype>();
                    res.Athlete = athlit;
                    results.Add(res);
                    foreach (var exercise in dataset)
                    {
                        if (State == StartableState.CancelRequested)
                        {
                            PublishResults.Enter(results);
                            computationInfo.IsActive = false;
                            State = StartableState.Online;
                            return;
                        }
                        var startTime = DateTime.Now;
                        var result    = athlit.execute(exercise, ResultEvaluation);
                        result.StartTime = startTime;
                        result.EndTime   = DateTime.Now;
                        result.Challenge = exercise;
                        res.ExerciseResults.Add(result);
                        counter++;
                        computationInfo.From = counter / runs;
                    }
                }
                PublishResults.Enter(results);
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
            finally
            {
                computationInfo.IsActive = false;
                State = StartableState.Online;
            }
        }
예제 #3
0
        public SqlPublishResult GetPublishResult(int artifactId)
        {
            if (PublishResults == null)
            {
                PublishResults = new Dictionary <int, SqlPublishResult>();
            }

            SqlPublishResult result;

            if (!PublishResults.TryGetValue(artifactId, out result))
            {
                result = new SqlPublishResult(artifactId);
                PublishResults.Add(artifactId, result);
            }

            return(result);
        }