2023-10-03 10:14:54 -07:00

660 lines
24 KiB
C#

using Dapper;
using Fab2ApprovalSystem.Models;
using Fab2ApprovalSystem.ViewModels;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Data.Linq;
using System.Linq;
using System.Text;
using System.Transactions;
using System.Web;
using Fab2ApprovalSystem.Misc;
namespace Fab2ApprovalSystem.DMO
{
public class AuditDMO
{
private IDbConnection db = new SqlConnection(GlobalVars.DB_CONNECTION_STRING);
WorkflowDMO wfDMO = new WorkflowDMO();
/// <summary>
///
/// </summary>
/// <param name="audit"></param>
/// <returns></returns>
public Audit InsertAudit(Audit audit)
{
var parameters = new DynamicParameters();
parameters = new DynamicParameters();
parameters.Add("@AuditNo", value: audit.AuditNo, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);
parameters.Add("@OriginatorID", audit.OriginatorID);
this.db.Execute("_8DInsertAuditItem", parameters, commandType: CommandType.StoredProcedure);
audit.AuditNo = parameters.Get<int>("@AuditNo");
return audit;
}
/// <summary>
///
/// </summary>
/// <param name="auditNo"></param>
/// <param name="isITAR"></param>
/// <param name="userID"></param>
/// <returns></returns>
public Audit GetAuditItem(int auditNo, int userID)
{
Audit audit = new Audit();
//isITAR = 2;
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", value: auditNo);
parameters.Add("@UserID", userID);
//parameters.Add("@IsITAR", value: isITAR, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);
//audit = this.db.Query<Audit>("_8DGetAuditItem", parameters, commandType: CommandType.StoredProcedure).Single();
using (var multipleResultItems = this.db.QueryMultiple("_8DGetAuditItem", parameters, commandType: CommandType.StoredProcedure))
{
audit = multipleResultItems.Read<Audit>().SingleOrDefault();
var auditors = multipleResultItems.Read<int>().ToList();
if (audit != null && auditors != null)
{
if (auditors.Count > 0)
audit.AuditorIDs.AddRange(auditors);
}
var auditorTypes = multipleResultItems.Read<int>().ToList();
if (audit != null && auditorTypes != null)
{
if (auditorTypes.Count > 0)
audit.AuditTypeIDs.AddRange(auditorTypes);
}
var auditorAreas = multipleResultItems.Read<int>().ToList();
if (audit != null && auditorAreas != null)
{
if (auditorAreas.Count > 0)
audit.AuditedAreaIDs.AddRange(auditorAreas);
}
}
//FabApprovalSystemEntitiesAll auditDb = new FabApprovalSystemEntitiesAll();
//var auditedStandardIDs = (from a in auditDb.C_8DAuditedStandardByAudit where a.AuditNo == audit.AuditNo select a.AuditedStandardID).ToList();
//foreach (var id in auditedStandardIDs)
//{
// audit.AuditedStandardIDs.Add(id);
//}
return audit;
}
/// <summary>
///
/// </summary>
/// <param name="auditNo"></param>
/// <param name="userID"></param>
/// <returns></returns>
public Audit GetAuditItemReadOnly(int auditNo, int userID)
{
Audit audit = new Audit();
//isITAR = 2;
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", value: auditNo);
parameters.Add("@UserID", userID);
//parameters.Add("@IsITAR", value: isITAR, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);
//audit = this.db.Query<Audit>("_8DGetAuditItem", parameters, commandType: CommandType.StoredProcedure).Single();
using (var multipleResultItems = this.db.QueryMultiple("_8DGetAuditItemReadOnly", parameters, commandType: CommandType.StoredProcedure))
{
audit = multipleResultItems.Read<Audit>().SingleOrDefault();
var auditors = multipleResultItems.Read<int>().ToList();
if (audit != null && auditors != null)
{
if (auditors.Count > 0)
audit.AuditorIDs.AddRange(auditors);
}
var auditorTypes = multipleResultItems.Read<int>().ToList();
if (audit != null && auditorTypes != null)
{
if (auditorTypes.Count > 0)
audit.AuditTypeIDs.AddRange(auditorTypes);
}
var auditorAreas = multipleResultItems.Read<int>().ToList();
if (audit != null && auditorAreas != null)
{
if (auditorAreas.Count > 0)
audit.AuditedAreaIDs.AddRange(auditorAreas);
}
}
return audit;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<AuditType> GetAuditTypeList()
{
var parameters = new DynamicParameters();
var auditTypeList = this.db.Query<AuditType>("_8DGetAuditTypeList", parameters, commandType: CommandType.StoredProcedure).ToList();
return auditTypeList;
}
public IEnumerable<C_8DAuditedStandard> GetAuditStandardList()
{
FabApprovalSystemEntitiesAll db = new FabApprovalSystemEntitiesAll();
var auditStandardList = from a in db.C_8DAuditedStandard select a;
return auditStandardList;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<Auditor> GetAuditorList()
{
var parameters = new DynamicParameters();
var auditorList = this.db.Query<Auditor>("_8DGetAuditorList", parameters, commandType: CommandType.StoredProcedure).ToList();
return auditorList;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<AuditedArea> GetAuditAreaList()
{
var parameters = new DynamicParameters();
var auditAreaList = this.db.Query<AuditedArea>("_8DGetAuditAreaList", parameters, commandType: CommandType.StoredProcedure).ToList();
return auditAreaList;
}
/// <summary>
///
/// </summary>
/// <param name="audit"></param>
public void UpdateAudit(Audit audit, int userID)
{
int result = 0;
var parameters = new DynamicParameters();
using(var transaction = new TransactionScope())
{
try
{
parameters.Add("AuditNo", audit.AuditNo);
parameters.Add("Title", audit.AuditTitle);
//parameters.Add("AuditTypeID", audit.AuditTypeID);
parameters.Add("AuditDate", audit.AuditDate);
parameters.Add("AuditStatus", audit.AuditStatus);
parameters.Add("AuditScore", audit.AuditScore);
//parameters.Add("AuditedAreaID", audit.AuditedAreaID);
parameters.Add("Auditees", audit.Auditees);
this.db.Execute("_8DUpdateAudit", param: parameters, commandType: CommandType.StoredProcedure);
parameters = new DynamicParameters();
parameters.Add("@AuditNo", audit.AuditNo);
this.db.Execute("_8DDeleteAuditors", parameters, commandType: CommandType.StoredProcedure);
List<int> auditors = audit.AuditorIDs;
if (auditors != null)
{
foreach (int auditorID in auditors)
{
parameters = new DynamicParameters();
parameters.Add("@AuditNo", audit.AuditNo);
parameters.Add("@AuditorID", auditorID);
this.db.Execute("_8DInsertAuditor", parameters, commandType: CommandType.StoredProcedure);
}
}
parameters = new DynamicParameters();
parameters.Add("@AuditNo", audit.AuditNo);
this.db.Execute("_8DDeleteAuditTypes", parameters, commandType: CommandType.StoredProcedure);
List<int> auditTypes = audit.AuditTypeIDs;
if (auditTypes != null)
{
foreach (int auditTypeID in auditTypes)
{
parameters = new DynamicParameters();
parameters.Add("@AuditNo", audit.AuditNo);
parameters.Add("@AuditTypeID", auditTypeID);
this.db.Execute("_8DInsertAuditType", parameters, commandType: CommandType.StoredProcedure);
}
}
parameters = new DynamicParameters();
parameters.Add("@AuditNo", audit.AuditNo);
this.db.Execute("_8DDeleteAuditedAreas", parameters, commandType: CommandType.StoredProcedure);
List<int> auditedAreas = audit.AuditedAreaIDs;
if (auditedAreas != null)
{
foreach (int auditedAreaID in auditedAreas)
{
parameters = new DynamicParameters();
parameters.Add("@AuditNo", audit.AuditNo);
parameters.Add("@AuditedAreaID", auditedAreaID);
this.db.Execute("_8DInsertAuditedArea", parameters, commandType: CommandType.StoredProcedure);
}
}
transaction.Complete();
}
catch (Exception ex)
{
transaction.Dispose();
throw new Exception(ex.Message + " " + ex.InnerException);
}
}
//FabApprovalSystemEntitiesAll auditDb = new FabApprovalSystemEntitiesAll();
//List<int> auditedStandards = audit.AuditedStandardIDs;
//if (auditedStandards != null)
//{
// foreach (int auditedStandard in auditedStandards)
// {
// var auditStandardExists = (from a in auditDb.C_8DAuditedStandardByAudit where a.AuditNo == audit.AuditNo && a.AuditedStandardID == auditedStandard select a).ToList();
// if (auditStandardExists.Count() <= 0)
// {
// C_8DAuditedStandardByAudit standard = new C_8DAuditedStandardByAudit
// {
// AuditNo = audit.AuditNo,
// AuditedStandardID = auditedStandard
// };
// auditDb.C_8DAuditedStandardByAudit.Add(standard);
// auditDb.SaveChanges();
// }
// }
//}
//parameters = new DynamicParameters();
//parameters.Add("AuditNo", audit.AuditNo);
//this.db.Execute("_8DUpdateAuditScore", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="issueID"></param>
/// <returns></returns>
public IEnumerable<AuditReportAttachment> GetAuditReportAttachments(int auditNo)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", auditNo);
var data = this.db.Query<AuditReportAttachment>("_8DGetAuditReportAttachments", parameters, commandType: CommandType.StoredProcedure).ToList();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="auditNo"></param>
/// <returns></returns>
public IEnumerable<AuditReportAttachment> GetCAFindingsItemAttachments(int caFindingsID)
{
var parameters = new DynamicParameters();
parameters.Add("@CAFindingsID", caFindingsID);
var data = this.db.Query<AuditReportAttachment>("_8DGetCAFindingsItemAttachments", parameters, commandType: CommandType.StoredProcedure).ToList();
return data;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<CAUserList> GetUserList()
{
var parameters = new DynamicParameters();
var userList = this.db.Query<CAUserList>("_8DGetUserList", parameters, commandType: CommandType.StoredProcedure).ToList();
return userList;
}
public AuditFindings GetAuditFindingsByID(int auditFindingsID)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditFindingsID", auditFindingsID);
var data = this.db.Query<AuditFindings>("SELECT * FROM _8DAuditFinding WHERE ID = @AuditFindingsID", parameters).SingleOrDefault();
return data;
}
public IEnumerable<int> GetAuditFindingCategoryIdsByFindingId(int auditFindingsID)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditFindingID", auditFindingsID);
var data = this.db.Query<int>("SELECT CategoryID FROM _8DAuditFindingCategoryByAuditFinding WHERE AuditFindingID = @AuditFindingID", parameters).ToList();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="auditNo"></param>
/// <returns></returns>
public IEnumerable<AuditFindings> GetAuditFindingsList(int auditNo)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", auditNo);
var data = this.db.Query<AuditFindings>("_8DGetAuditFindingsList", parameters, commandType: CommandType.StoredProcedure).ToList();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="attachmentID"></param>
public void DeleteAuditReportAttachment(int attachmentID)
{
var parameters = new DynamicParameters();
parameters.Add("@AttachmentID", attachmentID);
this.db.Execute("_8DDeleteAuditReportAttachments", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="attach"></param>
public void InsertAuditReportAttachment(AuditReportAttachment attach)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", attach.AuditNo);
parameters.Add("@CAFindingsID", attach.CAFindingsID);
parameters.Add("@UploadedByID", attach.UploadedByID);
parameters.Add("@FileName", attach.FileName);
parameters.Add("@FileGUID", attach.FileGUID);
this.db.Execute("_8DInsertAuditReportAttachment", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="fileGUID"></param>
/// <returns></returns>
internal string GetAuditReportAttachmentFileName(string fileGUID)
{
var parameters = new DynamicParameters();
parameters.Add("@FileGUID", fileGUID);
var fileName = this.db.Query<string>("_8DGetAuditReportAttachmentFileName", parameters, commandType: CommandType.StoredProcedure).Single();
return fileName;
}
/// <summary>
///
/// </summary>
/// <param name="data"></param>
internal void InsertAuditFindingsItem(AuditFindings data)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", data.AuditNo);
parameters.Add("@Findings", data.Findings);
parameters.Add("@ViolatedClause", data.ViolatedClause);
parameters.Add("@FindingType", data.FindingType);
parameters.Add("@FindingCategories", data.FindingCategories);
parameters.Add("@CANo", data.CANo);
parameters.Add("@Title", data.Title);
this.db.Execute("_8DInsertAuditFinding", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="data"></param>
internal void UpdateAuditFindingsItem(AuditFindings data)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditFindingsID", data.ID);
parameters.Add("@Findings", data.Findings);
parameters.Add("@ViolatedClause", data.ViolatedClause);
parameters.Add("@FindingType", data.FindingType);
parameters.Add("@FindingCategories", data.FindingCategories);
parameters.Add("@CANo", data.CANo);
parameters.Add("@Title", data.Title);
this.db.Execute("_8DUpdateAuditFinding", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="auditFindingsID"></param>
internal void DeleteAuditFindingsItem(int auditFindingsID )
{
var parameters = new DynamicParameters();
parameters.Add("@AuditFindingsID", auditFindingsID);
this.db.Execute("_8DDeleteAuditFinding", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
internal List<AuditFindingCategory> GetAuditFindingCategories()
{
var parameters = new DynamicParameters();
return this.db.Query<AuditFindingCategory>("_8DGetAuditFindingCategories", commandType: CommandType.StoredProcedure).ToList();
}
/// <summary>
///
/// </summary>
/// <param name="userID"></param>
/// <param name="issueID"></param>
public void ReleaseLockOnDocument(int userID, int issueID)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", issueID);
parameters.Add("@UserID", userID);
this.db.Execute("_8DReleaseLockOnAuditDocuments", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<CANoList> GetCorrectiveActionNoList()
{
var parameters = new DynamicParameters();
var dataList = this.db.Query<CANoList>("_8DGetCorrectiveActionNoList", parameters, commandType: CommandType.StoredProcedure).ToList();
return dataList;
}
/// <summary>
///
/// </summary>
/// <param name="subRoleCategoryID"></param>
/// <returns></returns>
public List<int> Get8DQA()
{
List<int> users = new List<int>();
var parameters = new DynamicParameters();
users = this.db.Query<int>("_8DGet8DQA", parameters, commandType: CommandType.StoredProcedure).ToList();
return users;
}
/// <summary>
///
/// </summary>
/// <param name="auditNo"></param>
/// <returns></returns>
public int GetOpenCACountByAuditNo(int auditNo)
{
int rowCount = 0 ;
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", auditNo);
rowCount = this.db.Query<int>("_8DGetOpenCACountByAuditNo", parameters, commandType: CommandType.StoredProcedure).Single();
return rowCount;
}
// CA Findings ====================================================================================================================================
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void InsertCAFindings(CAFindings model)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", model.AuditNo);
parameters.Add("@CAFinding", model.CAFinding);
parameters.Add("@CorrectiveAction", model.CorrectiveAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImplementedDate", model.ImplementedDate);
this.db.Execute("_8DInsertCAFindings", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void UpdateCAFindings(CAFindings model)
{
var parameters = new DynamicParameters();
parameters.Add("@CAFindingsID", model.ID);
parameters.Add("@CAFinding", model.CAFinding);
parameters.Add("@CorrectiveAction", model.CorrectiveAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImplementedDate", model.ImplementedDate);
this.db.Execute("_8DUpdateCAFindings", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="caFindingsID"></param>
public void DeleteCAFindingsItem(int caFindingsID)
{
var parameters = new DynamicParameters();
parameters.Add("@CAFindingsID", caFindingsID);
this.db.Execute("_8DDeleteCAFindingsItem", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="caFindingsID"></param>
/// <returns></returns>
public CAFindings GetCAFindingsItem(int caFindingsID)
{
var model = new CAFindings();
var parameters = new DynamicParameters();
parameters.Add("@CAFindingsID", caFindingsID);
var data = this.db.Query<CAFindings>("_8DGetCAFindings", parameters, commandType: CommandType.StoredProcedure).Single();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="caNo"></param>
/// <returns></returns>
public IEnumerable<CAFindings> GetCAFindingsList(int auditNo)
{
var parameters = new DynamicParameters();
parameters.Add("@AuditNo", auditNo);
var dataList = this.db.Query<CAFindings>("_8DGetCAFindingsList", parameters, commandType: CommandType.StoredProcedure).ToList();
return dataList;
}
/// <summary>
///
/// </summary>
/// <param name="CANo"></param>
/// <returns></returns>
public int IsCAAssignedToAudit(int CANo, int auditNo)
{
var parameters = new DynamicParameters();
int returnValue = 1;
parameters.Add("@CANo", CANo);
parameters.Add("@AuditNo", auditNo);
parameters.Add("@IsCAAssignedToAudit", returnValue, direction: ParameterDirection.Output);
this.db.Execute("_8DIsCAAssignedtoAudit", parameters, commandType: CommandType.StoredProcedure);
returnValue = parameters.Get<int>("IsCAAssignedToAudit");
return returnValue;
}
}
}