/// <summary> /// 保存XML文件 /// </summary> /// <param name="entity">实体</param> /// <param name="extStorage">存储</param> internal void SaveProcessFile(ProcessFileEntity entity, IXPDLStorage extStorage = null) { //默认数据库存储 var session = SessionFactory.CreateSession(); try { session.BeginTrans(); var processEntity = GetByVersion(session.Connection, entity.ProcessGUID, entity.Version, false, session.Transaction); var processModel = ProcessModelFactory.Create(session.Connection, entity.ProcessGUID, entity.Version, session.Transaction); if (processEntity != null) { processEntity.XmlContent = entity.XmlContent; SetProcessStartEndType(processModel, processEntity, entity.XmlContent); processEntity.LastUpdatedDateTime = DateTime.Now; //数据库存储 Repository.Update <ProcessEntity>(session.Connection, processEntity, session.Transaction); } else { processEntity = new ProcessEntity(); processEntity.ProcessGUID = entity.ProcessGUID; processEntity.ProcessName = entity.ProcessName; processEntity.ProcessCode = entity.ProcessCode; processEntity.Version = entity.Version; processEntity.IsUsing = entity.IsUsing; processEntity.XmlContent = entity.XmlContent; processEntity.CreatedDateTime = DateTime.Now; SetProcessStartEndType(processModel, processEntity, entity.XmlContent); //数据库存储 Repository.Insert <ProcessEntity>(session.Connection, processEntity, session.Transaction); } //本地存储 if (extStorage != null) { var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(entity.XmlContent); extStorage.Save(processEntity.XmlFilePath, xmlDoc); } session.Commit(); } catch { session.Rollback(); throw; } finally { session.Dispose(); } }
/// <summary> /// 流程定义的创建方法 /// </summary> /// <param name="entity">实体</param> /// <param name="extStorage">存储</param> /// <returns></returns> internal int CreateProcess(ProcessEntity entity, IXPDLStorage extStorage = null) { int processID = 0; var session = SessionFactory.CreateSession(); try { session.BeginTrans(); if (string.IsNullOrEmpty(entity.ProcessGUID)) { entity.ProcessGUID = Guid.NewGuid().ToString(); } if (String.IsNullOrEmpty(entity.Version)) { entity.Version = "1"; //default version value; } entity.IsUsing = 1; entity.CreatedDateTime = DateTime.Now; entity.XmlFilePath = string.Format("{0}\\{1}", entity.AppType, entity.XmlFileName); XmlDocument xmlDoc = GenerateXmlContent(entity); entity.XmlContent = xmlDoc.OuterXml; //process xml file processID = Insert(session.Connection, entity, session.Transaction); if (extStorage != null) { extStorage.Save(entity.XmlFilePath, xmlDoc); } session.Commit(); return(processID); } catch (System.Exception ex) { session.Rollback(); throw; } finally { session.Dispose(); } }
/// <summary> /// 保存XML文件 /// </summary> /// <param name="entity">实体</param> /// <param name="extStorage">存储</param> internal void SaveProcessFile(ProcessFileEntity entity, IXPDLStorage extStorage = null) { //默认数据库存储 var session = SessionFactory.CreateSession(); try { session.BeginTrans(); var processEntity = GetByVersion(entity.ProcessGUID, entity.Version); processEntity.StartType = entity.StartType; processEntity.StartExpression = entity.StartExpression; processEntity.EndType = entity.EndType; processEntity.EndExpression = entity.EndExpression; processEntity.XmlContent = entity.XmlContent; processEntity.LastUpdatedDateTime = DateTime.Now; //本地存储 if (extStorage != null) { var xmlDoc = new XmlDocument(); xmlDoc.LoadXml(entity.XmlContent); extStorage.Save(processEntity.XmlFilePath, xmlDoc); } //数据库存储 Repository.Update <ProcessEntity>(session.Connection, processEntity, session.Transaction); session.Commit(); } catch { session.Rollback(); throw; } finally { session.Dispose(); } }
/// <summary> /// 流程定义的创建方法 /// </summary> /// <param name="entity">实体</param> /// <param name="extStorage">存储</param> /// <returns></returns> internal int CreateProcess(ProcessEntity entity, IXPDLStorage extStorage = null) { int processID = 0; var session = SessionFactory.CreateSession(); try { session.BeginTrans(); entity.ProcessGUID = Guid.NewGuid().ToString(); entity.Version = "1"; //default version value; entity.IsUsing = 1; entity.ID = 34645; entity.CreatedDateTime = DateTime.Now; entity.AppType = "管线" + DateTime.Now.ToShortDateString(); entity.XmlFileName = entity.AppType + ".xml"; entity.XmlFilePath = string.Format("{0}\\{1}", entity.AppType, entity.XmlFileName); XmlDocument xmlDoc = GenerateXmlContent(entity); entity.XmlContent = xmlDoc.OuterXml; //流程定义文件 entity.PageUrl = ""; //processID = Insert(entity); Insert(entity); if (extStorage != null) { extStorage.Save(entity.XmlFilePath, xmlDoc); } session.Commit(); return(processID); } catch (System.Exception ex) { session.Rollback(); throw; } finally { session.Dispose(); } }