public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var bulletinID = request.Data.GetOrDefault <int>(k.bulletinID); var corporation = character.GetPrivateCorporationOrThrow(); corporation.GetMemberRole(character).IsAnyRole(CorporationRole.CEO, CorporationRole.PRManager, CorporationRole.DeputyCEO).ThrowIfFalse(ErrorCodes.InsufficientPrivileges); _bulletinHandler.BulletinExists(bulletinID, corporation.Eid).ThrowIfFalse(ErrorCodes.ItemNotFound); _bulletinHandler.GetBulletin(bulletinID); _bulletinHandler.DeleteBulletin(bulletinID); var result = new Dictionary <string, object>(1) { { k.bulletinID, bulletinID } }; Message.Builder.SetCommand(request.Command) .WithData(result) .ToCharacters(corporation.GetCharacterMembers()) .Send(); scope.Complete(); } }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var entry = request.Data.GetOrDefault <string>(k.text); var bulletinID = request.Data.GetOrDefault <int>(k.bulletinID); string.IsNullOrEmpty(entry).ThrowIfTrue(ErrorCodes.TextEmpty); var corporation = character.GetPrivateCorporationOrThrow(); _bulletinHandler.BulletinExists(bulletinID, corporation.Eid).ThrowIfFalse(ErrorCodes.ItemNotFound); var id = _bulletinHandler.InsertEntry(bulletinID, character.Id, entry); var result = new Dictionary <string, object>(4) { { k.bulletinID, bulletinID }, { k.entryID, id }, { k.text, entry }, { k.characterID, character.Id }, { k.date, DateTime.Now } }; Message.Builder.SetCommand(request.Command) .WithData(result) .ToCharacters(corporation.GetCharacterMembers()).Send(); var bulletinDescription = _bulletinHandler.GetBulletin(bulletinID); Transaction.Current.OnCommited(() => _bulletinHandler.SendBulletinUpdate(bulletinDescription, CorporationBulletinEvent.newEntry, character)); scope.Complete(); } }
public void HandleRequest(IRequest request) { var character = request.Session.Character; var bulletinID = request.Data.GetOrDefault <int>(k.bulletinID); var corporation = character.GetPrivateCorporationOrThrow(); _bulletinHandler.BulletinExists(bulletinID, corporation.Eid).ThrowIfFalse(ErrorCodes.ItemNotFound); var result = new Dictionary <string, object>(2) { { k.details, _bulletinHandler.GetBulletin(bulletinID, corporation.Eid).ToDictionary() }, { k.entries, _bulletinHandler.GetBulletinEntries(bulletinID) } }; Message.Builder.FromRequest(request) .WithData(result) .Send(); }