Exemple #1
0
        /// <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();
            }
        }
Exemple #2
0
        /// <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();
            }
        }
Exemple #3
0
        /// <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();
            }
        }