using System.Collections.Generic;
|
using System.Linq;
|
|
namespace IStation.Service
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public partial class AnalysisParameter
|
{
|
/// <summary>
|
///
|
/// </summary>
|
/// <returns></returns>
|
public static Dictionary<string, List<Dto.AnalysisParameter>> GetDictCache()
|
{
|
return AnalysisParameterCacheHelper.GetSet(() =>
|
{
|
var dal = new DAL.AnalysisParameter();
|
var entity_dict = dal.GetAllTable();
|
if (entity_dict == null || !entity_dict.Any())
|
{
|
return new Dictionary<string, List<Dto.AnalysisParameter>>();
|
}
|
|
var model_dict = new Dictionary<string, List<Dto.AnalysisParameter>>();
|
for (int i = 0; i < entity_dict.Count; i++)
|
{
|
var entity_item = entity_dict.ElementAt(i);
|
model_dict[entity_item.Key] = entity_item.Value;
|
}
|
return model_dict;
|
});
|
}
|
|
|
/// <summary>
|
/// 查询
|
/// </summary>
|
public List<Dto.AnalysisParameter> GetList(string run_flag)
|
{
|
var dal = new DAL.AnalysisParameter();
|
var tableName = dal.GetTableName(run_flag);
|
var dict = GetDictCache();
|
if (!dict.ContainsKey(tableName))
|
return default;
|
|
return dict[tableName]?.OrderBy(x => x.Power).ToList();
|
}
|
|
/// <summary>
|
/// 查询
|
/// </summary>
|
public List<Dto.AnalysisParameter> GetList(string run_flag, double pressure_diff)
|
{
|
var dal = new DAL.AnalysisParameter();
|
var tableName = dal.GetTableName(run_flag);
|
var dict = GetDictCache();
|
if (!dict.ContainsKey(tableName))
|
return default;
|
|
for (int i = 0; i < 3; i++)
|
{
|
pressure_diff += i * 0.1;
|
var list = dict[tableName]?
|
.Where(x => x.PressureDiff == pressure_diff)
|
.OrderBy(x => x.Power)
|
.ToList();
|
if (list==null || !list.Any())
|
{
|
|
}
|
if (list != null && list.Any())
|
{
|
return list;
|
}
|
}
|
|
return null;
|
}
|
|
/// <summary>
|
/// 查询
|
/// </summary>
|
public List<Dto.AnalysisParameter> GetList(string run_flag, double min_hz, double max_hz, double pressure_diff)
|
{
|
var dal = new DAL.AnalysisParameter();
|
var tableName = dal.GetTableName(run_flag);
|
var dict = GetDictCache();
|
if (!dict.ContainsKey(tableName))
|
return default;
|
|
|
for (int i = 0; i < 3; i++)
|
{
|
pressure_diff += i * 0.1;
|
var list = dict[tableName]?
|
.Where(x => x.Hz >= min_hz && x.Hz <= max_hz && x.PressureDiff == pressure_diff)
|
.OrderBy(x => x.Power)
|
.ToList();
|
if (list == null || !list.Any())
|
{
|
|
}
|
if (list != null && list.Any())
|
{
|
return list;
|
}
|
}
|
|
|
return null;
|
}
|
|
|
/// <summary>
|
/// 查询
|
/// </summary>
|
public Dto.AnalysisParameter GetMinPressureDiff(string run_flag)
|
{
|
var dal = new DAL.AnalysisParameter();
|
var tableName = dal.GetTableName(run_flag);
|
var dict = GetDictCache();
|
if (!dict.ContainsKey(tableName))
|
return default;
|
return dict[tableName]?.OrderBy(x => x.PressureDiff).FirstOrDefault();
|
}
|
|
}
|
}
|