private void Write(OmaReaderSingleResult OmaReaderSingleResult, computeLensResponseDTO response, OmaEvent OmaEvent)
        {
            AbstractSurfaceOmaWriter <threeDimensionalPointDTO> surfaceOmaWriter;
            OutputFormat outputFormat;

            outputFormat = Enum.TryParse(configuration.AppSettings.Settings[OUTPUT_FORMAT].Value, out outputFormat) ? outputFormat : OutputFormat.sdf;
            switch (outputFormat)
            {
            case OutputFormat.sdf:
                surfaceOmaWriter = SDFWriter;
                break;

            case OutputFormat.hmf:
                surfaceOmaWriter = HMFWriter;
                break;

            default:
                surfaceOmaWriter = XYZWriter;
                break;
            }
            surfaceOmaWriter.Write(OmaReaderSingleResult, response);
            string surfaceFilePath = surfaceOmaWriter.SurfaceFilePath(OmaReaderSingleResult);
            IFilePathOmaBuilder filePathOmaBuilder;

            switch (outputFormat)
            {
            case OutputFormat.sdf:
                filePathOmaBuilder = new SingleFilePathOmaBuilder(surfaceFilePath);
                break;

            default:
                switch (OmaReaderSingleResult)
                {
                case OmaReaderLeftResult OmaReaderLeftResult:
                    filePathOmaBuilder = new DoubleFilePathOmaBuilder(null, surfaceFilePath);
                    break;

                default:
                    filePathOmaBuilder = new DoubleFilePathOmaBuilder(surfaceFilePath, null);
                    break;
                }
                break;
            }
            AnalysisWriter.Write(OmaReaderSingleResult, response);
            OmaWriter.Write(OmaReaderSingleResult, response, surfaceFilePath, filePathOmaBuilder);
            Logger.LogEvent(OmaEvent, EventLogEntryType.Information, EventTypes.Result);
        }
 private void Stop(StudentAction action)
 {
     Time.timeScale = 0f;
     extender.OnStop(action);
     //calculate
     calculator.CalculateScores(action);
     //screenshot
     if (takeScreenShot)
     {
         writer.CaptureScreenShotPNG(calculator.ScreenShotName);
     }
     //record
     writer.Write(calculator.CurrentLine);
     done = true;
 }