Tasks 184281, 184799, 184800, 184801 and 184802

Align .editorconfig files

Move Controller logic to DMO classes

GlobalVars.AppSettings = Models.AppSettings.GetFromConfigurationManager();

Question EditorConfig
Project level editorconfig
Format White Spaces
AppSetting when EnvironmentVariable not set
Corrective Actions Tests
Schedule Actions Tests
DMO Tests
Controller Tests

Get ready to use VSCode IDE
This commit is contained in:
2024-12-04 11:58:13 -07:00
parent 538b1f817e
commit b1c6903c1c
150 changed files with 29146 additions and 33456 deletions

View File

@ -1,129 +1,141 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using Fab2ApprovalSystem.Models;
using Dapper;
using System.Transactions;
using Fab2ApprovalSystem.Misc;
using Fab2ApprovalSystem.Models;
namespace Fab2ApprovalSystem.DMO
{
public class PartsRequestDMO
{
private IDbConnection db = new SqlConnection(GlobalVars.DB_CONNECTION_STRING);
namespace Fab2ApprovalSystem.DMO;
WorkflowDMO wfDMO = new WorkflowDMO();
public class PartsRequestDMO {
public IEnumerable<PartsRequestList> GetPartsRequestList()
{
var r = this.db.Query<PartsRequestList>("PartsRequestGetList", commandType: CommandType.StoredProcedure).ToList();
return r;
}
private readonly AppSettings _AppSettings;
private readonly IDbConnection db = new SqlConnection(GlobalVars.DB_CONNECTION_STRING);
public void Insert(PartsRequest pr)
{
var parameters = new DynamicParameters();
parameters.Add("@PRNumber", value: pr.PRNumber, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);
parameters.Add("@OriginatorID", pr.OriginatorID);
this.db.Execute("PartsRequestInsert", parameters, commandType: CommandType.StoredProcedure);
pr.PRNumber = parameters.Get<int>("@PRNumber");
}
public void Update(PartsRequest pr)
{
var parameters = new DynamicParameters();
parameters.Add("@PRNumber", pr.PRNumber);
parameters.Add("@Title", pr.Title);
parameters.Add("@RequestorID", pr.RequestorID);
parameters.Add("@TechLeadID", pr.TechLeadID);
parameters.Add("@Description", pr.Description);
this.db.Execute("PartsRequestUpdate", parameters, commandType: CommandType.StoredProcedure);
}
public PartsRequest Get(int PRNumber)
{
var parameters = new DynamicParameters();
parameters.Add("@PRNumber", value: PRNumber, dbType: DbType.Int32);
return this.db.Query<PartsRequest>("PartsRequestGet", parameters, commandType: CommandType.StoredProcedure).SingleOrDefault();
}
public IEnumerable<PartsRequestAttachmentList> GetAttachments(int prNumber)
{
var attachments = this.db.Query<PartsRequestAttachmentList>(
"SELECT AttachmentID, PRNumber, FileName, A.UserID, UploadDate, U.FirstName + ' ' + U.LastName AS FullName " +
"FROM PartsRequestAttachment A " +
"INNER JOIN Users U ON U.UserID = A.UserID " +
"WHERE PRNumber = @PRNumber",
new { PRNumber = prNumber }).ToList();
return attachments;
}
public void InsertAttachment(PartsRequestAttachment attach)
{
var parameters = new DynamicParameters();
parameters.Add("@PRNumber", attach.PRNumber);
parameters.Add("@UserID", attach.UserID);
parameters.Add("@FileName", attach.FileName);
this.db.Execute("PartsRequestInsertAttachment", parameters, commandType: CommandType.StoredProcedure);
}
public string GetFileName(string attachmentID)
{
var parameters = new DynamicParameters();
parameters.Add("@AttachmentID", attachmentID);
var fileName = this.db.Query<string>("PartsRequestGetAttachmentFileName", parameters, commandType: CommandType.StoredProcedure).Single();
return fileName;
}
public void DeleteAttachment(int attachmentID)
{
var parameters = new DynamicParameters();
parameters.Add("@AttachmentID", attachmentID);
this.db.Execute("PartsRequestDeleteAttachment", parameters, commandType: CommandType.StoredProcedure);
}
public void Submit(int prNumber, int userID)
{
var parameters = new DynamicParameters();
parameters.Add("@PRNumber", prNumber);
parameters.Add("@UserID", userID);
this.db.Execute("PartsRequestSubmitForApproval", parameters, commandType: CommandType.StoredProcedure );
}
public IEnumerable<ApprovalLogHistory> GetApprovalLogHistory(int prNumber)
{
var parameters = new DynamicParameters();
parameters.Add("@PRNumber", prNumber);
var approverList = this.db.Query<ApprovalLogHistory>("PartsRequestGetApprovalLogHistory", parameters, commandType: CommandType.StoredProcedure).ToList();
return approverList;
}
public IEnumerable<MyPartsRequestList> GetMyPartsRequests(int userID)
{
var parameters = new DynamicParameters();
parameters.Add("@UserID", userID);
var r = this.db.Query<MyPartsRequestList>("PartsRequestGetListByUser", parameters, commandType: CommandType.StoredProcedure);
return r.ToList();
}
public void DeleteDocument(int prNumber, int userid)
{
var parameters = new DynamicParameters();
parameters.Add("@UserID", userid);
parameters.Add("@PRNumber", prNumber);
this.db.Execute("PartsRequestDelete", parameters, commandType: CommandType.StoredProcedure);
}
public PartsRequestDMO(AppSettings appSettings) =>
_AppSettings = appSettings;
public IEnumerable<PartsRequestList> GetPartsRequestList() {
List<PartsRequestList> r = db.Query<PartsRequestList>("PartsRequestGetList", commandType: CommandType.StoredProcedure).ToList();
return r;
}
}
public void Insert(PartsRequest pr) {
DynamicParameters parameters = new();
parameters.Add("@PRNumber", value: pr.PRNumber, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);
parameters.Add("@OriginatorID", pr.OriginatorID);
db.Execute("PartsRequestInsert", parameters, commandType: CommandType.StoredProcedure);
pr.PRNumber = parameters.Get<int>("@PRNumber");
}
public void Update(PartsRequest pr) {
DynamicParameters parameters = new();
parameters.Add("@PRNumber", pr.PRNumber);
parameters.Add("@Title", pr.Title);
parameters.Add("@RequestorID", pr.RequestorID);
parameters.Add("@TechLeadID", pr.TechLeadID);
parameters.Add("@Description", pr.Description);
db.Execute("PartsRequestUpdate", parameters, commandType: CommandType.StoredProcedure);
}
public PartsRequest Get(int PRNumber) {
DynamicParameters parameters = new();
parameters.Add("@PRNumber", value: PRNumber, dbType: DbType.Int32);
return db.Query<PartsRequest>("PartsRequestGet", parameters, commandType: CommandType.StoredProcedure).SingleOrDefault();
}
public IEnumerable<PartsRequestAttachmentList> GetAttachments(int prNumber) {
List<PartsRequestAttachmentList> attachments = db.Query<PartsRequestAttachmentList>(
"SELECT AttachmentID, PRNumber, FileName, A.UserID, UploadDate, U.FirstName + ' ' + U.LastName AS FullName " +
"FROM PartsRequestAttachment A " +
"INNER JOIN Users U ON U.UserID = A.UserID " +
"WHERE PRNumber = @PRNumber",
new { PRNumber = prNumber }).ToList();
return attachments;
}
public void InsertAttachment(PartsRequestAttachment attach) {
DynamicParameters parameters = new();
parameters.Add("@PRNumber", attach.PRNumber);
parameters.Add("@UserID", attach.UserID);
parameters.Add("@FileName", attach.FileName);
db.Execute("PartsRequestInsertAttachment", parameters, commandType: CommandType.StoredProcedure);
}
public string GetFileName(string attachmentID) {
DynamicParameters parameters = new();
parameters.Add("@AttachmentID", attachmentID);
var fileName = db.Query<string>("PartsRequestGetAttachmentFileName", parameters, commandType: CommandType.StoredProcedure).Single();
return fileName;
}
public void DeleteAttachment(int attachmentID) {
DynamicParameters parameters = new();
parameters.Add("@AttachmentID", attachmentID);
db.Execute("PartsRequestDeleteAttachment", parameters, commandType: CommandType.StoredProcedure);
}
public void Submit(int prNumber, int userID) {
DynamicParameters parameters = new();
parameters.Add("@PRNumber", prNumber);
parameters.Add("@UserID", userID);
db.Execute("PartsRequestSubmitForApproval", parameters, commandType: CommandType.StoredProcedure);
}
public IEnumerable<ApprovalLogHistory> GetApprovalLogHistory(int prNumber) {
DynamicParameters parameters = new();
parameters.Add("@PRNumber", prNumber);
List<ApprovalLogHistory> approverList = db.Query<ApprovalLogHistory>("PartsRequestGetApprovalLogHistory", parameters, commandType: CommandType.StoredProcedure).ToList();
return approverList;
}
public IEnumerable<MyPartsRequestList> GetMyPartsRequests(int userID) {
DynamicParameters parameters = new();
parameters.Add("@UserID", userID);
IEnumerable<MyPartsRequestList> r = db.Query<MyPartsRequestList>("PartsRequestGetListByUser", parameters, commandType: CommandType.StoredProcedure);
return r.ToList();
}
public void DeleteDocument(int prNumber, int userid) {
DynamicParameters parameters = new();
parameters.Add("@UserID", userid);
parameters.Add("@PRNumber", prNumber);
db.Execute("PartsRequestDelete", parameters, commandType: CommandType.StoredProcedure);
}
public void AttachSave(int prNumber, int userId, string fullFileName, Stream stream) {
// Some browsers send file names with full path.
// We are only interested in the file name.
var fileName = Path.GetFileName(fullFileName);
string prFolderPath = _AppSettings.AttachmentFolder + "PartsRequest\\" + prNumber.ToString();
DirectoryInfo di = new(prFolderPath);
if (!di.Exists)
di.Create();
var physicalPath = Path.Combine(prFolderPath, fileName);
using (FileStream fileStream = new(physicalPath, FileMode.Create, FileAccess.Write)) {
stream.CopyTo(fileStream);
}
PartsRequestAttachment attach = new() {
PRNumber = prNumber,
FileName = fileName,
UserID = userId,
};
InsertAttachment(attach);
}
}