69 lines
2.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|