/// <summary>
        /// Create the WHERE clause from the <paramref name="maintainableRef"/>  and write it to <paramref name="sqlCommand"/>
        /// </summary>
        /// <param name="maintainableRef">
        /// The maintainable Ref.
        /// </param>
        /// <param name="sqlCommand">
        /// The output string buffer
        /// </param>
        /// <param name="whereState">
        /// the current state of the WHERE clause in <paramref name="sqlCommand"/>
        /// </param>
        /// <param name="allowedDataflows">
        /// The allowed Dataflows.
        /// </param>
        /// <returns>
        /// The list of <see cref="DbParameter"/>
        /// </returns>
        protected override IList<DbParameter> CreateArtefactWhereClause(IMaintainableRefObject maintainableRef, StringBuilder sqlCommand, WhereState whereState, IList<IMaintainableRefObject> allowedDataflows)
        {
            IList<DbParameter> parameters = this.CreateArtefactWhereClause(maintainableRef, sqlCommand, whereState);
            if (parameters.Count > 0)
            {
                whereState = WhereState.And;
            }

            if (this._filter == DataflowFilter.Production)
            {
                SqlHelper.AddWhereClause(sqlCommand, whereState, DataflowConstant.ProductionWhereClause);
                whereState = WhereState.And;
            }

            return SecurityHelper.AddWhereClauses(maintainableRef, this.MappingStoreDB, sqlCommand, parameters, allowedDataflows, whereState);
        }
Beispiel #2
0
        /// <summary>
        /// Add where clause to <paramref name="sqlCommand"/>.
        /// </summary>
        /// <param name="sqlCommand">
        /// The SQL command buffer.
        /// </param>
        /// <param name="whereState">
        /// The WHERE clause state in <paramref name="sqlCommand"/>
        /// </param>
        /// <param name="format">
        /// The WHERE clause format.
        /// </param>
        /// <param name="parameters">
        /// The parameters.
        /// </param>
        public static void AddWhereClause(StringBuilder sqlCommand, WhereState whereState, string format, params object[] parameters)
        {
            switch (whereState)
            {
                case WhereState.Nothing:
                    sqlCommand.Append(" WHERE ");
                    break;
                case WhereState.Where:
                    break;
                case WhereState.And:
                    sqlCommand.Append(" AND ");
                    break;
            }

            sqlCommand.AppendFormat(CultureInfo.InvariantCulture, format, parameters);
        }
Beispiel #3
0
        /// <summary>
        /// Add where clause to <paramref name="sqlCommand"/>.
        /// </summary>
        /// <param name="sqlCommand">
        /// The SQL command buffer.
        /// </param>
        /// <param name="whereState">
        /// The WHERE clause state in <paramref name="sqlCommand"/>
        /// </param>
        /// <param name="format">
        /// The WHERE clause format.
        /// </param>
        /// <param name="parameters">
        /// The parameters.
        /// </param>
        public static void AddWhereClause(StringBuilder sqlCommand, WhereState whereState, string format, params object[] parameters)
        {
            switch (whereState)
            {
            case WhereState.Nothing:
                sqlCommand.Append(" WHERE ");
                break;

            case WhereState.Where:
                break;

            case WhereState.And:
                sqlCommand.Append(" AND ");
                break;
            }

            sqlCommand.AppendFormat(CultureInfo.InvariantCulture, format, parameters);
        }
