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:
@ -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);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user