public JsonResult LineEdit() { var lineJson = Request["line"]; var line = JsonHelper.Deserialize <BaseLine>(lineJson); var updateType = line.Id > 0 ? DataUpdateType.Update : DataUpdateType.Insert; // 更新线路 var lineUpdateRes = false; var lineBll = new BaseLineBll(); if (line.Id > 0) { lineUpdateRes = lineBll.Update(line); } else { var condition = string.Format("LineName='{0}' AND IsDelete=0", line.LineName); if (lineBll.Exists(condition)) { return(Json(ErrorModel.ExistSameItem)); } var insertedLine = lineBll.Insert(line); lineUpdateRes = insertedLine.Id > 0; } // 更新车站 if (lineUpdateRes) { // 写入更新记录 DataUpdateLog.SingleUpdate(typeof(BaseLine).Name, line.Id, updateType); var stationsJson = Request["stations"]; var stations = JsonHelper.Deserialize <LineStations[]>(stationsJson); if (!stations.Any()) { return(Json(ErrorModel.OperateSuccess)); } stations.ForEach(f => { f.LineId = line.Id; }); var stationsToInsert = stations.Where(f => f.Id == 0); var lineStationsBll = new LineStationsBll(); var maxId = (int)lineStationsBll.GetMaxId(); lineStationsBll.BulkInsert(stationsToInsert); // 写入更新记录 DataUpdateLog.BulkUpdate(typeof(LineStations).Name, maxId); return(Json(ErrorModel.OperateSuccess)); } return(Json(ErrorModel.OperateFailed)); }
/// <summary> /// 构造线路-车站关系并写入数据库 /// </summary> /// <param name="table"></param> private static void WriteLineStaionRelation(TimeTable table) { // 构造线路-车站关系并写入数据库 var lineStationRelation = new List <LineStations>(); for (var i = 0; i < table.Stations.Count; i++) { lineStationRelation.Add(new LineStations { LineId = table.Line.Id, Sort = i, StationId = table.Stations[i].Id, StationName = table.Stations[i].StationName }); } var lineStationsBll = new LineStationsBll(); var startId = (int)lineStationsBll.GetMaxId(); // 记录插入之前的最大ID lineStationsBll.BulkInsert(lineStationRelation); DataUpdateLog.BulkUpdate(nameof(LineStations), startId); // 将数据更新记录同步到DbUpdataLog表中 }