コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
        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();
        }