private Unit Handler(WriteObservedCommand request, CancellationToken token) { var info = Directory.CreateDirectory(_file.ExportPath + "\\obs"); using var stream = new FileStream(info.FullName + $"\\{request.FileName}_Observed.csv", FileMode.Create); using var writer = new StreamWriter(stream); var builder = new StringBuilder(); using var _context = _factory.Create(); var data = _context.PlotData.Where(p => request.IDs.Contains(p.Plot.Treatment.ExperimentId)) .OrderBy(p => p.Date); var traits = data.Select(p => p.Trait).Distinct().ToArray(); builder.AppendLine($"SimulationName,Date,{string.Join(",", traits.Select(t => t.Name))}"); foreach (int id in request.IDs) { WriteExperimentData(_context.Experiments.Find(id), data.AsEnumerable(), traits, builder); } writer.Write(builder.ToString()); writer.Close(); return(Unit.Value); }
private TResponse TryRun(TRequest request, CancellationToken cancellationToken) { request.token = cancellationToken; using var context = _factory.Create(); request._context = context; var result = request.Run(); return(result); }