Beispiel #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ArtefactSqlBuilder"/> class.
        /// </summary>
        /// <param name="orderBy">
        /// The order by.
        /// </param>
        /// <param name="versionQueryType">
        /// The version Query Type.
        /// </param>
        /// <param name="latestConstraint">
        /// The latest Constraint. Additional SQL WHERE clause which is used only when <paramref name="versionQueryType"/> equals <see cref="VersionQueryType.Latest"/>.
        /// Needs to start with the operator <c>AND</c>.
        /// </param>
        public ArtefactSqlBuilder(string orderBy = null, VersionQueryType versionQueryType = VersionQueryType.All, string latestConstraint = null)
        {
            this._orderBy          = orderBy ?? OrderBy;
            this._latestConstraint = latestConstraint;
            switch (versionQueryType)
            {
            case VersionQueryType.All:
                this._queryFormat = SqlQueryFormat;
                this._whereStatus = WhereState.Nothing;
                break;

            case VersionQueryType.Latest:
                this._queryFormat = SqlLatestQueryFormat;
                this._whereStatus = WhereState.And;
                break;

            default:
                throw new ArgumentOutOfRangeException("versionQueryType");
            }
        }
Beispiel #5
0
	public void DecideUserChoice()
	{
		if( m_State != WhereState.WhereState_WaitInMoveMode )
		{
			Debug.LogError("DetectUserMouse() invalid state.");
			return ;
		}
		
		if( m_CurrentWhereKey == m_CurrentSelectKey )
		{
			PlayCorrectAnimation( true ) ;
			m_CorrectAnswerWaitTime = Time.timeSinceLevelLoad + m_CorrectAnswerWaitSec ;
			m_State = WhereState.WhereState_WaitCorrectAnimation ;
		}
	}
Beispiel #6
0
	public void TrySwitchToAnswerMode()
	{
		if( WhereState.WhereState_WaitInMoveMode != m_State 
		   && WhereState.WhereState_WaitInTeacherMode != m_State )
		{
			Debug.LogWarning( "TrySwitchToAnswerMode() invalid state." ) ;
			return ;
		}
		
		
		ReleaveScene( m_CurrentScene , m_Fussball ) ;
		
		
		this.transform.rotation = Quaternion.identity ;
		SwitchGUI( true ) ;
		
		m_State = WhereState.WhereState_EnterAnswerMode ;
	}
Beispiel #7
0
	public void TrySwitchToMoveMode()
	{
		if( WhereState.WhereState_WaitInAnswerMode != m_State 
		   && WhereState.WhereState_WaitInTeacherMode != m_State )
		{
			Debug.LogWarning( "TrySwitchToMoveMode() invalid state." ) ;
			return ;
		}
		
		ReleaveScene( m_CurrentScene , m_Fussball ) ;
		
		SwitchGUI( false ) ;
		
		m_State = WhereState.WhereState_EnterMoveMode ;
	}
Beispiel #8
0
	public void TryNextInAnswerMode()
	{
		if( WhereState.WhereState_WaitInAnswerMode != m_State )
		{
			Debug.LogWarning( "TryNextInAnswerMode() invalid state." ) ;
			return ;
		}
		
		ReleaveScene( m_CurrentScene , m_Fussball ) ;
		
		NGUITools.SetActive( this.m_InstructionText , false ) ;
		
		m_State = WhereState.WhereState_EnterAnswerMode ;
	}
Beispiel #9
0
	public void TryWaitInTeacherMode()
	{
		if( WhereState.WhereState_EnterTeacherMode != m_State )
		{
			Debug.LogWarning( "TryWaitInTeacherMode() invalid state=" + m_State ) ;
			return ;
		}
		
		if( null == m_TeacherMenuAlpha )
		{
			Debug.LogError( "TryEnterTeacherMode() null == m_TeacherMenuAlpha" ) ;		
			return ;
		}
		
		m_TeacherMenuAlpha.PlayReverse() ;
		
		string subjectKey = m_TeacherModeSceneToKey[ m_TeacherModeScenePopUpList.value ] ;
		string whereKey = m_TeacherModeWhereToKey[ m_TeacherModeWherePopUpList.value ] ;
		m_CurrentSceneKey = subjectKey ;
		m_CurrentScene = m_Scenes[ m_CurrentSceneKey ] ;
		m_CurrentWhereKey = whereKey ;
		CheckWhereIsReference( m_CurrentScene ) ;
		Debug.Log("m_CurrentSceneKey" + m_CurrentSceneKey );
		Debug.Log("m_CurrentWhereKey" + m_CurrentWhereKey );
		
		ResetAnswerContent() ;
		ResetExampleContent() ;
		
		SetPresentScene( m_CurrentScene , m_Fussball , m_CurrentWhereKey ) ;
		
		m_State = WhereState.WhereState_WaitInTeacherMode ;
	}
