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; namespace Fab2ApprovalSystem.DMO { public class AuditDMO { private IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["FabApprovalConnection"].ConnectionString); WorkflowDMO wfDMO = new WorkflowDMO(); /// /// /// /// /// 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("@AuditNo"); return audit; } /// /// /// /// /// /// /// 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("_8DGetAuditItem", parameters, commandType: CommandType.StoredProcedure).Single(); using (var multipleResultItems = this.db.QueryMultiple("_8DGetAuditItem", parameters, commandType: CommandType.StoredProcedure)) { audit = multipleResultItems.Read().SingleOrDefault(); var auditors = multipleResultItems.Read().ToList(); if (audit != null && auditors != null) { if (auditors.Count > 0) audit.AuditorIDs.AddRange(auditors); } var auditorTypes = multipleResultItems.Read().ToList(); if (audit != null && auditorTypes != null) { if (auditorTypes.Count > 0) audit.AuditTypeIDs.AddRange(auditorTypes); } var auditorAreas = multipleResultItems.Read().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; } /// /// /// /// /// /// 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("_8DGetAuditItem", parameters, commandType: CommandType.StoredProcedure).Single(); using (var multipleResultItems = this.db.QueryMultiple("_8DGetAuditItemReadOnly", parameters, commandType: CommandType.StoredProcedure)) { audit = multipleResultItems.Read().SingleOrDefault(); var auditors = multipleResultItems.Read().ToList(); if (audit != null && auditors != null) { if (auditors.Count > 0) audit.AuditorIDs.AddRange(auditors); } var auditorTypes = multipleResultItems.Read().ToList(); if (audit != null && auditorTypes != null) { if (auditorTypes.Count > 0) audit.AuditTypeIDs.AddRange(auditorTypes); } var auditorAreas = multipleResultItems.Read().ToList(); if (audit != null && auditorAreas != null) { if (auditorAreas.Count > 0) audit.AuditedAreaIDs.AddRange(auditorAreas); } } return audit; } /// /// /// /// public IEnumerable GetAuditTypeList() { var parameters = new DynamicParameters(); var auditTypeList = this.db.Query("_8DGetAuditTypeList", parameters, commandType: CommandType.StoredProcedure).ToList(); return auditTypeList; } public IEnumerable GetAuditStandardList() { FabApprovalSystemEntitiesAll db = new FabApprovalSystemEntitiesAll(); var auditStandardList = from a in db.C_8DAuditedStandard select a; return auditStandardList; } /// /// /// /// public IEnumerable GetAuditorList() { var parameters = new DynamicParameters(); var auditorList = this.db.Query("_8DGetAuditorList", parameters, commandType: CommandType.StoredProcedure).ToList(); return auditorList; } /// /// /// /// public IEnumerable GetAuditAreaList() { var parameters = new DynamicParameters(); var auditAreaList = this.db.Query("_8DGetAuditAreaList", parameters, commandType: CommandType.StoredProcedure).ToList(); return auditAreaList; } /// /// /// /// 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 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 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 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 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); } /// /// /// /// /// public IEnumerable GetAuditReportAttachments(int auditNo) { var parameters = new DynamicParameters(); parameters.Add("@AuditNo", auditNo); var data = this.db.Query("_8DGetAuditReportAttachments", parameters, commandType: CommandType.StoredProcedure).ToList(); return data; } /// /// /// /// /// public IEnumerable GetCAFindingsItemAttachments(int caFindingsID) { var parameters = new DynamicParameters(); parameters.Add("@CAFindingsID", caFindingsID); var data = this.db.Query("_8DGetCAFindingsItemAttachments", parameters, commandType: CommandType.StoredProcedure).ToList(); return data; } /// /// /// /// public IEnumerable GetUserList() { var parameters = new DynamicParameters(); var userList = this.db.Query("_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("SELECT * FROM _8DAuditFinding WHERE ID = @AuditFindingsID", parameters).SingleOrDefault(); return data; } public IEnumerable GetAuditFindingCategoryIdsByFindingId(int auditFindingsID) { var parameters = new DynamicParameters(); parameters.Add("@AuditFindingID", auditFindingsID); var data = this.db.Query("SELECT CategoryID FROM _8DAuditFindingCategoryByAuditFinding WHERE AuditFindingID = @AuditFindingID", parameters).ToList(); return data; } /// /// /// /// /// public IEnumerable GetAuditFindingsList(int auditNo) { var parameters = new DynamicParameters(); parameters.Add("@AuditNo", auditNo); var data = this.db.Query("_8DGetAuditFindingsList", parameters, commandType: CommandType.StoredProcedure).ToList(); return data; } /// /// /// /// public void DeleteAuditReportAttachment(int attachmentID) { var parameters = new DynamicParameters(); parameters.Add("@AttachmentID", attachmentID); this.db.Execute("_8DDeleteAuditReportAttachments", parameters, commandType: CommandType.StoredProcedure); } /// /// /// /// 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); } /// /// /// /// /// internal string GetAuditReportAttachmentFileName(string fileGUID) { var parameters = new DynamicParameters(); parameters.Add("@FileGUID", fileGUID); var fileName = this.db.Query("_8DGetAuditReportAttachmentFileName", parameters, commandType: CommandType.StoredProcedure).Single(); return fileName; } /// /// /// /// 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); } /// /// /// /// 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); } /// /// /// /// internal void DeleteAuditFindingsItem(int auditFindingsID ) { var parameters = new DynamicParameters(); parameters.Add("@AuditFindingsID", auditFindingsID); this.db.Execute("_8DDeleteAuditFinding", parameters, commandType: CommandType.StoredProcedure); } /// /// /// /// internal List GetAuditFindingCategories() { var parameters = new DynamicParameters(); return this.db.Query("_8DGetAuditFindingCategories", commandType: CommandType.StoredProcedure).ToList(); } /// /// /// /// /// 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); } /// /// /// /// public IEnumerable GetCorrectiveActionNoList() { var parameters = new DynamicParameters(); var dataList = this.db.Query("_8DGetCorrectiveActionNoList", parameters, commandType: CommandType.StoredProcedure).ToList(); return dataList; } /// /// /// /// /// public List Get8DQA() { List users = new List(); var parameters = new DynamicParameters(); users = this.db.Query("_8DGet8DQA", parameters, commandType: CommandType.StoredProcedure).ToList(); return users; } /// /// /// /// /// public int GetOpenCACountByAuditNo(int auditNo) { int rowCount = 0 ; var parameters = new DynamicParameters(); parameters.Add("@AuditNo", auditNo); rowCount = this.db.Query("_8DGetOpenCACountByAuditNo", parameters, commandType: CommandType.StoredProcedure).Single(); return rowCount; } // CA Findings ==================================================================================================================================== /// /// /// /// 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); } /// /// /// /// 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); } /// /// /// /// public void DeleteCAFindingsItem(int caFindingsID) { var parameters = new DynamicParameters(); parameters.Add("@CAFindingsID", caFindingsID); this.db.Execute("_8DDeleteCAFindingsItem", parameters, commandType: CommandType.StoredProcedure); } /// /// /// /// /// public CAFindings GetCAFindingsItem(int caFindingsID) { var model = new CAFindings(); var parameters = new DynamicParameters(); parameters.Add("@CAFindingsID", caFindingsID); var data = this.db.Query("_8DGetCAFindings", parameters, commandType: CommandType.StoredProcedure).Single(); return data; } /// /// /// /// /// public IEnumerable GetCAFindingsList(int auditNo) { var parameters = new DynamicParameters(); parameters.Add("@AuditNo", auditNo); var dataList = this.db.Query("_8DGetCAFindingsList", parameters, commandType: CommandType.StoredProcedure).ToList(); return dataList; } /// /// /// /// /// 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("IsCAAssignedToAudit"); return returnValue; } } }