Пример #1
0
        public bool SendPlayerInvite(Guid clanId, Guid characterId, Guid?senderUserId = null)
        {
            // character does not exist
            var character = gameData.GetCharacter(characterId);

            if (character == null)
            {
                return(false);
            }

            // clan does not exist
            var clan = gameData.GetClan(clanId);

            if (clan == null)
            {
                return(false);
            }

            // existing invite to same clan.
            var invite = gameData.GetClanInvitesByCharacter(characterId).FirstOrDefault(x => x.ClanId == clanId);

            if (invite != null)
            {
                return(false);
            }

            invite = new DataModels.CharacterClanInvite
            {
                Id            = Guid.NewGuid(),
                CharacterId   = characterId,
                ClanId        = clanId,
                Created       = DateTime.UtcNow,
                InviterUserId = senderUserId
            };
            invite.NotificationId = notificationManager.ClanInviteReceived(clanId, characterId, senderUserId)?.Id;
            gameData.Add(invite);
            return(true);
        }