Beispiel #10
0
	public void TryEnterTeacherMode()
	{
		if( WhereState.WhereState_WaitInAnswerMode != m_State 
		   && WhereState.WhereState_WaitInMoveMode != m_State 
		   && WhereState.WhereState_WaitInTeacherMode != m_State 
		   )
		{
			Debug.LogWarning( "TryEnterTeacherMode() invalid state=" + m_State ) ;
			return ;
		}
		
		if( null == m_TeacherMenuAlpha )
		{
			Debug.LogError( "TryEnterTeacherMode() null == m_TeacherMenuAlpha" ) ;		
			return ;
		}
		
		InitTeachersModePopupList() ;
		
		m_TeacherMenuAlpha.PlayForward() ;
		
		NGUITools.SetActive( m_ShuffleNextButton , false ) ;
		NGUITools.SetActive( m_RotateLeftButton , false ) ;
		NGUITools.SetActive( m_RotateRightButton , false ) ;
		NGUITools.SetActive( m_ShuffleNextButton , false ) ;
		NGUITools.SetActive( m_MoveModeTouchRegion , false ) ;
		
		NGUITools.SetActive( m_MoveModeButton , true ) ;
		NGUITools.SetActive( m_AnswerModeButton , true ) ;
		
		ReleaveScene( m_CurrentScene , m_Fussball ) ;
		
		
		
		m_State = WhereState.WhereState_EnterTeacherMode ;
	}
