Hi guys
I have an action method index that creates an instance for an object from another class that has properties and methods that return classes (I hope I am using correct terms!) *Beginner Alert*
namespace ErrorRedirect.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
//string winuser = User.Identity.Name.Split('\\')[1];
string winuser = "rajesh";
KefsUser kuser = null;
string fName = string.Empty;
kuser = new KefsUser().GetKefsUser(winuser);
if (kuser != null)
{
fName = kuser.empFullName;
return View(kuser);
}
else
{
return View("ShowError", winuser + " is an invalid KEFS Username");
}
}
and the referenced class is like this.
using ErrorRedirect.Utility;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
namespace ErrorRedirect.Models
{
public class KefsUser
{
string connectionString = ConnectionString.CName;
public string employeeCode { get; set; }
public int empUserLevel { get; set; }
public string empFullName { get; set; }
public string empEmail { get; set; }
public KefsUser GetKefsUser(string winuser)
{
KefsUser kuser = new KefsUser();
string Orasql = @"Select * from
KAZ_KEFS_LOGIN_V
WHERE LOGIN_NAME='" + winuser + "'";
OracleConnection conn = new OracleConnection(connectionString);
OracleCommand cmd = new OracleCommand(Orasql, conn);
//OracleDataReader dr = new OracleDataReader();
cmd.CommandType = CommandType.Text;
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataTable dt = new DataTable();
conn.Open();
da.Fill(dt);
conn.Close();
int? reccount = dt.Rows.Count;
if (reccount != 0)
{
foreach (DataRow dr in dt.Rows)
{
kuser.employeeCode = Convert.ToString(dr["EMP_CODE"]);
kuser.empUserLevel = Convert.ToInt32(dr["USER_LEVEL"]);
kuser.empFullName = Convert.ToString(dr["FULL_NAME"]);
kuser.empEmail = Convert.ToString(dr["EMAIL_ADDRESS"]);
}
return kuser;
}
else
{
return null;
}
}
}
I'm deliberately passing a username that does not exist in the application user table & the method returns an empty class to my action method call. Now I am checking whether the instance of the object is null & manage the routing of the application (redirects to a page that shows error message)
Basically I am curious to know whether I can use Modelstate.IsValid to validate the object? Please comment.