Я борюсь с изменением простого флага true / false в свойствах элемента, как только флаг 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.
ТИА