public List <PropertyTable> GetData(Specs s, BindModel predictor) { using (var db = new NIRCeneterEntities()) { var r = s.OilData; if (r != null) { return(r); } if (s == null || s.ResultObj == null) { return(null); } var pr = s.ResultObj; if (s.ResultObj.MethodType == PredictMethod.Integrate && predictor != null) { var papi = predictor.PredictForAPI(s.Spec, true); if (papi.MethodType == PredictMethod.Fitting || papi.MethodType == PredictMethod.Identify) { pr = papi; } } r = Serialize.DeepClone <List <PropertyTable> >(this._initP); OilInfoBEntity oil = null; switch (pr.MethodType) { case NIR.Models.PredictMethod.Identify: oil = getByName(s, pr, ref r); break; case NIR.Models.PredictMethod.Fitting: oil = getByRate(s, pr, ref r); break; case NIR.Models.PredictMethod.PLSBind: oil = getByProperties(s, pr, ref r); break; default: break; } GetNIRData(s, oil, ref r); if (oil != null) { r = r.OrderBy(d => (int)d.Table).ToList(); db.OilData.AddObject(new OilData() { SID = s.ID, Data = Serialize.ObjectToByte(r) }); db.SaveChanges(); } else { foreach (var t in r) { foreach (var dd in t.Datas) { if (dd.Value == 0) { dd.Value = double.NaN; } } } } return(r); } }
public bool APIGetData(BindModel predictor, ref Specs s) { log.Info("db before"); using (var db = new NIRCeneterEntities()) { var r = s.OilData; if (r != null) { return(true); } log.Info("db after"); if (s == null || s.ResultObj == null) { return(false); } var pr = s.ResultObj; if (s.ResultObj.MethodType == PredictMethod.Integrate && predictor != null) { var papi = predictor.PredictForAPI(s.Spec, true); if (papi.MethodType == PredictMethod.Fitting || papi.MethodType == PredictMethod.Identify) { pr = papi; } } r = Serialize.DeepClone <List <PropertyTable> >(this._initP); OilInfoBEntity oil = null; switch (pr.MethodType) { case NIR.Models.PredictMethod.Identify: oil = getByName(s, pr, ref r); break; case NIR.Models.PredictMethod.Fitting: oil = getByRate(s, pr, ref r); break; case PredictMethod.Integrate: case NIR.Models.PredictMethod.PLSBind: oil = getByProperties(s, pr, ref r); break; default: break; } GetNIRData(s, oil, ref r); if (oil != null) { r = r.OrderBy(d => (int)d.Table).ToList(); db.OilData.AddObject(new OilData() { SID = s.ID, Data = Serialize.ObjectToByte(r) }); db.SaveChanges(); s.OilData = r; return(true); } else { s.OilData = null; } return(false); } }