213 lines
7.9 KiB
C#
213 lines
7.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using Dapper;
|
|
using Fab2ApprovalSystem.Models;
|
|
using System.Text;
|
|
using Fab2ApprovalSystem.Misc;
|
|
|
|
namespace Fab2ApprovalSystem.DMO
|
|
{
|
|
public class UserAccountDMO
|
|
{
|
|
private IDbConnection db = new SqlConnection(GlobalVars.DB_CONNECTION_STRING);
|
|
|
|
|
|
//public List<LoginModel> GetUser(string loginID)
|
|
//{
|
|
// StringBuilder sql = new StringBuilder();
|
|
// sql.Append("SELECT * FROM Users WHERE LoginID = '" + loginID + "'");
|
|
|
|
// return this.db.Query<LoginModel>(sql.ToString()).ToList();
|
|
//}
|
|
|
|
public IEnumerable<LoginModel> GetAllUsers()
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
//sql.Append("SELECT U.FirstName + ' ' + U.LastName AS FullName, U1.FirstName + ' ' + U1.LastName AS DelegatedToFullName, U.* ");
|
|
//sql.Append("FROM Users U LEFT JOIN Users U1 ");
|
|
//sql.Append("ON U.UserID = U1.DelegatedTo ORDER BY FirstName ");
|
|
|
|
//sql.Append("SELECT FirstName + ' ' + LastName AS FullName, * FROM Users ORDER BY FirstName ");
|
|
sql.Append(" SELECT U.FirstName + ' ' + U.LastName AS FullName, U.* , U1.FirstName + ' ' + U1.LastName AS DelegatedToFullName ");
|
|
sql.Append("FROM Users U LEFT JOIN Users U1 ON U.DelegatedTo = U1.UserID ");
|
|
sql.Append("ORDER BY FirstName ");
|
|
|
|
return this.db.Query<LoginModel>(sql.ToString()).ToList();
|
|
}
|
|
public IEnumerable<LoginModel> GetAllActiveUsers()
|
|
{
|
|
StringBuilder sql = new StringBuilder();
|
|
//sql.Append("SELECT U.FirstName + ' ' + U.LastName AS FullName, U1.FirstName + ' ' + U1.LastName AS DelegatedToFullName, U.* ");
|
|
//sql.Append("FROM Users U LEFT JOIN Users U1 ");
|
|
//sql.Append("ON U.UserID = U1.DelegatedTo ORDER BY FirstName ");
|
|
|
|
//sql.Append("SELECT FirstName + ' ' + LastName AS FullName, * FROM Users ORDER BY FirstName ");
|
|
sql.Append(" SELECT U.FirstName + ' ' + U.LastName AS FullName, U.* , U1.FirstName + ' ' + U1.LastName AS DelegatedToFullName ");
|
|
sql.Append("FROM Users U LEFT JOIN Users U1 ON U.DelegatedTo = U1.UserID ");
|
|
sql.Append("WHERE U.IsActive = 1 ");
|
|
sql.Append("ORDER BY FirstName ");
|
|
|
|
return this.db.Query<LoginModel>(sql.ToString()).ToList();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public LoginModel GetUser(string loginID)
|
|
{
|
|
//StringBuilder sql = new StringBuilder();
|
|
//sql.Append("SELECT * FROM Users WHERE LoginID = '" + loginID + "'");
|
|
|
|
//return this.db.Query<LoginModel>(sql.ToString()).SingleOrDefault();
|
|
|
|
|
|
return this.db.Query<LoginModel>("SELECT FirstName + ' ' + LastName AS FullName, * FROM Users WHERE LoginID = @loginID AND IsActive = 1 ", new { loginID = loginID }).Take(1).SingleOrDefault();
|
|
}
|
|
|
|
public LoginModel GetUserByID(int userID)
|
|
{
|
|
return this.db.Query<LoginModel>(
|
|
"SELECT FirstName + ' ' + LastName AS FullName, * FROM Users WHERE UserID = @UserID ",
|
|
new { UserID = userID }).Take(1).SingleOrDefault();
|
|
}
|
|
|
|
public string GetUserEmailByID(string userID)
|
|
{
|
|
return this.db.Query<string>(
|
|
"SELECT Email FROM Users WHERE UserID = @UserID ",
|
|
new { UserID = userID }).Take(1).SingleOrDefault();
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
internal void UpdateUser(LoginModel model)
|
|
{
|
|
string sql;
|
|
sql = "UPDATE Users SET LoginID = @LoginID, FirstName = @FirstName, LastName = @LastName, Email = @Email, IsActive = @IsActive, IsAdmin = @IsAdmin WHERE UserID = @UserID";
|
|
var parameters = new DynamicParameters();
|
|
parameters.Add("@UserID", model.UserID);
|
|
parameters.Add("@LoginID", model.LoginID);
|
|
parameters.Add("@FirstName", model.FirstName);
|
|
parameters.Add("@LastName", model.LastName );
|
|
parameters.Add("@Email", model.Email);
|
|
parameters.Add("@IsAdmin", model.IsAdmin);
|
|
parameters.Add("@IsActive", model.IsActive);
|
|
|
|
this.db.Execute(sql, parameters);
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
internal void DeleteUser(LoginModel model)
|
|
{
|
|
string sql;
|
|
//sql = "DELETE Users WHERE UserID = @UserID";
|
|
sql = "UPDATE Users SET IsActive = 0 WHERE UserID = @UserID";
|
|
var parameters = new DynamicParameters();
|
|
parameters.Add("@UserID", model.UserID);
|
|
|
|
this.db.Execute(sql, parameters);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
internal void InsertUser(LoginModel model)
|
|
{
|
|
//string sql;
|
|
//sql = "INSERT Users (LoginID, FirstName, LastName, IsAdmin) VALUES (@LoginID, @FirstName, @LastName, @IsAdmin )";
|
|
var parameters = new DynamicParameters();
|
|
parameters.Add("@UserID", model.UserID, DbType.Int32, direction: ParameterDirection.InputOutput);
|
|
parameters.Add("@LoginID", model.LoginID);
|
|
parameters.Add("@FirstName", model.FirstName);
|
|
parameters.Add("@LastName", model.LastName);
|
|
parameters.Add("@Email", model.Email);
|
|
parameters.Add("@IsAdmin", model.IsAdmin);
|
|
|
|
this.db.Execute("InsertUsers", parameters, commandType: CommandType.StoredProcedure);
|
|
int userid = parameters.Get<int>("@UserID");
|
|
model.UserID = userid;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="userID"></param>
|
|
/// <param name="hasITARAccess"></param>
|
|
internal void UpdateInsertITARAccess(string userID, string hasITARAccess)
|
|
{
|
|
|
|
var parameters = new DynamicParameters();
|
|
parameters.Add("@UserID", userID);
|
|
parameters.Add("@HasITARAccess", hasITARAccess);
|
|
|
|
this.db.Execute("ITARAccessUpdateInsert", parameters, commandType: CommandType.StoredProcedure);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="userID"></param>
|
|
/// <returns></returns>
|
|
internal bool GetITARAccess(int userID)
|
|
{
|
|
var parameters = new DynamicParameters();
|
|
parameters.Add("@UserID", userID);
|
|
|
|
var results = this.db.Query<string>(
|
|
"SELECT HasITARAccess FROM SAMUsers, Users WHERE Users.UserID = @UserID AND SAMUsers.UserID = Users.LoginID",
|
|
parameters, commandType: CommandType.Text);
|
|
if ((results != null) && (results.Count() > 0) && (results.First() == "1"))
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="userID"></param>
|
|
/// <returns></returns>
|
|
internal bool GetEC_AD_Users(string userID)
|
|
{
|
|
var parameters = new DynamicParameters();
|
|
parameters.Add("@UserID", userID);
|
|
|
|
var results = this.db.Query<string>(
|
|
"SELECT UserID FROM EC_AD_Users WHERE UserID = @UserID",
|
|
parameters, commandType: CommandType.Text);
|
|
if ((results != null) && (results.Count() > 0))
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
internal void ProcessOoO()
|
|
{
|
|
var parameters = new DynamicParameters();
|
|
this.db.Execute("ProcesOOOEnableStatus", commandType: CommandType.StoredProcedure);
|
|
|
|
}
|
|
internal void ExpireOoO()
|
|
{
|
|
var parameters = new DynamicParameters();
|
|
this.db.Execute("ProcesOOOExpiration", commandType: CommandType.StoredProcedure);
|
|
|
|
}
|
|
}
|
|
}
|