Files
zszq-trs/YLErpDAL/Modules/UnderlyingModule/UnderlyingParameterService.cs
T
2024-05-09 14:06:26 +08:00

69 lines
2.1 KiB
C#

using YLErp.BLL;
namespace YLErp.Modules.UnderlyingModule
{
/// <summary>
/// 报价参数服务
/// </summary>
public class UnderlyingParameterService : YLBaseService
{
public UnderlyingParameterService(OptUserInfo userInfo) : base(userInfo)
{
}
/// <summary>
/// 初始化标的报价参数
/// </summary>
public List<underlying_parameter> InitialUnderlyingParameter(int underlyingId)
{
var list = DbContext.underlying_parameter.AsNoTracking()
.Where(u => u.UnderlyingId == underlyingId).ToList();
//如果没有报价参数,则新增
if (!list.Any())
{
underlying_parameter.defaultQuoteTypes.ForEach(t =>
{
underlying_parameter up = new underlying_parameter() { NoRiskRate = valuedateBLL.SystemDate.RiskFreeRate * 0.01, Price = 0, Gamma = 0, Rho = 0, Vega = 0, Theta = 0, Delta = 0, UnderlyingId = underlyingId, Type = t, OptDate = DateTime.Now, OptId = UserId, OptName = UserName };
DbContext.underlying_parameter.Add(up);
list.Add(up);
});
DbContext.SaveChanges();
}
return list.OrderBy(u => u.Type).ToList();
}
/// <summary>
/// 保存报价参数
/// </summary>
public int SaveDatas(IEnumerable<underlying_parameter> list)
{
if (list is null)
{
return 0;
}
foreach (var data in list)
{
if (data == null) continue;
var model = DbContext.underlying_parameter.Find(data.id);
if (model == null)
{
throw new ServiceException("更新失败,数据不存在,id:" + data.id);
}
YieldChain.Helpers.ObjectHelper.MapValues(model, data, "ValidState");
model.OptId = UserId;
model.OptName = UserName;
model.OptDate = DateTime.Now;
}
return DbContext.SaveChanges();
}
}
}