private static double SafeParse(SampleResultSetDto dto, string field) { object value = dto.GetType().GetProperty(field).GetValue(dto); if (value == null) { return(0.0); } double res; if (double.TryParse(value.ToString(), out res)) { return(res); } return(0.0); }
public static SampleResultSetDto CreateSampleResultsItemByGroupFunc(IList <SampleResultSetDto> sampleResultSets, GroupFunc func) { var item = new SampleResultSetDto { IsRow = true }; switch (func) { case GroupFunc.Average: item.Title = "Сред.балл"; break; case GroupFunc.Max: item.Title = "Макс.балл"; break; case GroupFunc.Min: item.Title = "Мин.балл"; break; default: throw new ArgumentOutOfRangeException("func"); } SampleResultSetDto[] query = sampleResultSets.Where(row => row.IsRow && !(row.Title.ToLower().Contains("макс.") || row.Title.ToLower().Contains("мин.") || row.Title.ToLower().Contains("сред."))).ToArray(); for (int i = 1; i < 11; i++) { string field = "Value" + i; if (!string.IsNullOrEmpty(sampleResultSets.Aggregate(string.Empty, (current, x) => current + GetValue(x, field)))) { double result; switch (func) { case GroupFunc.Average: result = query.Average(row => SafeParse(row, field)); break; case GroupFunc.Max: result = query.Max(row => SafeParse(row, field)); break; case GroupFunc.Min: result = query.Min(row => SafeParse(row, field)); break; default: throw new ArgumentOutOfRangeException("func"); } item.GetType().GetProperty(field).SetValue(item, result.ToString(CultureInfo.InvariantCulture)); } } return(item); }
private static string GetValue(SampleResultSetDto dto, string field) { object value = dto.GetType().GetProperty(field).GetValue(dto); return(value == null ? string.Empty : value.ToString()); }
public void UpdateSampleResultSet(SampleResultSetDto entity) { }
public SampleResultSetDto InsertSampleResultSet(SampleResultSetDto entity) { return(new SampleResultSetDto { Rn = ++NextRn }); }
public void UpdateSampleResultSet(SampleResultSetDto entity) { UpdateEntity <SampleResultSet, SampleResultSetDto>(entity); }
public SampleResultSetDto InsertSampleResultSet(SampleResultSetDto entity) { return(AddEntity <SampleResultSet, SampleResultSetDto>(entity)); }