public IActionResult AddState(AddStateRequestModel stateRequest)
        {
            try
            {
                bool   status = false;
                string message;

                AddStateResponseModel addState = _stateBusiness.AddState(stateRequest);

                if (addState != null)
                {
                    if (addState.ErrorResponse.ErrorStatus)
                    {
                        message = addState.ErrorResponse.Message;
                        return(Ok(new { status, message }));
                    }
                    status  = true;
                    message = "State Added Sucessfully";
                    StateAddResponseModel data = addState.StateAdd;
                    return(Ok(new { status, message, data }));
                }

                message = "Unable to Add the State";
                return(Ok(new { status, message }));
            }
            catch (Exception e)
            {
                return(BadRequest(new { e.Message }));
            }
        }
        /// <summary>
        /// It Add State to db
        /// </summary>
        /// <param name="stateRequest">State name</param>
        /// <returns>Add State Response Model</returns>
        public AddStateResponseModel AddState(AddStateRequestModel stateRequest)
        {
            try
            {
                SqlDataReader         reader;
                int                   statusCode, StatePresent;
                AddStateResponseModel addState = null;

                using (SqlConnection connection = new SqlConnection(sqlConnection))
                {
                    SqlCommand sqlCommand = new SqlCommand("spState", connection)
                    {
                        CommandType = System.Data.CommandType.StoredProcedure
                    };
                    sqlCommand.Parameters.AddWithValue("@StateId", -1);
                    sqlCommand.Parameters.AddWithValue("@Name", stateRequest.Name);
                    sqlCommand.Parameters.AddWithValue("@ActionType", "Add");

                    SqlParameter StatePresentParameter = sqlCommand.Parameters.Add("@StatePresentCount", System.Data.SqlDbType.Int);
                    StatePresentParameter.Direction = System.Data.ParameterDirection.ReturnValue;

                    SqlParameter cmdExecuteSuccess = sqlCommand.Parameters.Add("@return_value", System.Data.SqlDbType.Int);
                    cmdExecuteSuccess.Direction = System.Data.ParameterDirection.ReturnValue;

                    connection.Open();

                    reader       = sqlCommand.ExecuteReader();
                    StatePresent = Convert.ToInt32(sqlCommand.Parameters["@StatePresentCount"].Value);
                    statusCode   = Convert.ToInt32(sqlCommand.Parameters["@return_Value"].Value);

                    if (StatePresent > 0)
                    {
                        addState = new AddStateResponseModel
                        {
                            ErrorResponse = new ErrorResponseModel
                            {
                                ErrorStatus = true,
                                Message     = "State Name Is already Present"
                            }
                        };

                        return(addState);
                    }

                    if (statusCode == 0)
                    {
                        while (reader.Read())
                        {
                            addState = new AddStateResponseModel
                            {
                                StateAdd = new StateAddResponseModel()
                                {
                                    StateId    = Convert.ToInt32(reader[0]),
                                    Name       = reader[1].ToString(),
                                    CreatedAt  = Convert.ToDateTime(reader[2]),
                                    ModifiedAt = Convert.ToDateTime(reader[3])
                                },

                                ErrorResponse = new ErrorResponseModel()
                                {
                                    ErrorStatus = false
                                }
                            };
                        }
                    }
                }

                return(addState);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }