Files
csharpcode/omegapro/Omega/Forms/frmQuizTemplate.cs
2025-08-02 05:20:17 +07:00

187 lines
7.0 KiB
C#

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<TblQuizTemplateEntity> QuizTempates { get; set; }
public TblQuizTemplateEntity CurQuizTempate { get; set; }
public CurrencyManager QuizTemplateMan;
public CurrencyManager QuizTemplateManDetailMan;
public EntityCollection<TblQuizTemplateDetailEntity> QuizTemplateDetail { get; set; }
public frmQuizTemplate()
{
InitializeComponent();
}
public override void LoadData()
{
QuizTempates = new EntityCollection<TblQuizTemplateEntity>();
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();
}
}
}