public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var targets = request.Data.GetOrDefault <int[]>(k.target).ToCharacter().ToArray(); var subject = request.Data.GetOrDefault <string>(k.subject); var body = request.Data.GetOrDefault <string>(k.body); var filteredTargets = character.FilterWhoBlockedMe(targets).ToArray(); filteredTargets.Length.ThrowIfEqual(0, ErrorCodes.TargetBlockedTheRequest); var mail = new MassMail { body = body, subject = subject, sender = character, folder = MailFolder.inbox, targets = filteredTargets, type = MailType.character }; //write to targets' inboxes MassMailer.WriteMailToTargets(mail).ThrowIfError(); //write to sender's inbox MassMailer.WriteToOutbox(mail).ThrowIfError(); var result = MassMailer.ListFolder(character, (int)MailFolder.outbox).ToDictionary("m", m => m.ToSimpleDictionary()); Message.Builder.FromRequest(request).WithData(result).Send(); scope.Complete(); } }
public void foo() { var x = new MassMail(); x.OnStart += delegate(object sender, System.EventArgs e) { return(false); }; x.OnSuccess += delegate(object sender, System.EventArgs e) { return(false); }; x.OnFailure += delegate(object sender, System.EventArgs e) { return(false); }; x.OnDone += delegate(object sender, System.EventArgs e) { return(false); }; }