public EmailProvider(IServiceProvider services, IContextLock access, SmallWorldOptions options, IEmailRepository emails) { this.services = services; this.options = options; this.emails = emails; this.access = access; }
public override async Task Submit(IContextLock access) { if (pairing.Type != PairingType.Manual) { throw new InvalidEnumArgumentException("CreateManualPairs: pairing"); } using (var handle = await access.Write()) { entries.Entry(pairing) .LoadRelations(p => p.Pairs) .LoadRelations(p => p.World.Members, m => m.Pairs1) .LoadRelations(p => p.World.Members, m => m.Pairs2) .LoadRelations(p => p.World.Pairs) .LoadRelations(p => p.World.BackupUser); foreach (var pair in pairing.Pairs) { emails.Send(Emails.PairingReceiver, pair); emails.Send(Emails.PairingInitiator, pair); } pairing.IsComplete = true; await handle.Finish(); } }
public UpdateRunner(PairGenerator generator, IWorldRepository worlds, IContextLock access, EmailProvider emails, IServiceProvider provider) { this.generator = generator; this.worlds = worlds; this.access = access; this.emails = emails; telemetry = provider.GetService <ITelemetryProvider>(); }
public override async Task Submit(IContextLock access) { using (var handle = await access.Write()) { var repo = pairings.Pairs(pairing); foreach (var pair in pairs) { pair.Outcome = PairOutcome.Unknown; repo.Add(pair); emails.Send(Emails.PairingReceiver, pair); emails.Send(Emails.PairingInitiator, pair); } foreach (var member in optOuts) { member.OptOut = false; emails.Send(Emails.OptOut, member); } if (unpaired != null) { if (pairing.World.BackupUser != null) { emails.Send(Emails.PairingInitiator, unpaired, pairing.World.BackupUser); emails.Send(Emails.PairingReceiver, unpaired, pairing.World.BackupUser); } else { emails.Send(Emails.UnpairedMember, unpaired); } } pairing.IsComplete = true; await handle.Finish(); } }
public AccessLockFilter(IContextLock access, EmailProvider email, SmallWorldContext sw) { this.access = access; this.email = email; this.sw = sw; }
public abstract Task Submit(IContextLock access);