protected override void InternalProcess(User user, Group @group, JobData jobData) { GroupEnumerate groupEnumerate = new GroupEnumerate(@group.Id.Value); foreach (Group g in groupEnumerate) { var lookups = g.ExtendedAttributes.ToLookup(attribute => attribute.Key, val => (IExtendedAttribute)val); string setting = lookups.GetString("DefaultDigestSetting", "unset"); if ("daily".Equals(setting)) { PublicApi.Users.RunAsUser(user.Id.Value, () => { EmailDigestSubscription subscription = PublicApi.EmailDigestSubscriptions.GetByGroup(@group.Id.Value); if (subscription != null) { PublicApi.EmailDigestSubscriptions.Update(subscription.Id.Value, 1); } else { PublicApi.EmailDigestSubscriptions.Create("group", @group.Id.Value, 1); } }); } else if ("weekly".Equals(setting)) { PublicApi.Users.RunAsUser(user.Id.Value, () => { EmailDigestSubscription subscription = PublicApi.EmailDigestSubscriptions.GetByGroup(@group.Id.Value); if (subscription != null) { PublicApi.EmailDigestSubscriptions.Update(subscription.Id.Value, 7); } else { PublicApi.EmailDigestSubscriptions.Create("group", @group.Id.Value, 7); } }); } else if("off".Equals(setting)) { PublicApi.Users.RunAsUser(user.Id.Value, () => { EmailDigestSubscription subscription = PublicApi.EmailDigestSubscriptions.GetByGroup(@group.Id.Value); if (subscription != null) { PublicApi.EmailDigestSubscriptions.Delete(subscription.Id.Value); } }); } } }
protected override void InternalProcess(User user, Group @group, JobData jobData) { GroupEnumerate groupEnumerate = new GroupEnumerate(@group.Id.Value); foreach (Group g in groupEnumerate) { var lookups = g.ExtendedAttributes.ToLookup(attribute => attribute.Key, val => (IExtendedAttribute)val); string setting = lookups.GetString("DefaultDigestSetting", "unset"); if ("daily".Equals(setting)) { PublicApi.Users.RunAsUser(user.Id.Value, () => { EmailDigestSubscription subscription = PublicApi.EmailDigestSubscriptions.GetByGroup(@group.Id.Value); if (subscription != null) { PublicApi.EmailDigestSubscriptions.Update(subscription.Id.Value, 1); } else { PublicApi.EmailDigestSubscriptions.Create("group", @group.Id.Value, 1); } }); } else if ("weekly".Equals(setting)) { PublicApi.Users.RunAsUser(user.Id.Value, () => { EmailDigestSubscription subscription = PublicApi.EmailDigestSubscriptions.GetByGroup(@group.Id.Value); if (subscription != null) { PublicApi.EmailDigestSubscriptions.Update(subscription.Id.Value, 7); } else { PublicApi.EmailDigestSubscriptions.Create("group", @group.Id.Value, 7); } }); } else if ("off".Equals(setting)) { PublicApi.Users.RunAsUser(user.Id.Value, () => { EmailDigestSubscription subscription = PublicApi.EmailDigestSubscriptions.GetByGroup(@group.Id.Value); if (subscription != null) { PublicApi.EmailDigestSubscriptions.Delete(subscription.Id.Value); } }); } } }
public void Process(JobData jobData) { GroupId = jobData.Data.ContainsKey("GroupId") ? int.Parse(jobData.Data["GroupId"]) : default(int?); UserName = jobData.Data.ContainsKey("UserName") ? jobData.Data["UserName"] : null; var userEnumerator = new UserEnumerate(UserName, GroupId); var groupEnumerate = new GroupEnumerate(GroupId); foreach (User user in userEnumerator) { foreach (Group group in groupEnumerate) { InternalProcess(user, group, jobData); } } }