public WFTemplateViewModel Post([FromBody] WFTemplateViewModel viewModel) { return(iWFTemplateServer.AddOrUpdate(viewModel)); }
/// <summary> /// 新增或者修改 /// /// 流程图设计过程中,Node的Id由设计器产生。也就是说Node更新步骤是检查数据库是否有该id,如果有则更新,没有则新增 /// /// </summary> /// <param name="wFTemplateViewModel"></param> /// <returns></returns> public WFTemplateViewModel AddOrUpdate(WFTemplateViewModel wFTemplateViewModel) { try { if (wFTemplateViewModel.Id == new Guid()) { //新增 wFTemplateViewModel.CreateTime = TimeHelper.GetTimeStamp(); var model = wFContext.WFTemplate.Add(mapper.Map <WFTemplate>(wFTemplateViewModel)); wFTemplateViewModel = mapper.Map(model.Entity, wFTemplateViewModel); } else { wFTemplateViewModel.UpdateTime = TimeHelper.GetTimeStamp(); var model = wFContext.WFTemplate.Update(mapper.Map <WFTemplate>(wFTemplateViewModel)); wFTemplateViewModel = mapper.Map(model.Entity, wFTemplateViewModel); } //先删除掉所有节点 wFContext.WFNode.Where(p => p.WFId == wFTemplateViewModel.Id).Delete(); if (wFTemplateViewModel.Nodes != null) { //然后新增所有节点 for (int i = 0; i < wFTemplateViewModel.Nodes.Count; i++) { wFTemplateViewModel.Nodes[i].WFId = wFTemplateViewModel.Id; var item = mapper.Map <WFNodeViewModel, WFNode>(wFTemplateViewModel.Nodes[i]); item.Id = new Guid(); var model = wFContext.WFNode.Add(item); wFTemplateViewModel.Nodes[i] = mapper.Map(model.Entity, wFTemplateViewModel.Nodes[i]); } } wFContext.WFLine.Where(p => p.WFId == wFTemplateViewModel.Id).Delete(); if (wFTemplateViewModel.Lines != null) { for (int i = 0; i < wFTemplateViewModel.Lines.Count; i++) { wFTemplateViewModel.Lines[i].WFId = wFTemplateViewModel.Id; var item = mapper.Map <WFLine>(wFTemplateViewModel.Lines[i]); item.LineId = wFTemplateViewModel.Lines[i].LineDefine.Id; item.Id = new Guid(); var model = wFContext.WFLine.Add(item); wFTemplateViewModel.Lines[i] = mapper.Map(model.Entity, wFTemplateViewModel.Lines[i]); } } wFContext.WFToolTip.Where(p => p.WFId == wFTemplateViewModel.Id).Delete(); if (wFTemplateViewModel.ToolTips != null) { for (int i = 0; i < wFTemplateViewModel.ToolTips.Count; i++) { wFTemplateViewModel.ToolTips[i].WFId = wFTemplateViewModel.Id; wFTemplateViewModel.ToolTips[i].TipId = wFTemplateViewModel.ToolTips[i].Id; wFTemplateViewModel.ToolTips[i].Id = new Guid(); var model = wFContext.WFToolTip.Add(wFTemplateViewModel.ToolTips[i]); } } wFContext.BulkSaveChanges(); return(wFTemplateViewModel); } catch (Exception ex) { } return(null); }