Home > Software engineering >  how to return the object model value
how to return the object model value

Time:12-12

I am new to c# and I am trying to return a value in an IHttpActionResult method however it is showing an error the name objApprovalModel does not exist in the current context.

Here is my code:

[HttpPost]
        [Route("GetApprovalTableValue")]
        public IHttpActionResult GetApprovalTableValue(string rowno)
        { 
            try
            {
                

                List<ApprovalModel> approvalModels = new List<ApprovalModel>();

                //var objUserModel = new UserModel();


                ManageUserData ObjManageUserData = new ManageUserData();
                var sqlDataTable = ObjManageUserData.GetApprovalTableValue(rowno);

                if (sqlDataTable.Rows.Count > 0)
                {

                    for (int i = 0; (i < sqlDataTable.Rows.Count); i  )
                    {
                        var objApprovalModel = new ApprovalModel();

                        objApprovalModel.MasterID = Convert.ToInt32(sqlDataTable.Rows[i]["TAT_Master_ID"].ToString());
                        objApprovalModel.EntityType = Convert.ToInt32(sqlDataTable.Rows[i]["TAT_EntityTypeId"].ToString());
                        objApprovalModel.ApproverID = (sqlDataTable.Rows[i]["TAT_Approver_ID"].ToString());
                        objApprovalModel.Remarks = (sqlDataTable.Rows[i]["TAT_Remarks"].ToString());
                        objApprovalModel.Action = Convert.ToInt32(sqlDataTable.Rows[i]["TAT_Action"].ToString());
                        objApprovalModel.Active = (sqlDataTable.Rows[i]["TAT_IS_ACTIVE"].ToString());
                        objApprovalModel.CreatedBy = (sqlDataTable.Rows[i]["TAT_CREATED_BY"].ToString());
                        objApprovalModel.CreatedOn = (DateTime)(sqlDataTable.Rows[i]["TAT_CREATED_ON"]);
                        objApprovalModel.UpdatedBy = (sqlDataTable.Rows[i]["TAT_UPDATED_BY"].ToString());
                        objApprovalModel.UpdatedOn = (DateTime)(sqlDataTable.Rows[i]["TAT_UPDATED_ON"]);
                       

                    }
                }
                return Ok(objApprovalModel);


            }

            catch (Exception ex)
            {
                return Content(HttpStatusCode.NoContent, "Something went wrong");
            }

        }

The approval model is this:

public class ApprovalModel
    {
        public int MasterID { get; set; }
        public int EntityType { get; set; }
        public string ApproverID { get; set; }
        public string Remarks { get; set; }
        public int Action { get; set; }
        public string Active { get; set; }

        public string CreatedBy { get; set; }

        public DateTime CreatedOn { get; set; }

        public string UpdatedBy { get; set; }

        public DateTime UpdatedOn { get; set; }
    }

How do I remove this error and return value to my api?

CodePudding user response:

You've declared the variable inside a smaller scope and are trying to reference it outside of that scope.

Consider this... What would you expect the method to return if the if statement is false or if the for loop has 0 iterations?

Either return from the scope where it is declared:

if (sqlDataTable.Rows.Count > 0)
{
    for (int i = 0; (i < sqlDataTable.Rows.Count); i  )
    {
        var objApprovalModel = new ApprovalModel();
        //...

        return Ok(objApprovalModel);
    }
}
// return something else here

Or declare it outside of that scope first:

var objApprovalModel = new ApprovalModel();

if (sqlDataTable.Rows.Count > 0)
{
    for (int i = 0; (i < sqlDataTable.Rows.Count); i  )
    {
        //...
    }
}
return Ok(objApprovalModel);
  • Related