📄 emailtemplateaccessor.cs.svn-base
字号:
using System.Collections;
using System.Data.Common;
using DatabaseUtil;
using Mied.BusinessObject;
using Mied.BusinessObject.Emails;
using Mied.BusinessObject.Preferences;
using Mied.DAL.TableSchema;
using Mied.DAL.Internal;
namespace Mied.DAL.Accesses
{
public class EmailTemplateAccessor : AccessorSelect
{
public EmailTemplateAccessor(MiedDatabase database)
: base(database, EmailTemplateSchema.TableName)
{
}
public EmailTemplateList SelectTemplateList(EmailTemplateType type)
{
return (EmailTemplateList)this.SelectList(EmailTemplateSchema.FieldType, (int)type);
}
public void Initialize()
{
this.CreateEmailPreparatoryTemplates(EmailTemplateType.SubjectInvoice);
this.CreateEmailPreparatoryTemplates(EmailTemplateType.SubjectEstimate);
this.CreateEmailPreparatoryTemplates(EmailTemplateType.SubjectPurchaseOrder);
this.CreateEmailPreparatoryTemplates(EmailTemplateType.SubjectStatement);
this.CreateEmailPreparatoryTemplates(EmailTemplateType.BodyInvoice);
this.CreateEmailPreparatoryTemplates(EmailTemplateType.BodyEstimate);
this.CreateEmailPreparatoryTemplates(EmailTemplateType.BodyPurchaseOrder);
this.CreateEmailPreparatoryTemplates(EmailTemplateType.BodyStatement);
}
internal new void DeleteAll()
{
base.DeleteAll();
}
protected override CommandFieldValueList BuildPairList(Entity entity)
{
EmailTemplate template = (EmailTemplate)entity;
CommandFieldValueList pairList = new CommandFieldValueList(template.ID);
pairList.Add(EmailTemplateSchema.FieldName, template.Name);
pairList.Add(EmailTemplateSchema.FieldContent, template.Content);
pairList.Add(EmailTemplateSchema.FieldType, template.Type);
pairList.Add(EmailTemplateSchema.FieldPreparatory, template.Preparatory);
return pairList;
}
protected override Entity ReadEntity(RecordReader reader)
{
bool preparatory = reader.GetBoolean(EmailTemplateSchema.FieldPreparatory);
EmailTemplate template;
if (preparatory)
template = new EmailPreparatoryTemplate();
else
template = new EmailTemplate();
template.ID = reader.GetInt32(EmailTemplateSchema.FieldID);
template.Name = reader.GetString(EmailTemplateSchema.FieldName);
template.Content = reader.GetString(EmailTemplateSchema.FieldContent);
template.Type = (EmailTemplateType)reader.GetInt32(EmailTemplateSchema.FieldType);
int defaultID = GetDefaultTemplate(template.Type);
if (template.ID == defaultID)
template.Default = true;
return template;
}
protected override IList CreateEntityList()
{
return new EmailTemplateList();
}
private void CreateEmailPreparatoryTemplates(EmailTemplateType type)
{
EmailPreparatoryTemplates list = new EmailPreparatoryTemplates(type);
foreach (EmailTemplate template in list)
this.Save(template);
}
protected override void SaveBefore(Entity entity, DbTransaction transaction)
{
EmailTemplate template = (EmailTemplate)entity;
int defaultID = GetDefaultTemplate(template.Type);
if (template.ID == defaultID)
if (template.Default == false)
{
DebugReport.EmailDefaultTemplateError();
template.Default = true;
}
}
protected override void SaveAfter(Entity entity, Entity entityOld, DbTransaction transaction)
{
EmailTemplate template = (EmailTemplate)entity;
if (template.Default)
SetDefaultTemplate(template.Type, template.ID.Value);
}
private int GetDefaultTemplate(EmailTemplateType type)
{
CompanyPreference preference = this.Database.CompanyPreference;
int defaultID = preference.GetEmailDefaultTemplate(type);
return defaultID;
}
private void SetDefaultTemplate(EmailTemplateType type, int id)
{
CompanyPreference preference = this.Database.CompanyPreference;
preference.SetEmailDefaultTemplate(type, id);
this.Database.CompanyPreference = preference;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -