Exemplo n.º 1
0
        public override Task <Experiment> TryFindExperiment(int id)
        {
            ExperimentEntity entity;

            if (!storage.GetExperiments().TryGetValue(id, out entity))
            {
                return(null);
            }

            ExperimentDefinition def    = RowToDefinition(entity);
            ExperimentStatus     status = GetStatus(id, entity);

            return(Task.FromResult(new Experiment {
                Definition = def, Status = status
            }));
        }
Exemplo n.º 2
0
        public override Task <IEnumerable <Experiment> > FindExperiments(ExperimentFilter?filter = default(ExperimentFilter?))
        {
            IEnumerable <KeyValuePair <int, ExperimentEntity> > experiments =
                storage.GetExperiments()
                .ToArray();

            if (filter.HasValue)
            {
                experiments =
                    experiments
                    .Where(q =>
                {
                    var id = q.Key;
                    var e  = q.Value;
                    return((filter.Value.BenchmarkContainerEquals == null || e.BenchmarkDirectory == filter.Value.BenchmarkContainerEquals) &&
                           (filter.Value.CategoryEquals == null || e.Category == null || e.Category.Contains(filter.Value.CategoryEquals)) &&
                           (filter.Value.ExecutableEquals == null || e.Executable == null || e.Executable == filter.Value.ExecutableEquals) &&
                           (filter.Value.ParametersEquals == null || e.Parameters == null || e.Parameters == filter.Value.ParametersEquals) &&
                           (filter.Value.NotesEquals == null || e.Note == null || e.Note.Contains(filter.Value.NotesEquals)) &&
                           (filter.Value.CreatorEquals == null || e.Creator == null || e.Creator.Contains(filter.Value.CreatorEquals)));
                })
                    .OrderByDescending(q => q.Value.Submitted);
            }

            var results = experiments.Select(kvp =>
            {
                int id = kvp.Key;
                ExperimentEntity expRow  = kvp.Value;
                ExperimentDefinition def = RowToDefinition(expRow);
                ExperimentStatus status  = GetStatus(id, expRow);
                return(new Experiment {
                    Definition = def, Status = status
                });
            });

            return(Task.FromResult(results));
        }