C# Template – Model Usage

using Luminance.Model;
using LuminanceApp.BaseClass;
using MySqlConnector;
using System;
using System.Collections.Generic;
using System.Data;

namespace LuminanceApp.Models
{
    public class UsersLocal : BaseModel
    {
        public UsersLocal()
        {
            TableName = "users_local";
            SetFillable(
                "user_name",
                "password",
                "web_password",
                "first_name",
                "middle_name",
                "last_name",
                "is_active",
                "user_type",
                "division"
            );
        }

        public virtual int Id { get; set; }
        public virtual string UserName { get; set; }
        public virtual string Password { get; set; }
        public virtual string WebPassword { get; set; }
        public virtual string FirstName { get; set; }
        public virtual string MiddleName { get; set; }
        public virtual string LastName { get; set; }
        public virtual string IsActive { get; set; }
        public virtual string UserType { get; set; }
        public virtual string Division { get; set; }

        //get without where statement
        public DataTable GetNoWhere()
        {
            string query = @"";
            return View(query);
        }
        
        //get with where statement
        public DataTable GetUsersWhereAdmin(string _user_type)  
        {
            string query = @"
            SELECT * FROM users_local
            WHERE user_type = ?_user_type";
            
            var where = new Dictionary<string, object>{
                { "_user_type", _user_type }
            };

            return View(query, where);
        }
        
        
        //this is an example if you want a custom query, especially thos with inner joins.
        public DataTable GetUsersWhereAdmin()  //you can pass an argument exanmple the "user_type" for the where
        {
            string query = @"
            SELECT 
                  u.id AS Id,
                u.user_name AS UserName,
                u.first_name AS FirstName,
                u.middle_name MiddleName,
                u.last_name AS LastName,
                u.user_type UserType,
                u.password Password,
                u.is_active IsActive
                r.last_name AS LastName,
                r.user_type UserType,
                r.is_active IsActive
            FROM users_local u
            LEFT JOIN user_access r ON u.role_id = r.id
            WHERE u.user_type = ?user_type AND u.is_active = ?is_active";

            var where = new Dictionary<string, object>{
                { "user_type", "Administrator" },
                { "is_active", "Y" }
            };

            return View(query, where);
        }

        //this is an example if you want a custom query, especially thos with inner joins.
        public DataTable GetAllUsers()  //no where
        {
            string query = @"
            SELECT 
                u.id AS Id,
                u.user_name AS UserName,
                u.first_name AS FirstName,
                u.middle_name MiddleName,
                u.last_name AS LastName,
                u.user_type UserType,
                u.password Password,
                u.is_active IsActive
            FROM users_local u";
          
          
            return View(query);
        }
    }
}