Beispiel #11
0
        /// <summary>
        /// Create the WHERE clause from the <paramref name="maintainableRef"/>  and write it to <paramref name="sqlCommand"/>
        /// </summary>
        /// <param name="maintainableRef">
        /// The maintainable Ref.
        /// </param>
        /// <param name="sqlCommand">
        /// The output string buffer
        /// </param>
        /// <param name="whereState">
        /// the current state of the WHERE clause in <paramref name="sqlCommand"/>
        /// </param>
        /// <param name="allowedDataflows">
        /// The allowed Dataflows.
        /// </param>
        /// <returns>
        /// The list of <see cref="DbParameter"/>
        /// </returns>
        protected override IList <DbParameter> CreateArtefactWhereClause(IMaintainableRefObject maintainableRef, StringBuilder sqlCommand, WhereState whereState, IList <IMaintainableRefObject> allowedDataflows)
        {
            IList <DbParameter> parameters = this.CreateArtefactWhereClause(maintainableRef, sqlCommand, whereState);

            if (parameters.Count > 0)
            {
                whereState = WhereState.And;
            }

            if (this._filter == DataflowFilter.Production)
            {
                SqlHelper.AddWhereClause(sqlCommand, whereState, DataflowConstant.ProductionWhereClause);
                whereState = WhereState.And;
            }

            return(SecurityHelper.AddWhereClauses(maintainableRef, this.MappingStoreDB, sqlCommand, parameters, allowedDataflows, whereState));
        }
        /// <summary>
        /// Add where clauses and populate <paramref name="parameters"/>
        /// </summary>
        /// <param name="maintainableRef">
        ///     The maintainable reference which may contain ID, AGENCY ID and/or VERSION.
        /// </param>
        /// <param name="database">
        ///     The database.
        /// </param>
        /// <param name="sqlCommand">
        ///     The SQL command.
        /// </param>
        /// <param name="parameters">
        ///     The parameters.
        /// </param>
        /// <param name="allowedDataflows">
        ///     The allowed dataflows.
        /// </param>
        /// <param name="whereState">the current state of the WHERE clause in <paramref name="sqlCommand"/></param>
        /// <returns>
        /// The <paramref name="parameters"/>
        /// </returns>
        public static IList<DbParameter> AddWhereClauses(IMaintainableRefObject maintainableRef, Database database, StringBuilder sqlCommand, IList<DbParameter> parameters, ICollection<IMaintainableRefObject> allowedDataflows, WhereState whereState)
        {
            if (allowedDataflows == null)
            {
                return parameters;
            }

            maintainableRef = maintainableRef ?? new MaintainableRefObjectImpl();
            switch (whereState)
            {
                case WhereState.Nothing:
                    sqlCommand.Append(" WHERE (");
                    break;
                case WhereState.Where:
                    break;
                case WhereState.And:
                    sqlCommand.Append(" AND (");
                    break;
            }

            int lastClause = sqlCommand.Length;
            int count = 0;
            bool addedClauses = false;
            foreach (IMaintainableRefObject allowedDataflow in allowedDataflows)
            {
                // TODO check if allowed dataflow id is mandatory. If not we need to change this.
                if (!maintainableRef.HasMaintainableId() || string.Equals(maintainableRef.MaintainableId, allowedDataflow.MaintainableId))
                {
                    string countString = count.ToString(CultureInfo.InvariantCulture);
                    sqlCommand.Append("(");

                    // id
                    string idParam = ParameterNameConstants.IdParameter + countString;
                    sqlCommand.AppendFormat(" A.ID = {0} ", database.BuildParameterName(idParam));
                    parameters.Add(database.CreateInParameter(idParam, DbType.String, allowedDataflow.MaintainableId));

                    // version
                    var versionParameters = allowedDataflow.GenerateVersionParameters(database, parameters, "A.VERSION", versionNumber => string.Format(CultureInfo.InvariantCulture, "{0}{1}_{2}", ParameterNameConstants.VersionParameter, versionNumber, countString));
                    if (versionParameters.Length > 0)
                    {
                        sqlCommand.AppendFormat(CultureInfo.InvariantCulture, "AND {0}", versionParameters);
                    }

                    // agency
                    if (allowedDataflow.HasAgencyId())
                    {
                        string name = ParameterNameConstants.AgencyParameter + countString;
                        sqlCommand.AppendFormat(" AND A.AGENCY = {0} ", database.BuildParameterName(name));
                        parameters.Add(database.CreateInParameter(name, DbType.String, allowedDataflow.AgencyId));
                    }

                    sqlCommand.Append(" ) ");
                    lastClause = sqlCommand.Length;
                    sqlCommand.Append(" OR ");
                    count++;
                    addedClauses = true;
                }
            }

            sqlCommand.Length = lastClause;

            if (!addedClauses)
            {
                sqlCommand.Append("'ACCESS' = 'DENIED'");
            }

            sqlCommand.Append(" ) ");

            return parameters;
        }
Beispiel #13
0
 /// <summary>
 /// Create the WHERE clause from the <paramref name="maintainableRef"/>  and write it to <paramref name="sqlCommand"/>
 /// </summary>
 /// <param name="maintainableRef">
 /// The maintainable Ref.
 /// </param>
 /// <param name="sqlCommand">
 /// The output string buffer
 /// </param>
 /// <param name="whereState">
 /// the current state of the WHERE clause in <paramref name="sqlCommand"/>
 /// </param>
 /// <param name="allowedDataflows">
 /// The allowed Dataflows.
 /// </param>
 /// <returns>
 /// The list of <see cref="DbParameter"/>
 /// </returns>
 protected abstract IList <DbParameter> CreateArtefactWhereClause(
     IMaintainableRefObject maintainableRef, StringBuilder sqlCommand, WhereState whereState, IList <IMaintainableRefObject> allowedDataflows);
