From e4e753c64a661539199dcb4dab0e06f898a6a155 Mon Sep 17 00:00:00 2001 From: James Kolpack Date: Sat, 4 Jul 2020 21:14:10 -0400 Subject: [PATCH] Add filename for LeafInputData details --- WebCms/App_Start/AutoMapperConfig.cs | 6 ++- WebCms/Models/LeafInputDataViewModel.cs | 9 ++++ .../LeafInputDataViewModels.cshtml | 52 +++++-------------- 3 files changed, 26 insertions(+), 41 deletions(-) diff --git a/WebCms/App_Start/AutoMapperConfig.cs b/WebCms/App_Start/AutoMapperConfig.cs index fec8169..42c4cb8 100644 --- a/WebCms/App_Start/AutoMapperConfig.cs +++ b/WebCms/App_Start/AutoMapperConfig.cs @@ -27,7 +27,9 @@ namespace LeafWeb.WebCms.App_Start opt => opt.ResolveUsing(src => src.OutputFiles.Any(o => o.IsLeafChartFile))); // LeafInputData - Mapper.CreateMap(); + Mapper.CreateMap() + .ForMember(dest => dest.Filename, opt => opt.MapFrom(src => src.LeafOutputFile.Filename)); + //.ForMember(dest => dest.Filename, opt => opt.ResolveUsing(src => src.LeafOutputFile.Filename)); // LeafInputDataCurveViewModel Mapper.CreateMap(); @@ -39,6 +41,8 @@ namespace LeafWeb.WebCms.App_Start Mapper.CreateMap() .ForMember(dest => dest.Status, opt => opt.MapFrom(li => li.Status.ToString())); + // VERY WEIRD. This next part "fixes" some map configuration issue with LeafInputDataCurve + //AutoMapper.AutoMapperMappingException {"Missing type map configuration or unsupported mapping. // //Mapping types: diff --git a/WebCms/Models/LeafInputDataViewModel.cs b/WebCms/Models/LeafInputDataViewModel.cs index b04b28c..5ce2386 100644 --- a/WebCms/Models/LeafInputDataViewModel.cs +++ b/WebCms/Models/LeafInputDataViewModel.cs @@ -1,4 +1,6 @@ using System.Collections.Generic; +using System.IO; +using System.Text.RegularExpressions; using AutoMapper; using LeafWeb.Core.Entities; using LeafWeb.Core.Utility; @@ -11,11 +13,18 @@ namespace LeafWeb.WebCms.Models /// public class LeafInputDataViewModel { + private static readonly Regex FilenamePrefixLength = new Regex(@"^(\d{14}clean)(.*)$") ; public int Id { get; set; } [ParseInfo(3, alternateTitle: "Site name in full", exampleValue: "Your site's identifier / name")] public string SiteName { get; set; } + public string Filename { get; set; } + + public string FilenameDatePrefix => FilenamePrefixLength.IsMatch(Filename) ? FilenamePrefixLength.Replace(Filename, "$1") : string.Empty; + + public string FilenameOriginal => FilenamePrefixLength.IsMatch(Filename) ? FilenamePrefixLength.Replace(Filename, "$2") : Filename; + public LeafInputDataSiteViewModel Site { get; set; } public List Data { get; set; } diff --git a/WebCms/Views/Shared/DisplayTemplates/LeafInputDataViewModels.cshtml b/WebCms/Views/Shared/DisplayTemplates/LeafInputDataViewModels.cshtml index f85738b..d3c906a 100644 --- a/WebCms/Views/Shared/DisplayTemplates/LeafInputDataViewModels.cshtml +++ b/WebCms/Views/Shared/DisplayTemplates/LeafInputDataViewModels.cshtml @@ -11,56 +11,28 @@ @RendDistinctValues("Latitude [°]", Model.Select(m => m.Site.Latitude?.ToString())) @RendDistinctValues("Longitude [°]", Model.Select(m => m.Site.Longitude?.ToString())) @RendDistinctValues("Elevation [m]", Model.Select(m => m.Site.Elevation?.ToString())) -@*@RendDistinctValues("CO2S", - Model.Select(m => - m.SiteName + " (" + m.Id + "): " + - string.Join(", ", - m.Data?.Select(d => d.CO2S?.ToString()) - ) - ), "
" - ) -@RendDistinctValues("CO2S Min", Model.Select(m => - m.SiteName + " (" + m.Id + "): " + - m.Data?.Min(d => d.CO2S).ToString()), "
") -@RendDistinctValues("CO2S Average", Model.Select(m => - m.SiteName + " (" + m.Id + "): " + - m.Data?.Average(d => d.CO2S).ToString()), "
") -@RendDistinctValues("CO2S Max", Model.Select(m => - m.SiteName + " (" + m.Id + "): " + - m.Data?.Max(d => d.CO2S).ToString()), "
") -@RendDistinctValues("CO2S Range", Model.Select(m => - m.SiteName + " (" + m.Id + "): " + - (m.Data?.Max(d => d.CO2S) - - m.Data?.Min(d => d.CO2S))), "
") -@RendValue("CO2S Min Range", Model.Min(m => - m.Data?.Max(d => d.CO2S) - - m.Data?.Min(d => d.CO2S))?.ToString())*@ -@RendValue("CO2 response curves (CO2S) Max range", Model.Max(m => - m.Data?.Max(d => d.CO2S) - - m.Data?.Min(d => d.CO2S))?.ToString()) +@RendValueRange("CO2 response curves (CO2S) range [umol/mol]", curveData => curveData.CO2S) +@RendValueRange("Light response curves (PARi) range [umol/m2/s]", curveData => curveData.PARi) +@RendValueRange("Temperature response curves (Tleaf) range [oC]", curveData => curveData.Tleaf) +@RendValueRange("Fluorometry measurements (PhiPS2) range", curveData => curveData.PhiPS2) -@RendValue("Light response curves (PARi) Max range", Model.Max(m => - m.Data?.Max(d => d.PARi) - - m.Data?.Min(d => d.PARi))?.ToString()) - -@RendValue("Temperature response curves (Tleaf) Max Range", Model.Max(m => - m.Data?.Max(d => d.Tleaf) - - m.Data?.Min(d => d.Tleaf))?.ToString()) - -@RendValue("Fluorometry measurements (PhiPS2) Max Range", Model.Max(m => - m.Data?.Max(d => d.PhiPS2) - - m.Data?.Min(d => d.PhiPS2))?.ToString()) +@helper RendValueRange(string label, Func getVar) +{ + @RendDistinctValues(label, Model.Select(m => + m.FilenameOriginal + ": " + + (m.Data?.Max(getVar) - m.Data?.Min(getVar))), "
") +} @helper RendValue(string label, string value) {
-
+
@Html.Raw(label)
- @Html.Raw(@value) + @Html.Raw(value)
}