using System.Data.SqlClient; using Dapper.Contrib.Extensions; using Dapper; using static DbTableClass; public class resultClass { public class normalResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; } public class saveasResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public quotationView quotationView = new quotationView(); public projectView projectView = new projectView(); } public class quotationDetailResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public quotationDetail quotationDetail = new quotationDetail(); public quotationView quotationView = new quotationView(); } public class quotationViewListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List quotationViews = new List(); } public class projectViewResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List projectViews = new List(); } public class modelQuotationResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List modelQuotationDetails = new List(); } public class modelQuotationListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List modelQuotations = new List(); } public class modelProjListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List modelProjs = new List(); } public class contactPersonListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List contactPersons = new List(); } public class companyListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List companys = new List(); } public class authMainItemResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List mainItems = new List(); } public class authSubItemResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List subItems = new List(); } public class deptListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List depts = new List(); } public class groupUserListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List users = new List(); } public class groupListResult { public string ret = "no"; public string err_code = "0000"; public string message = ""; public List groups = new List(); } public class groupDetail : group { SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); public List users = new List(); public groupDetail() { } public groupDetail(group objData) { Type projectType = objData.GetType(); foreach (var prop in projectType.GetProperties()) { string propName = prop.Name; var valueProperty = projectType.GetProperty(propName); object propValue = valueProperty.GetValue(objData, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } users = conn.Query("select B.* from groupUser A, users B where A.user_uid = B.user_uid and A.group_uid = @group_uid", new {group_uid = objData.group_uid}).ToList(); } } public class userWithDept : user { SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); public List Depts = new List(); public userWithDept() { } public userWithDept(user objData) { Type projectType = objData.GetType(); foreach (var prop in projectType.GetProperties()) { string propName = prop.Name; var valueProperty = projectType.GetProperty(propName); object propValue = valueProperty.GetValue(objData, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } Depts = conn.Query("select * from userDept where user_uid = @user_uid", new { user_uid = this.user_uid }).ToList(); } } public class quotationDetail : quotation { SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); public List quotationMainItemDetails = new List(); public List payments = new List(); public List invoices = new List(); public user user = new user(); public company company = new company(); public contactPerson contactPerson = new contactPerson(); public quotationDetail() { } public quotationDetail(quotation objData) { Type projectType = objData.GetType(); foreach (var prop in projectType.GetProperties()) { string propName = prop.Name; var valueProperty = projectType.GetProperty(propName); object propValue = valueProperty.GetValue(objData, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } List quotationMainItems = conn.Query("select * from quotationMainItem where quotationMainItem_version = @quotation_version and quotation_uid = @quotation_uid ", new { quotation_version = this.quotation_version, quotation_uid = this.quotation_uid }).ToList(); foreach (quotationMainItem qItem in quotationMainItems) { quotationMainItemDetails.Add(new quotationMainItemDetail(qItem)); } contactPerson = conn.QueryFirstOrDefault("select * from contactPerson where contactPerson_uid = @contactPerson_uid ", new { contactPerson_uid = this.contactPerson_uid }); company = conn.QueryFirstOrDefault("select * from company where company_uid = @company_uid", new { company_uid = this.company_uid} ); user = conn.QueryFirstOrDefault("select * from users where user_uid = @user_uid", new { user_uid = this.quotation_create_uid}); payments = conn.Query("select * from payment where payment_version = @payment_version and quotation_uid = @quotation_uid ", new { payment_version = this.quotation_version, quotation_uid = this.quotation_uid }).ToList(); invoices = conn.Query("select * from invoice where invoice_version = @invoice_version and quotation_uid = @quotation_uid ", new { invoice_version = this.quotation_version, quotation_uid = this.quotation_uid }).ToList(); } } public class quotationMainItemDetail : quotationMainItem { SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); public List quotationSubItems = new List(); public quotationMainItemDetail() { } public quotationMainItemDetail(quotationMainItem objData) { Type projectType = objData.GetType(); foreach (var prop in projectType.GetProperties()) { string propName = prop.Name; var valueProperty = projectType.GetProperty(propName); object propValue = valueProperty.GetValue(objData, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } quotationSubItems = conn.Query("select * from quotationSubItem where quotationSubItem_version = @quotationSubItem_version and quotationMainItem_uid = @quotationMainItem_uid ", new { quotationSubItem_version = this.quotationMainItem_version, quotationMainItem_uid = this.quotationMainItem_uid }).ToList(); } } public class modelQuotationDetail : modelQuotation { SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); public List modelMainItemDetails = new List(); public modelQuotationDetail() { } public modelQuotationDetail(modelQuotation objData) { Type projectType = objData.GetType(); foreach (var prop in projectType.GetProperties()) { string propName = prop.Name; var valueProperty = projectType.GetProperty(propName); object propValue = valueProperty.GetValue(objData, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } List modelMainItems = conn.Query("select * from modelMainItem where modelQuotation_uid = @modelQuotation_uid", new { modelQuotation_uid = objData.modelQuotation_uid }).ToList(); foreach (modelMainItem item in modelMainItems) { this.modelMainItemDetails.Add(new modelMainItemDetail(item)); } } } public class modelMainItemDetail: modelMainItem { SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString")); public List modelSubItems = new List(); public modelMainItemDetail() { } public modelMainItemDetail(modelMainItem objData) { Type projectType = objData.GetType(); foreach (var prop in projectType.GetProperties()) { string propName = prop.Name; var valueProperty = projectType.GetProperty(propName); object propValue = valueProperty.GetValue(objData, null); this.GetType().GetProperty(propName).SetValue(this, propValue); } modelSubItems = conn.Query("select * from modelSubItem where modelMainItem_uid = @modelMainItem_uid", new { modelMainItem_uid = objData.modelMainItem_uid}).ToList(); } } }