public ActionResult <StatusCodeResult> Post([FromBody] GraphicChartDataModel symsInfo) { try { return(Ok(this.graphicChartSvc.SaveOrUpdateGraphicChartData(symsInfo))); } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } }
public string SaveOrUpdateGraphicChartData(GraphicChartDataModel symsInfo) { var chartId = string.IsNullOrEmpty(symsInfo.GraphicChartId) ? Guid.NewGuid().ToString() : symsInfo.GraphicChartId; var newChartHead = new DataTable("graphic_chart"); newChartHead.Columns.AddRange(new DataColumn[] { new DataColumn("id"), new DataColumn("name"), new DataColumn("createdBy"), new DataColumn("lastEditedAt") }); var newHead = newChartHead.NewRow(); newHead[0] = chartId; newHead[1] = symsInfo.Name; newHead[2] = symsInfo.CreatedBy; newHead[3] = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss"); newChartHead.Rows.Add(newHead); var newSymbolList = new DataTable("symbolinfo"); newSymbolList.Columns.AddRange(new DataColumn[] { new DataColumn("id"), new DataColumn("graphicChartId"), new DataColumn("type"), new DataColumn("tagId"), new DataColumn("tagName"), new DataColumn("viewBox"), new DataColumn("viewBoxWidth"), new DataColumn("viewBoxHeight"), new DataColumn("positionXRatio"), new DataColumn("positionYRatio"), new DataColumn("widthRatio"), new DataColumn("strokeRGB") }); foreach (var sym in symsInfo.SymbolList) { var newSym = newSymbolList.NewRow(); newSym[0] = sym.SymbolId; newSym[1] = chartId; newSym[2] = sym.SymbolType; newSym[3] = sym.TagId; newSym[4] = sym.TagName; newSym[5] = sym.ViewBox; newSym[6] = sym.ViewBoxWidth; newSym[7] = sym.ViewBoxHeight; newSym[8] = sym.PositionXRatio; newSym[9] = sym.PositionYRatio; newSym[10] = sym.WidthRatio; newSym[11] = sym.StrokeRGB; newSymbolList.Rows.Add(newSym); } var newCardList = new DataTable("cardinfo"); newCardList.Columns.AddRange(new DataColumn[] { new DataColumn("id"), new DataColumn("graphicChartId"), new DataColumn("positionXRatio"), new DataColumn("positionYRatio"), new DataColumn("widthRatio"), new DataColumn("heightRatio"), new DataColumn("strokeRGB"), new DataColumn("alpha"), new DataColumn("zOrder") }); foreach (var card in symsInfo.CardList) { var newCard = newCardList.NewRow(); newCard[0] = card.CardId; newCard[1] = chartId; newCard[2] = card.PositionXRatio; newCard[3] = card.PositionYRatio; newCard[4] = card.WidthRatio; newCard[5] = card.HeightRatio; newCard[6] = card.StrokeRGB; newCard[7] = card.Alpha; newCard[8] = card.ZOrder; newCardList.Rows.Add(newCard); } var preSql = string.IsNullOrEmpty(symsInfo.GraphicChartId) ? null : "delete from graphic_chart where id=@graphicChartId;" + "delete from symbolinfo where graphicChartId=@graphicChartId;" + "delete from cardinfo where graphicChartId=@graphicChartId;"; var parms = string.IsNullOrEmpty(symsInfo.GraphicChartId) ? null : new Tuple <string, object>[] { new Tuple <string, object>("@graphicChartId", symsInfo.GraphicChartId), }; this.dbAccess.BulkInsert(new DataTable[] { newChartHead, newSymbolList, newCardList }, preSql, parms); return(chartId); }