Beispiel #1
0
 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();
            }
        }
Beispiel #3
0
        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>();
        }
Beispiel #4
0
        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();
            }
        }
Beispiel #5
0
 public AccessLockFilter(IContextLock access, EmailProvider email, SmallWorldContext sw)
 {
     this.access = access;
     this.email  = email;
     this.sw     = sw;
 }
 public abstract Task Submit(IContextLock access);