Files
zszq-trs/YLErpDAL/Modules/ExchangeOptionTradeModule/ExchangeOptionVolSaveService.cs
2024-05-09 14:06:26 +08:00

54 lines
1.7 KiB
C#

namespace YLErp.Modules.ExchangeOptionTradeModule
{
/// <summary>
/// 场内期权波动率保存服务
/// </summary>
public class ExchangeOptionVolSaveService : YLBaseService
{
public ExchangeOptionVolSaveService(OptUserInfo userInfo) : base(userInfo)
{
}
/// <summary>
/// 保存场内期权波动率
/// </summary>
public int SaveExchangeOptionVol(string optionCode, DateTime valueDate, double volValue, ExchangeOptionVolUseFlag useFlag = ExchangeOptionVolUseFlag.FixedValue)
{
if (string.IsNullOrWhiteSpace(optionCode))
{
throw new ArgumentException("参数不能为空值", nameof(optionCode));
}
if (useFlag == ExchangeOptionVolUseFlag.FixedValue && volValue < 0)
{
throw new ArgumentException("请设置合理的场内期权波动率", nameof(volValue));
}
valueDate = valueDate.Date;
var record = DbContext.exchange_option_vol.FirstOrDefault(x => x.OptionCode == optionCode && x.ValueDate == valueDate);
if (record == null)
{
record = new ExchangeOptionVol()
{
OptionCode = optionCode,
ValueDate = valueDate,
Volatility = volValue
};
DbContext.exchange_option_vol.Add(record);
}
else if (useFlag == ExchangeOptionVolUseFlag.FixedValue)
{
record.Volatility = volValue;
}
record.UseFlag = useFlag;
record.OptId = UserId;
record.OptDate = OptDate;
return DbContext.SaveChanges();
}
}
}