【发布时间】:2018-08-30 08:40:30
【问题描述】:
一旦 Is Approved 标志首次设置为 true,我正在努力更改成员属性中的简单真/假标志。我可以更改属性,但未保存/提交该值。我已经尝试过 MemberService.Saved 和 MemberService.Saving。我对 Umbraco 很陌生,所以可能错过了一些明显的东西。
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
MemberService.Saved += MemberService_Saved;
}
void MemberService_Saved(IMemberService sender, Umbraco.Core.Events.SaveEventArgs<IMember> e)
{
foreach (var member in e.SavedEntities)
{
if (!member.IsNewEntity())
{
var dirtyProperties = member.Properties.Where(x => x.WasDirty()).Select(p => p.Alias);
if (dirtyProperties.Contains("umbracoMemberApproved"))
{
if (member.IsApproved && !member.GetValue<bool>("approvalEmailSent"))
{
//Send Email to Customer
//new SmtpClient().Send(mail);
var prop = member.Properties["approvalEmailSent"];
prop.Value = true;
var propValue = member.GetValue<bool>("approvalEmailSent");
//Have verified propValue is now true
sender.Save(member);
}
}
}
}
}
奇怪的是我可以找到另一个成员,更改属性并保存它,而不是通过 e.SavedEntities 发送的成员。
TIA
【问题讨论】: