using YLErp.BLL; namespace YLErp.Modules.UnderlyingModule { /// /// 报价参数服务 /// public class UnderlyingParameterService : YLBaseService { public UnderlyingParameterService(OptUserInfo userInfo) : base(userInfo) { } /// /// 初始化标的报价参数 /// public List 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(); } /// /// 保存报价参数 /// public int SaveDatas(IEnumerable 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(); } } }