public JsonResult Save(string json) { var list = JsonHelper.Deserialize <List <TrainMoment> >(json); if (list == null || !list.Any()) { return(Json(ErrorModel.OperateSuccess)); } // 对列车时刻的更新只存在两种情况 // 1 某车次的列车时刻第一次添加,此时将所有车站的列车时刻表插入数据库 // 2 对某车次的某些车站的列车时刻进行更新 var trainMomentBll = new TrainMomentBll(); var tableName = typeof(TrainMoment).Name; var isInsert = list[0].Id == 0; if (isInsert) { var maxId = trainMomentBll.GetMaxId(); trainMomentBll.BulkInsert(list); DataUpdateLog.BulkUpdate(tableName, (int)maxId); return(Json(ErrorModel.OperateSuccess)); } var success = trainMomentBll.ExecuteTransation(() => { foreach (var item in list) { if (!trainMomentBll.Update(item)) { return(false); } DataUpdateLog.SingleUpdate(tableName, item.Id, DataUpdateType.Update); } return(true); }); if (success) { return(Json(ErrorModel.OperateSuccess)); } return(Json(ErrorModel.OperateFailed)); }
/// <summary> /// 为列车时刻表中的车站Id、车次线路表Id赋值,并写入数据库 /// </summary> private static void WriteTrainMoments(TimeTable table) { for (var i = 0; i < table.Moments.Count; i++) { table.Moments[i].Sort = i; table.Moments[i].TrainStationId = table.Stations[i].Id; table.Moments[i].TrainNoLineId = table.TrainNoLineRelation.Id; } var bll = new TrainMomentBll(); var maxId = (int)bll.GetMaxId(); bll.BulkInsert(table.Moments); DataUpdateLog.BulkUpdate(nameof(TrainMoment), maxId); }