/// <summary> /// Constructs FillMessageObject /// </summary> /// <returns>CodeMemberMethod</returns> private CodeMemberMethod FillMessageObject() { CodeMemberMethod FillMessageObject = null; try { FillMessageObject = new CodeMemberMethod { Name = "FillMessageObject", Attributes = MemberAttributes.Private }; //method parameters FillMessageObject.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "sMethod")); FillMessageObject.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "sErrNumber")); FillMessageObject.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "sErrMessage")); //method summary AddMethodSummary(FillMessageObject, "Fills the Message object when an error occurs"); CodeTryCatchFinallyStatement TryBlock = AddTryBlock(FillMessageObject); TryBlock.TryStatements.Add(AddTrace(FillMessageObject, TraceSeverity.Info)); TryBlock.TryStatements.Add(DeclareVariableAndAssign("ISessionManager", "ISManager", true, SnippetExpression("(ISessionManager)System.Web.HttpContext.Current.Session[\"SessionManager\"]"))); TryBlock.TryStatements.Add(DeclareVariableAndAssign("IMessage", "Imsg", true, SnippetExpression("ISManager.GetMessageObject()"))); CodeMethodInvokeExpression AddMessage = MethodInvocationExp(TypeReferenceExp("Imsg"), "AddMessage"); AddParameters(AddMessage, new object[] { ArgumentReferenceExp("sErrNumber"), ArgumentReferenceExp("sErrMessage"), ArgumentReferenceExp("sMethod"), GetProperty(TypeReferenceExp(typeof(string)), "Empty"), PrimitiveExpression("5") }); TryBlock.TryStatements.Add(AddMessage); CodeCatchClause catchBlock = CodeDomHelper.AddCatchBlock(TryBlock); catchBlock.Statements.Add(AddTrace(FillMessageObject, TraceSeverity.Error)); CodeDomHelper.ThrowException(catchBlock); } catch (Exception ex) { throw new Exception(string.Format("FillMessageObject->{0}", !object.Equals(ex.InnerException, null) ? ex.InnerException.Message : ex.Message)); } return(FillMessageObject); }
/// <summary> /// Construct GetILBOEx method /// </summary> /// <returns>CodeMemberMethod</returns> private CodeMemberMethod GetILBOEx() { CodeMemberMethod GetILBOEx = null; CodeMethodInvokeExpression MethodInvokation = null; try { GetILBOEx = new CodeMemberMethod { Name = "GetILBOEx", Attributes = MemberAttributes.Public | MemberAttributes.Override, ReturnType = new CodeTypeReference("IILBO") }; //method Parameters GetILBOEx.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "sILBOCode")); GetILBOEx.Parameters.Add(new CodeParameterDeclarationExpression(typeof(long), "lILBOIndex")); //method summary AddMethodSummary(GetILBOEx, "Creates/Gets the Object Handle of the ILBO"); CodeTryCatchFinallyStatement TryBlock = AddTryBlock(GetILBOEx); TryBlock.TryStatements.Add(AddTrace(GetILBOEx, TraceSeverity.Info)); TryBlock.TryStatements.Add(SnippetStatement("switch(sILBOCode)")); TryBlock.TryStatements.Add(SnippetStatement("{")); //GlobalVar.codeGeneration.activities[sName].ILBOList; foreach (ILBO ilbo in this._activity.ILBOs) { string mILBOName = string.Format("m_o{0}", ilbo.Code); TryBlock.TryStatements.Add(SnippetStatement(string.Format("case \"{0}\":", ilbo.Code))); CodeConditionStatement ifCondition = new CodeConditionStatement(); //if condition MethodInvokation = MethodInvocationExp(TypeReferenceExp(string.Format("{0}_Cyclic", mILBOName)), "ContainsKey"); AddParameters(MethodInvokation, new Object[] { new CodeBinaryOperatorExpression(VariableReferenceExp("lILBOIndex"), CodeBinaryOperatorType.Subtract, PrimitiveExpression(1)) }); ifCondition.Condition = new CodeBinaryOperatorExpression(MethodInvokation, CodeBinaryOperatorType.IdentityInequality, PrimitiveExpression(true)); //content for the if condition MethodInvokation = MethodInvocationExp(TypeReferenceExp(string.Format("{0}_Cyclic", mILBOName)), "Add"); AddParameters(MethodInvokation, new Object[] { new CodeBinaryOperatorExpression(VariableReferenceExp("lILBOIndex"), CodeBinaryOperatorType.Subtract, PrimitiveExpression(1)), new CodeObjectCreateExpression(string.Format("{0}", ilbo.Code)) }); ifCondition.TrueStatements.Add(MethodInvokation); //adding if condition to tryblock TryBlock.TryStatements.Add(ifCondition); //return statement for this case TryBlock.TryStatements.Add(ReturnExpression(new CodeArrayIndexerExpression(VariableReferenceExp(string.Format("{0}_Cyclic", mILBOName)), new CodeBinaryOperatorExpression(VariableReferenceExp("lILBOIndex"), CodeBinaryOperatorType.Subtract, PrimitiveExpression(1))))); } //default case TryBlock.TryStatements.Add(SnippetStatement(string.Format("default:"))); MethodInvokation = MethodInvocationExp(BaseReferenceExp(), GetILBOEx.Name); AddParameters(MethodInvokation, new Object[] { ArgumentReferenceExp(GetILBOEx.Parameters[0].Name), ArgumentReferenceExp(GetILBOEx.Parameters[1].Name) }); TryBlock.TryStatements.Add(ReturnExpression(MethodInvokation)); TryBlock.TryStatements.Add(new CodeSnippetStatement("}//ENDSWITCH")); // close braces for switch case CodeCatchClause catchBlock = CodeDomHelper.AddCatchBlock(TryBlock); catchBlock.Statements.Add(AddTrace(GetILBOEx, TraceSeverity.Error)); CodeDomHelper.ThrowException(catchBlock); } catch (Exception ex) { throw new Exception(string.Format("GetILBOEx->{0}", !object.Equals(ex.InnerException, null) ? ex.InnerException.Message : ex.Message)); } return(GetILBOEx); }
/// <summary> /// Constructs DisposeILBOEx /// </summary> /// <returns>CodeMemberMethod</returns> private CodeMemberMethod DisposeILBOEx() { CodeMemberMethod DisposeILBOEx = null; CodeMethodInvokeExpression MethodInvokation = null; try { DisposeILBOEx = new CodeMemberMethod { Name = "DisposeILBOEx", Attributes = MemberAttributes.Public | MemberAttributes.Override }; //method parameters DisposeILBOEx.Parameters.Add(new CodeParameterDeclarationExpression(new CodeTypeReference(typeof(System.String)), "sILBOCode")); DisposeILBOEx.Parameters.Add(new CodeParameterDeclarationExpression(new CodeTypeReference(typeof(long)), "lILBOIndex")); //method summary AddMethodSummary(DisposeILBOEx, "Disposes the Object Handle of the ILBO"); CodeTryCatchFinallyStatement TryBlock = CodeDomHelper.AddTryBlock(DisposeILBOEx); TryBlock.TryStatements.Add(AddTrace(DisposeILBOEx, TraceSeverity.Info)); //switch case TryBlock.TryStatements.Add(SnippetStatement("switch(sILBOCode)")); TryBlock.TryStatements.Add(SnippetStatement("{")); //for each ilbo foreach (ILBO ilbo in this._activity.ILBOs) { string mILBOName = string.Format("m_o{0}", ilbo.Code); TryBlock.TryStatements.Add(SnippetStatement(string.Format("case \"{0}\":", ilbo.Code))); CodeConditionStatement ILBOIndexCheck = new CodeConditionStatement(new CodeBinaryOperatorExpression(ArgumentReferenceExp(DisposeILBOEx.Parameters[1].Name), CodeBinaryOperatorType.GreaterThan, PrimitiveExpression(0))); //ILBOIndexCheck.TrueStatements.Add( MethodInvocationExp( CastExpression(ilbo.Name.ToLowerInvariant(), ArrayIndexerExpression(string.Format("{0}_Cyclic", mILBOName), BinaryOpertorExpression(ArgumentReferenceExp("lILBOIndex"), CodeBinaryOperatorType.Subtract, PrimitiveExpression(1)))),"Clear")); MethodInvokation = MethodInvocationExp(TypeReferenceExp(string.Format("{0}_Cyclic", mILBOName)), "Remove"); AddParameters(MethodInvokation, new Object[] { new CodeBinaryOperatorExpression(ArgumentReferenceExp(DisposeILBOEx.Parameters[1].Name), CodeBinaryOperatorType.Subtract, PrimitiveExpression(1)) }); ILBOIndexCheck.TrueStatements.Add(MethodInvokation); MethodInvokation = MethodInvocationExp(TypeReferenceExp(string.Format("{0}_Cyclic", mILBOName)), "Clear"); ILBOIndexCheck.FalseStatements.Add(MethodInvokation); TryBlock.TryStatements.Add(ILBOIndexCheck); TryBlock.TryStatements.Add(SnippetExpression("break")); } //default case TryBlock.TryStatements.Add(SnippetStatement(string.Format("default:"))); MethodInvokation = MethodInvocationExp(BaseReferenceExp(), DisposeILBOEx.Name); AddParameters(MethodInvokation, new Object[] { ArgumentReferenceExp(DisposeILBOEx.Parameters[0].Name), ArgumentReferenceExp(DisposeILBOEx.Parameters[1].Name) }); TryBlock.TryStatements.Add(MethodInvokation); TryBlock.TryStatements.Add(SnippetExpression("break")); TryBlock.TryStatements.Add(SnippetStatement("}//ENDSWITCH")); //close braces for switch case CodeCatchClause catchBlock = CodeDomHelper.AddCatchBlock(TryBlock); catchBlock.Statements.Add(FillMessageObject(DisposeILBOEx, SnippetExpression("string.Format(\"activity : DisposeILBOEx(sILBOCode=\\\"{0}\\\")\",sILBOCode)"))); ThrowException(catchBlock); } catch (Exception ex) { throw new Exception(string.Format("DiposeILBOEx->{0}", !object.Equals(ex.InnerException, null) ? ex.InnerException.Message : ex.Message)); } return(DisposeILBOEx); }
/// <summary> /// Constructs DisposeILBO method /// </summary> /// <returns>CodeMemberMethod</returns> private CodeMemberMethod DisposeILBO() { CodeMemberMethod DisposeILBO = null; CodeMethodInvokeExpression MethodInvokation = null; try { DisposeILBO = new CodeMemberMethod { Name = "DisposeILBO", Attributes = MemberAttributes.Public | MemberAttributes.Override }; //method parameters DisposeILBO.Parameters.Add(new CodeParameterDeclarationExpression(typeof(string), "sILBOCode")); //method summary AddMethodSummary(DisposeILBO, "Disposes the Object Handle of the ILBO"); //try block CodeTryCatchFinallyStatement TryBlock = CodeDomHelper.AddTryBlock(DisposeILBO); TryBlock.TryStatements.Add(AddTrace(DisposeILBO, TraceSeverity.Info)); //switch case TryBlock.TryStatements.Add(SnippetStatement("switch(sILBOCode)")); TryBlock.TryStatements.Add(SnippetStatement("{")); //case for each ilbo foreach (ILBO ilbo in this._activity.ILBOs) { string mILBOName = string.Format("m_o{0}", ilbo.Code); TryBlock.TryStatements.Add(SnippetStatement(string.Format("case \"{0}\":", ilbo.Code))); CodeConditionStatement ILBONullCheck = new CodeConditionStatement(new CodeBinaryOperatorExpression(TypeReferenceExp(string.Format("{0}", mILBOName)), CodeBinaryOperatorType.IdentityInequality, SnippetExpression("null"))); //ILBONullCheck.TrueStatements.Add(MethodInvocationExp(TypeReferenceExp(mILBOName), "Clear")); ILBONullCheck.TrueStatements.Add(AssignVariable(mILBOName, SnippetExpression("null"))); AddExpressionToTryBlock(TryBlock, ILBONullCheck); TryBlock.TryStatements.Add(SnippetExpression("break")); } //default case TryBlock.TryStatements.Add(SnippetStatement(string.Format("default:"))); MethodInvokation = MethodInvocationExp(BaseReferenceExp(), "DisposeILBO"); AddParameters(MethodInvokation, new Object[] { VariableReferenceExp("sILBOCode") }); TryBlock.TryStatements.Add(MethodInvokation); TryBlock.TryStatements.Add(SnippetExpression("break")); TryBlock.TryStatements.Add(SnippetStatement("}//ENDSWITCH"));//close braces for switch case CodeCatchClause catchBlock = CodeDomHelper.AddCatchBlock(TryBlock); catchBlock.Statements.Add(FillMessageObject(DisposeILBO, SnippetExpression("string.Format(\"activity : DisposeILBO(sILBOCode=\\\"{0}\\\")\",sILBOCode)"))); CodeDomHelper.ThrowException(catchBlock); } catch (Exception ex) { throw new Exception(string.Format("DisposeILBO->{0}", !object.Equals(ex.InnerException, null) ? ex.InnerException.Message : ex.Message)); } return(DisposeILBO); }