/// <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 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); }
/// <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"); } }
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 ; } }
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 ; }
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 ; }
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 ; }
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 ; }
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 ; }
/// <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; }
/// <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);
/// <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); }
// 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 ; } }
private void DoWhereState_WaitCorrectAnimation() { if( Time.timeSinceLevelLoad > m_CorrectAnswerWaitTime ) { ReleaveScene( m_CurrentScene , m_Fussball ) ; PlayCorrectAnimation( false ) ; m_State = WhereState.WhereState_EnterMoveMode ; } }
/// <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); }