コード例 #1
0
 public WFTemplateViewModel Post([FromBody] WFTemplateViewModel viewModel)
 {
     return(iWFTemplateServer.AddOrUpdate(viewModel));
 }
コード例 #2
0
        /// <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);
        }