You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.2 KiB

using BrilliantSightClient.Model.Entity.ApiEntity;
using BrilliantSightClient.Model.GradeLevel.Entity;
using BrilliantSightClient.Model.GradeLevel.Entity.DatabaseEntity;
using BrilliantSightClient.Model.GradeLevel.Entity.Enum;
using BrilliantSightClient.Model.GradeLevel.Exceptions;
using BrilliantSightClient.Model.GradeLevel.Helper;
using BrilliantSightClient.Model.GradeResult.Entity;
using BrilliantSightClient.Model.GradeResult.Entity.Enums;
using BrilliantSightClient.Model.Helper;
namespace BrilliantSightClient.Model.GradeLevel;
public class GradeLevelCalculator
{
AlgorithmResultEntity _diamondResult;
GradeLevelMst _masterLevel;
private List<GradeLevelSet> _gradeLevelCutSets;
private List<GradeLevelSet> _gradeLevelSymSets;
public GradeLevelCalculator(AlgorithmResultEntity entity)
{
_diamondResult = entity;
var masterSql = $"select * from GRADE_LEVEL_MST where NAME = '{entity.Standard}' and RUNMODE = {Common.RunMode} or RUNMODE = -1 " +
$" and SHAPE = {EntityHelper.GetValueFromName<DiamondShape>(entity.Shape)} and CROWN = {entity.CrownType} and PAVILION = {entity.PavType}" ;
var masterLevel = DataBaseHelper.ExecuteQuery<GradeLevelMst>(masterSql);
if (masterLevel.Count == 0)
throw new NotGradeSetException();
_masterLevel = masterLevel.First();
var setsSql = $"select * from GRADE_LEVEL_SET where MST_SIGN = '{_masterLevel.Sign}'";
var levelSets = DataBaseHelper.ExecuteQuery<GradeLevelSet>(setsSql);
if (masterLevel.Count == 0)
throw new NotGradeSetException();
_gradeLevelCutSets = levelSets.FindAll(x => x.Set_Type == GradeType.Cut.GetValue());
_gradeLevelSymSets = levelSets.FindAll(x => x.Set_Type == GradeType.Sym.GetValue());
}
public GradeLevelSet GetCutGradeLevelSet(string key, double maxVal, double minVal)
{
return null;
}
public GradeLevelSet GetCutTotalGradeLevelSet(List<DataInfo> dataInfos)
{
return null;
}
public GradeLevelSet GetSymGradeLevelSet(string key, double devVal)
{
return null;
}
public GradeLevelSet GetSymTotalGradeLevelSet(List<DataInfo> dataInfos)
{
return null;
}
}