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 HandleRequest(IRequest request) { var character = request.Session.Character; var folder = request.Data.GetOrDefault <int>(k.folder); var result = MassMailer.ListFolder(character, folder).ToDictionary("m", m => m.ToSimpleDictionary()); Message.Builder.FromRequest(request).WithData(result).Send(); }
public void HandleRequest(IRequest request) { var character = request.Session.Character; var mailCount = MassMailer.NewMassMailCount(character); var result = new Dictionary <string, object> { { k.amount, mailCount } }; Message.Builder.FromRequest(request).WithData(result).Send(); }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var mailId = request.Data.GetOrDefault<long>(k.ID); var mail = MassMailer.OpenMail(character, mailId).ThrowIfNull(ErrorCodes.MailNotFound); Message.Builder.FromRequest(request) .WithData(mail.ToDetailedDictionary()) .Send(); scope.Complete(); } }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var mailIDs = request.Data.GetOrDefault <long[]>(k.ID); MassMailer.DeleteMail(character, mailIDs).ThrowIfError(); var dictionary = new Dictionary <string, object> { { k.ID, mailIDs } }; Message.Builder.FromRequest(request) .WithData(dictionary) .Send(); scope.Complete(); } }