Пример #1
0
 public ActionResult <StatusCodeResult> Post([FromBody] GraphicChartDataModel symsInfo)
 {
     try
     {
         return(Ok(this.graphicChartSvc.SaveOrUpdateGraphicChartData(symsInfo)));
     }
     catch (Exception ex)
     {
         return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message));
     }
 }
Пример #2
0
        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);
        }