using Newtonsoft.Json;
using YLErp.Enums;
using YLErp.Modules.CalculationLogModule;
namespace YLErp.Web.Controllers
{
public class CalculationLogController : BaseController
{
// GET: CalculationLog
[Route("calclog/")]
public ActionResult Index()
{
ICalculationLogService calculationLogService = new CalculationLogService();
var logs = calculationLogService.GetAllLogs();
logs.Reverse();
CalculationLogListViewModel viewModel = new CalculationLogListViewModel();
viewModel.calculationLogs = logs;
viewModel.Name = "test";
return View("CalculationLogList", viewModel);
}
///
/// 查询日志详情
///
///
///
public ActionResult CalculationLogDetail(string logNum)
{
ICalculationLogService calculationLogService = new CalculationLogService();
var log= calculationLogService.GetLog(logNum);
string logJson= JsonConvert.SerializeObject(log, Formatting.Indented);
CalculationLogDetailModel mdoel = new CalculationLogDetailModel { LogJson = logJson };
return View("CalculationLogDetail", mdoel);
}
///
/// 清除所有的日志
///
///
public JsonResult ClearAllLogs()
{
ICalculationLogService calculationLogService = new CalculationLogService();
calculationLogService.ClearAll();
return JsonSuccess("已清除成功");
}
///
/// 配置参数
///
///
public ActionResult CalculationLogConfig()
{
ICalculationLogService calculationLogService = new CalculationLogService();
var config = calculationLogService.GetConfig();
CalculationLogConfigModel model = new CalculationLogConfigModel()
{
TotalCountMaxLimit = config.TotalCountMaxLimit,
Pricing = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.Pricing),
RealtimeRisk = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.RealtimeRisk),
ScenarioCalc = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.ScenarioCalc),
InitialMargin = config.ScenariosOfCalcLog.Contains(CalcScenarioEnum.InitialMargin),
};
return View("CalculationLogConfig", model);
}
///
/// 修改参数
///
///
///
[HttpPost]
public JsonResult CalculationLogConfigEditJson(CalculationLogConfigEditRequest req)
{
ICalculationLogService calculationLogService = new CalculationLogService();
var config= calculationLogService.GetConfig();
List scenariosOfCalcLog = new List();
if (req.Pricing)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.Pricing);
}
if (req.RealtimeRisk)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.RealtimeRisk);
}
if (req.ScenarioCalc)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.ScenarioCalc);
}
if (req.InitialMargin)
{
scenariosOfCalcLog.Add(CalcScenarioEnum.InitialMargin);
}
config.ScenariosOfCalcLog = scenariosOfCalcLog;
calculationLogService.Setup(config);
return JsonSuccess("已修改");
}
///
/// 修改参数请求
///
public class CalculationLogConfigEditRequest
{
///
/// 总日志数量限制
///
public int TotalCountMaxLimit { get; set; }= 5000;
///
/// 定价开关
///
public bool Pricing { get; set; }=false;
///
/// 实时风险开关
///
public bool RealtimeRisk { get; set; } = false;
///
/// 场景开关
///
public bool ScenarioCalc { get; set; } = false;
///
/// 初始预付金开关
///
public bool InitialMargin { get; set; } = false;
}
}
}