public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var member = Character.Get(request.Data.GetOrDefault <int>(k.memberID)); var gang = _gangManager.GetGangByMember(character); if (gang == null) { throw new PerpetuumException(ErrorCodes.CharacterNotInGang); } if (member == gang.Leader) { return; } if (!gang.CanKick(character)) { throw new PerpetuumException(ErrorCodes.OnlyGangLeaderOrAssistantCanDoThis); } _gangManager.RemoveMember(gang, member, true); Message.Builder.FromRequest(request).WithOk().Send(); scope.Complete(); } }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var gang = _gangManager.GetGangByMember(character); if (gang == null) { throw new PerpetuumException(ErrorCodes.CharacterNotInGang); } _gangManager.RemoveMember(gang, character, false); Message.Builder.FromRequest(request).WithOk().Send(); scope.Complete(); } }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var account = _accountManager.Repository.Get(request.Session.AccountId).ThrowIfNull(ErrorCodes.AccountNotFound); var character = Character.Get(request.Data.GetOrDefault <int>(k.characterID)); account.Id.ThrowIfNotEqual(character.AccountId, ErrorCodes.AccessDenied); Corporation.GetRoleFromSql(character).ThrowIfNotEqual(CorporationRole.NotDefined, ErrorCodes.MemberHasRolesError); //temporary ep penalty _accountManager.InsertPenaltyPoint(account, AccountExtensionPenaltyType.CharacterDelete, CHARACTER_DELETE_EP_PENALTY, false); character.IsActive = false; character.SetActiveRobot(null); var gang = _gangManager.GetGangByMember(character); _gangManager.RemoveMember(gang, character, false); // clean up channels _channelManager.LeaveAllChannels(character); //clean corp and know character data character.CleanGameRelatedData(); var oldCorporation = character.GetCorporation(); //if he was in private corp -> move the member to his default corp if (oldCorporation is PrivateCorporation) { character.GetDefaultCorporation().AddMember(character, CorporationRole.NotDefined, oldCorporation); oldCorporation.RemoveMember(character); } Message.Builder.FromRequest(request).WithOk().Send(); scope.Complete(); } }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var gangName = request.Data.GetOrDefault <string>(k.name); var memberId = request.Data.GetOrDefault <int>(k.characterID); var currentGang = _gangManager.GetGangByMember(character); _gangManager.RemoveMember(currentGang, character, false); var newGang = _gangManager.CreateGang(gangName, character); Transaction.Current.OnCommited(() => { var result = newGang.ToDictionary(); result.Add(k.characterID, memberId); Message.Builder.FromRequest(request).WithData(result).Send(); }); scope.Complete(); } }