Я просто вкратце объясню, что у меня есть.
У меня есть список данных конфигурации, как это -
Теперь я пытаюсь написать код, чтобы выяснить, какой набор / конфиг выпадает у определенного пользователя, исходя из объема его покупок. например если он совершил продажу 23000 баксов, он становится продавцом G01. Если он заработал 51000 баксов, значит, он класс G04. Если бы он сделал продажу 29000 долларов, он был бы в классе G02. Или, если он сделал 71000, он, очевидно, класс G05. Как это. Чтобы объяснить мой вариант использования.
Код / логика, которую я написал, был что-то вроде -
public JsonResult CustomerGradeByID([FromBody]decimal saleAmt)
{
try
{
var cGrade = CustomerGrade(Convert.ToDecimal(saleAmt));
return Json(cGrade);
}
catch (Exception exp)
{
return Json(exp.GetBaseException());
}
}
protected string CustomerGrade(decimal salesTot)
{
try
{
var grades = _appDbContext.CustomerGrades.ToList();
CustomerGrade cg = grades.Aggregate((a, b) => a.grade_minsaleamount < salesTot && salesTot < b.grade_minsaleamount ? a : b);
var gdName = cg.grade_name.ToString();
return gdName;
}
catch(Exception exp)
{
throw exp;
}
}
Не беспокойтесь о _appdbcontext и обо всем, что я просто извлекаю и заполняю из своей базы данных, где хранится эта таблица. Видимо логика для CustomerGrade неверна. Потому что это дает мне всевозможные результаты. Для продажи 33000 долларов он дает G01, для 61000 долларов он дает G04 и аналогичные другие всевозможные ошибочные результаты. Я пытался использовать лямбда-агрегат. Но, похоже, это неверно.
Можете ли вы помочь мне усовершенствовать эту логику, пожалуйста? Пуленепробиваемая логика для этого сценария? Это было бы очень полезно для меня!
Спасибо всем,
Это мой фактический набор данных -