Вызовите метод для базы данных из контроллера в проекте ASP.NET MVC - PullRequest
0 голосов
/ 05 июля 2019

У меня есть пример проекта ASP.NET MVC, который вызывает базу данных (MySQL), из панели инструментов делает запрос на этот API, как, например, с таким URI:

https://dashboard.empresa.com.br:8080/api/values/GetUser/ebdb9237044a8437783e691e9a08dele

Я получаю пользователя обратно,Но когда я проверяю контроллер, он выглядит так:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace Emp_wifi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public ActionResult<string> Get(int id)
        {
            return "value";
        }

        // POST api/values
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

        // PUT api/values/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/values/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
    }
}

Методы для базы данных находятся в другой папке, этот метод не делает никаких других ссылок.

Метод из URI вверхняя часть:

public List<UserModel> GetClientRegister(string hash)
{
            try
            {
                string query = "SELECT * from user WHERE hash = '" + hash + "'";

                UserModel dataUser = new UserModel();
                var result = new List<UserModel>();

                //Open connection
                if (this.OpenConnection() == true)
                {
                    //Create Command
                    MySqlCommand cmd = new MySqlCommand(query, connection);
                    //Create a data reader and Execute the command
                    MySqlDataReader dataReader = cmd.ExecuteReader();

                    while (dataReader.Read())
                    {
                        result.Add(new UserModel()
                        {
                            IdUser = Convert.ToInt32(dataReader.GetString(dataReader.GetOrdinal("iduser"))),
                            UserName = dataReader.GetString(dataReader.GetOrdinal("username")),
                            Login = dataReader.GetString(dataReader.GetOrdinal("login")),
                            Password = dataReader.GetString(dataReader.GetOrdinal("password")),
                            Hash = dataReader.GetString(dataReader.GetOrdinal("hash")),
                            linkPortal = dataReader.GetString(dataReader.GetOrdinal("linkportal")),
                            IdCustomer = Convert.ToInt32(dataReader.GetString(dataReader.GetOrdinal("idcustomer")))
                        });
                    }

                    //close Data Reader
                    dataReader.Close();

                    //close Connection
                    this.CloseConnection();

                    //return list to be displayed
                    return result;
                }
                else
                {
                    return result;
                }

            }
            catch (Exception ex)
            {
                LogForm(ex.ToString());
                throw;
            }
}

Я попытался сделать с фильтром, который состоит в том, что у него нет файла Global.asax, но я не нашел ничего основанного на этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...