using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Datalib.DatabaseSpecific; using Datalib.EntityClasses; using Datalib.HelperClasses; using Datalib.RelationClasses; using Datalib.FactoryClasses; using SD.LLBLGen.Pro.ORMSupportClasses; using Datalib.Linq; using System.Linq; namespace Omega.Forms { public partial class frmQuizTemplate : Omega.BasicForms.frmCommon { public int Context {get;set;} public EntityCollection QuizTempates { get; set; } public TblQuizTemplateEntity CurQuizTempate { get; set; } public CurrencyManager QuizTemplateMan; public CurrencyManager QuizTemplateManDetailMan; public EntityCollection QuizTemplateDetail { get; set; } public frmQuizTemplate() { InitializeComponent(); } public override void LoadData() { QuizTempates = new EntityCollection(); adapter.FetchEntityCollection(QuizTempates, null); QuizTemplateMan = (CurrencyManager)this.BindingContext[QuizTempates]; QuizTemplateMan.PositionChanged+=QuizTemplateMan_PositionChanged; grdQuizTemplate.DataSource = QuizTempates; base.LoadData(); //Gen Subject Lists LinqMetaData meta = new LinqMetaData(adapter); repSubjects.DataSource = meta.TblSubject; repoTrainingType.DataSource = meta.TblTrainingType; if (QuizTemplateMan.Count > 0) { CurQuizTempate = QuizTempates[0]; QuizTemplateDetail = CurQuizTempate.TblQuizTemplateDetails; adapter.FetchEntityCollection(QuizTemplateDetail, QuizTempates[0].GetRelationInfoTblQuizTemplateDetails()); this.grdQuizTemplateDetail.DataSource = QuizTempates[QuizTemplateMan.Position].TblQuizTemplateDetails; } } private void QuizTemplateMan_PositionChanged(object sender, EventArgs e) { if (QuizTempates[QuizTemplateMan.Position].IsNew) { QuizTempates[QuizTemplateMan.Position].QuizTemplateId = Guid.NewGuid().ToString("N"); } CurQuizTempate = QuizTempates[QuizTemplateMan.Position]; QuizTemplateDetail = CurQuizTempate.TblQuizTemplateDetails; if (!QuizTemplateDetail.ContainsDirtyContents) { adapter.FetchEntityCollection(QuizTemplateDetail, QuizTempates[QuizTemplateMan.Position].GetRelationInfoTblQuizTemplateDetails()); } this.grdQuizTemplateDetail.DataSource = QuizTempates[QuizTemplateMan.Position].TblQuizTemplateDetails; QuizTemplateManDetailMan = (CurrencyManager)this.BindingContext[QuizTemplateDetail]; QuizTemplateManDetailMan.PositionChanged+=QuizTemplateManDetailMan_PositionChanged; grdQuizTemplateDetail.DataSource = QuizTemplateDetail; } private void QuizTemplateManDetailMan_PositionChanged(object sender, EventArgs e) { if (QuizTemplateDetail[QuizTemplateManDetailMan.Position].IsNew) { QuizTemplateDetail[QuizTemplateManDetailMan.Position].UniqueId = Guid.NewGuid().ToString("N"); } } public override void SaveRecord() { adapter.SaveEntityCollection(QuizTempates, true, true); base.SaveRecord(); } private void Save_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { SaveRecord(); } private void Close_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { this.Close(); } private void btnViewHeader_ButtonPressed(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { frmViewOpenXMLContent frm = new frmViewOpenXMLContent(); frm.View = QuizTemplateView; frm.Column = colHeaderDes; frm.LoadData(); frm.Show(); } private void Delete_Click(object sender, EventArgs e) { if (MessageBox.Show("Bạn muốn xóa bản ghi này?", "Xóa bản ghi", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; switch(Context) { case 1: TblQuizTemplateEntity deletedTempate = QuizTempates[this.BindingContext[QuizTempates].Position]; QuizTempates.Remove(deletedTempate); adapter.DeleteEntity(deletedTempate); break; case 2: TblQuizTemplateDetailEntity deletedDetail = QuizTemplateDetail[this.BindingContext[QuizTemplateDetail].Position]; QuizTemplateDetail.Remove(deletedDetail); adapter.DeleteEntity(deletedDetail); break; } } private void grdQuizTemplate_Enter(object sender, EventArgs e) { Context =1; } private void grdQuizTemplateDetail_Enter(object sender, EventArgs e) { Context =2; } private void barDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (MessageBox.Show("Bạn muốn xóa bản ghi này?", "Xóa bản ghi", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; switch (Context) { case 1: TblQuizTemplateEntity deletedTempate = QuizTempates[this.BindingContext[QuizTempates].Position]; QuizTempates.Remove(deletedTempate); adapter.DeleteEntity(deletedTempate); break; case 2: TblQuizTemplateDetailEntity deletedDetail = QuizTemplateDetail[this.BindingContext[QuizTemplateDetail].Position]; QuizTemplateDetail.Remove(deletedDetail); adapter.DeleteEntity(deletedDetail); break; } } private void btnViewHeader_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { frmViewOpenXMLContent frm = new frmViewOpenXMLContent(); frm.View = QuizTemplateView; frm.Column = colHeaderDes; frm.LoadData(); frm.Show(); } private void btnViewFooter_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { frmViewOpenXMLContent frm = new frmViewOpenXMLContent(); frm.View = QuizTemplateView; frm.Column = colFooterDes; frm.LoadData(); frm.Show(); } } }