Beispiel #14
0
        /// <summary>
        /// Create the WHERE clause from the <paramref name="maintainableRef"/>  and write it to <paramref name="sqlCommand"/>
        /// </summary>
        /// <param name="maintainableRef">
        ///     The maintainable Ref.
        /// </param>
        /// <param name="sqlCommand">
        ///     The output string buffer
        /// </param>
        /// <param name="whereState">the current state of the WHERE clause in <paramref name="sqlCommand"/></param>
        /// <returns>
        /// The list of <see cref="DbParameter"/>
        /// </returns>
        protected virtual IList <DbParameter> CreateArtefactWhereClause(IMaintainableRefObject maintainableRef, StringBuilder sqlCommand, WhereState whereState)
        {
            var parameters = new List <DbParameter>();

            if (maintainableRef == null)
            {
                return(parameters);
            }

            if (maintainableRef.HasMaintainableId())
            {
                SqlHelper.AddWhereClause(sqlCommand, whereState, " A.ID = {0} ", this._mappingStoreDb.BuildParameterName(ParameterNameConstants.IdParameter));
                whereState = WhereState.And;
                parameters.Add(this._mappingStoreDb.CreateInParameter(ParameterNameConstants.IdParameter, DbType.AnsiString, maintainableRef.MaintainableId));
            }

            if (maintainableRef.HasVersion())
            {
                var versionParameters = maintainableRef.GenerateVersionParameters(this._mappingStoreDb, parameters, "A.VERSION", versionNumber => string.Format("{0}{1}", ParameterNameConstants.VersionParameter, versionNumber));
                SqlHelper.AddWhereClause(sqlCommand, whereState, versionParameters);
            }

            if (maintainableRef.HasAgencyId())
            {
                SqlHelper.AddWhereClause(sqlCommand, whereState, " A.AGENCY = {0} ", this._mappingStoreDb.BuildParameterName(ParameterNameConstants.AgencyParameter));
                parameters.Add(this._mappingStoreDb.CreateInParameter(ParameterNameConstants.AgencyParameter, DbType.AnsiString, maintainableRef.AgencyId));
            }

            return(parameters);
        }
Beispiel #15
0
	// Update is called once per frame
	void Update () 
	{
		
		switch( m_State )
		{
		case WhereState.WhereState_None :
			m_State = WhereState.WhereState_Initialize ;
			break ;
		case WhereState.WhereState_Initialize :
			DoWhereState_Initialize() ;
			
			m_State = WhereState.WhereState_EnterAnswerMode;
			break ;
		case WhereState.WhereState_EnterAnswerMode :
			
			RandonmizeScene() ;
			RandonmizeWhere( m_CurrentScene ) ;
			
			ResetAnswerContent() ;
			ResetExampleContent() ;
			
			SetPresentScene( m_CurrentScene , m_Fussball , m_CurrentWhereKey ) ;
			m_State = WhereState.WhereState_WaitInAnswerMode ;
			break ;
		case WhereState.WhereState_WaitInAnswerMode :
		
			CheckExampleTimer() ;
			
			break ;
		case WhereState.WhereState_EnterMoveMode :
		
			RandonmizeScene() ;
			RandonmizeWhere( m_CurrentScene ) ;
			
			ResetAnswerContent() ;
			ResetExampleContent() ;
			
			SetPresentScene( m_CurrentScene , null , string.Empty ) ;
			
			m_WhereScreenVecs.Clear() ;
						
			m_IsAbleCollect = false ;
			m_IsCollected = false ;
			
			m_State = WhereState.WhereState_WaitInMoveMode ;
			break ;
		case WhereState.WhereState_WaitInMoveMode :
			CheckExampleTimer() ;
			break ;
		case WhereState.WhereState_WaitCorrectAnimation :
			DoWhereState_WaitCorrectAnimation() ;
			break ;
			
		case WhereState.WhereState_EnterTeacherMode :
			break ;
		case WhereState.WhereState_WaitInTeacherMode :
			
			CheckExampleTimer() ;
			
			break ;
		}
	}
