Exemplo n.º 1
0
        /// <summary>
        /// Expand each data file in the comparison into the variable mapping
        /// and lists of variables and array variables
        /// </summary>
        /// <param name="comparison"></param>
        private VariableMappings mapFiles(TreatmentComparison comparison)
        {
            // There is no point in mapping if no concentration file was found
            if (comparison.ConcentrationFile == null)
            {
                return(null);
            }

            // Extract variables for concentration
            var extendedConc = this.extractVariables(comparison.ConcentrationFile);

            // If no array variables were found in concentration data is useless, return
            if (!extendedConc.ArrayVariables.Any())
            {
                return(null);
            }

            // Extract variables for pk and time
            var extendedPk   = this.extractVariables(comparison.PkFile);
            var extendedTime = comparison.UseTimeFile ?
                               this.extractVariables(comparison.TimeFile) : null;

            // Compute the list of common variables
            var commonVarNames = extendedPk.Variables.Intersect(extendedConc.Variables);
            var commonVars     = commonVarNames.Select(v => new Variable
            {
                Name   = v,
                Values = extendedConc.Data.AsEnumerable()
                         .Select(r => r[v].ToString()).Distinct().ToList()
            });
            var mappings = new VariableMappings {
                CommonVariables = commonVars.ToList()
            };

            // Add the array variables
            mappings.ArrayVariables = extendedConc.ArrayVariables;
            mappings.ArrayVariables.ForEach(v => v.File = "CONC");
            if (comparison.UseTimeFile)
            {
                extendedTime.ArrayVariables.ForEach(v => v.File = "TIME");
                mappings.ArrayVariables.AddRange(extendedTime.ArrayVariables);
            }

            // Map common variables
            mappings.CommonVariableMappings = this.mapCommonVariables(mappings);

            // Map array variables
            mappings.ArrayVariableMappings = this.mapConcentrationVariables(mappings.ArrayVariables);

            return(mappings);
        }
        string getTitleFromPath(TreatmentComparison comparison)
        {
            var trimmedPath = comparison.PkFile.Path;

            trimmedPath.Substring(trimmedPath.IndexOf(@"\m5\") + 4);
            var title = "";

            do
            {
                trimmedPath = Path.GetDirectoryName(trimmedPath);
                title       = Path.GetFileName(trimmedPath);
            } while (title != null && nonMeaningfulFolderNames.Contains(title.ToLower()));
            return(title);
        }
        public void Post(string submissionId, string projectName, [FromBody] TreatmentComparison comparison)
        {
            var generator = new OgdScriptGenerator(submissionId, projectName, comparison);

            generator.Create();

            var zipFilename = Path.ChangeExtension(generator.OutputFolder, "zip");

            if (File.Exists(zipFilename))
            {
                File.Delete(zipFilename);
            }
            ZipFile.CreateFromDirectory(generator.OutputFolder, zipFilename);
        }
Exemplo n.º 4
0
 public VariableMappings MapComparison([FromBody] TreatmentComparison comparison)
 {
     return(this.mapFiles(comparison));
 }