Exemplo n.º 1
0
        /// <summary>
        /// 修改Acl成员项的状态
        /// </summary>
        /// <param name="members"></param>
        /// <param name="status"></param>
        public void UpdateStatus(SCAclContainerOrMemberCollectionBase members, SchemaObjectStatus status)
        {
            members.NullCheck("members");

            ORMappingItemCollection mappings = this.GetMappingInfo();

            using (TransactionScope scope = TransactionScopeFactory.Create())
            {
                foreach (SCAclItem aclItem in members)
                {
                    aclItem.Status = status;

                    string sql = VersionCommonObjectUpdateStatusSqlBuilder <SCAclItem> .Instance.ToUpdateSql(aclItem, mappings);

                    DateTime dt = (DateTime)DbHelper.RunSqlReturnScalar(sql, this.GetConnectionName());

                    //SCSnapshotBasicAdapter.Instance.UpdateCurrentSnapshot(mappings.TableName,
                    //    mappings.TableName + "_Current",
                    //    ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(aclItem, mappings));

                    SCActionContext.Current.TimePoint.IsMinValue(() => SCActionContext.Current.TimePoint = dt);
                }

                scope.Complete();
            }
        }
Exemplo n.º 2
0
        private string GetUpdateSql(string containerID, SCAclContainerOrMemberCollectionBase members)
        {
            return(VersionStrategyUpdateSqlHelper.ConstructUpdateSql(
                       null, (strB, context) =>
            {
                string tableName = this.GetMappingInfo().TableName;

                ConnectiveSqlClauseCollection connectiveBuilder = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder();

                WhereSqlClauseBuilder keyBuilder = new WhereSqlClauseBuilder();

                keyBuilder.AppendItem("ContainerID", containerID);

                connectiveBuilder.Add(keyBuilder);

                strB.AppendFormat(
                    "UPDATE {0} SET VersionEndTime = {1} WHERE {2}",
                    tableName,
                    "@currentTime",
                    connectiveBuilder.ToSqlString(TSqlBuilder.Instance));

                for (int i = 0; i < members.Count; i++)
                {
                    SCAclItem aclitem = members[i];

                    aclitem.SortID = i;
                    strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

                    aclitem.VersionEndTime = ConnectionDefine.MaxVersionEndTime;

                    InsertSqlClauseBuilder insertBuilder = ORMapping.GetInsertSqlClauseBuilder(aclitem, this.GetMappingInfo(), "VersionStartTime");

                    insertBuilder.AppendItem("VersionStartTime", "@currentTime", "=", true);

                    strB.AppendFormat("INSERT INTO {0}{1}", tableName, insertBuilder.ToSqlString(TSqlBuilder.Instance));
                }
            }));
        }
Exemplo n.º 3
0
		private string GetUpdateSql(string containerID, SCAclContainerOrMemberCollectionBase members)
		{
			return VersionStrategyUpdateSqlHelper.ConstructUpdateSql(
				null, (strB, context) =>
			{
				ConnectiveSqlClauseCollection connectiveBuilder = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder();

				WhereSqlClauseBuilder keyBuilder = new WhereSqlClauseBuilder();

				keyBuilder.AppendItem("ContainerID", containerID);

				connectiveBuilder.Add(keyBuilder);

				strB.AppendFormat(
					"UPDATE {0} SET VersionEndTime = {1} WHERE {2}",
					GetMappingInfo().TableName,
					"@currentTime",
					connectiveBuilder.ToSqlString(TSqlBuilder.Instance));

				for (int i = 0; i < members.Count; i++)
				{
					SCAclItem aclitem = members[i];

					aclitem.SortID = i;
					strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

					aclitem.VersionEndTime = ConnectionDefine.MaxVersionEndTime;

					InsertSqlClauseBuilder insertBuilder = ORMapping.GetInsertSqlClauseBuilder(aclitem, this.GetMappingInfo(), "VersionStartTime");

					insertBuilder.AppendItem("VersionStartTime", "@currentTime", "=", true);

					strB.AppendFormat("INSERT INTO {0}{1}", this.GetMappingInfo().TableName, insertBuilder.ToSqlString(TSqlBuilder.Instance));
				}
			});
		}
Exemplo n.º 4
0
		/// <summary>
		/// 修改Acl成员项的状态
		/// </summary>
		/// <param name="members"></param>
		/// <param name="status"></param>
		public void UpdateStatus(SCAclContainerOrMemberCollectionBase members, SchemaObjectStatus status)
		{
			members.NullCheck("members");

			ORMappingItemCollection mappings = this.GetMappingInfo();

			using (TransactionScope scope = TransactionScopeFactory.Create())
			{
				foreach (SCAclItem aclItem in members)
				{
					aclItem.Status = status;

					string sql = VersionCommonObjectUpdateStatusSqlBuilder<SCAclItem>.Instance.ToUpdateSql(aclItem, mappings);

					DateTime dt = (DateTime)DbHelper.RunSqlReturnScalar(sql, this.GetConnectionName());

					//SCSnapshotBasicAdapter.Instance.UpdateCurrentSnapshot(mappings.TableName,
					//    mappings.TableName + "_Current",
					//    ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(aclItem, mappings));

					SCActionContext.Current.TimePoint.IsMinValue(() => SCActionContext.Current.TimePoint = dt);
				}

				scope.Complete();
			}
		}