Beispiel #16
0
	private void DoWhereState_WaitCorrectAnimation()
	{
		if( Time.timeSinceLevelLoad > m_CorrectAnswerWaitTime )
		{
			ReleaveScene( m_CurrentScene , m_Fussball ) ;			
			PlayCorrectAnimation( false ) ;
			m_State = WhereState.WhereState_EnterMoveMode ;
		}
	}	
Beispiel #17
0
        /// <summary>
        /// Add where clauses and populate <paramref name="parameters"/>
        /// </summary>
        /// <param name="maintainableRef">
        ///     The maintainable reference which may contain ID, AGENCY ID and/or VERSION.
        /// </param>
        /// <param name="database">
        ///     The database.
        /// </param>
        /// <param name="sqlCommand">
        ///     The SQL command.
        /// </param>
        /// <param name="parameters">
        ///     The parameters.
        /// </param>
        /// <param name="allowedDataflows">
        ///     The allowed dataflows.
        /// </param>
        /// <param name="whereState">the current state of the WHERE clause in <paramref name="sqlCommand"/></param>
        /// <returns>
        /// The <paramref name="parameters"/>
        /// </returns>
        public static IList <DbParameter> AddWhereClauses(IMaintainableRefObject maintainableRef, Database database, StringBuilder sqlCommand, IList <DbParameter> parameters, ICollection <IMaintainableRefObject> allowedDataflows, WhereState whereState)
        {
            if (allowedDataflows == null)
            {
                return(parameters);
            }

            maintainableRef = maintainableRef ?? new MaintainableRefObjectImpl();
            switch (whereState)
            {
            case WhereState.Nothing:
                sqlCommand.Append(" WHERE (");
                break;

            case WhereState.Where:
                break;

            case WhereState.And:
                sqlCommand.Append(" AND (");
                break;
            }

            int  lastClause   = sqlCommand.Length;
            int  count        = 0;
            bool addedClauses = false;

            foreach (IMaintainableRefObject allowedDataflow in allowedDataflows)
            {
                // TODO check if allowed dataflow id is mandatory. If not we need to change this.
                if (!maintainableRef.HasMaintainableId() || string.Equals(maintainableRef.MaintainableId, allowedDataflow.MaintainableId))
                {
                    string countString = count.ToString(CultureInfo.InvariantCulture);
                    sqlCommand.Append("(");

                    // id
                    string idParam = ParameterNameConstants.IdParameter + countString;
                    sqlCommand.AppendFormat(" A.ID = {0} ", database.BuildParameterName(idParam));
                    parameters.Add(database.CreateInParameter(idParam, DbType.String, allowedDataflow.MaintainableId));

                    // version
                    var versionParameters = allowedDataflow.GenerateVersionParameters(database, parameters, "A.VERSION", versionNumber => string.Format(CultureInfo.InvariantCulture, "{0}{1}_{2}", ParameterNameConstants.VersionParameter, versionNumber, countString));
                    if (versionParameters.Length > 0)
                    {
                        sqlCommand.AppendFormat(CultureInfo.InvariantCulture, "AND {0}", versionParameters);
                    }

                    // agency
                    if (allowedDataflow.HasAgencyId())
                    {
                        string name = ParameterNameConstants.AgencyParameter + countString;
                        sqlCommand.AppendFormat(" AND A.AGENCY = {0} ", database.BuildParameterName(name));
                        parameters.Add(database.CreateInParameter(name, DbType.String, allowedDataflow.AgencyId));
                    }

                    sqlCommand.Append(" ) ");
                    lastClause = sqlCommand.Length;
                    sqlCommand.Append(" OR ");
                    count++;
                    addedClauses = true;
                }
            }

            sqlCommand.Length = lastClause;

            if (!addedClauses)
            {
                sqlCommand.Append("'ACCESS' = 'DENIED'");
            }

            sqlCommand.Append(" ) ");

            return(parameters);
        }