public ChannelAPI.ReceivedInvite[] GetReceivedInvites(ChannelAPI.InvitationServiceType serviceType) { List <ChannelAPI.ReceivedInvite> list; this.m_receivedInvitations.TryGetValue(serviceType, out list); return((list != null) ? list.ToArray() : new ChannelAPI.ReceivedInvite[0]); }
public ChannelAPI.ReceivedInvite GetReceivedInvite(ChannelAPI.InvitationServiceType serviceType, ulong invitationId) { foreach (ChannelAPI.ReceivedInvite receivedInvite in this.GetReceivedInvites(serviceType)) { if (receivedInvite.Invitation.Id == invitationId) { return(receivedInvite); } } return(null); }
public ChannelAPI.ReceivedInvite GetReceivedInvite(ChannelAPI.InvitationServiceType serviceType, ulong invitationId) { ChannelAPI.ReceivedInvite[] receivedInvites = this.GetReceivedInvites(serviceType); for (int i = 0; i < receivedInvites.Length; i++) { ChannelAPI.ReceivedInvite receivedInvite = receivedInvites[i]; if (receivedInvite.Invitation.Id == invitationId) { return(receivedInvite); } } return(null); }
public void SendInvitation(EntityId channelId, EntityId entityId, ChannelAPI.InvitationServiceType serviceType, RPCContextDelegate callback) { SendInvitationRequest sendInvitationRequest = new SendInvitationRequest(); sendInvitationRequest.SetTargetId(entityId); InvitationParams invitationParams = new InvitationParams(); ChannelInvitationParams channelInvitationParams = new ChannelInvitationParams(); channelInvitationParams.SetChannelId(channelId); channelInvitationParams.SetServiceType((uint)serviceType); invitationParams.SetChannelParams(channelInvitationParams); sendInvitationRequest.SetParams(invitationParams); this.m_rpcConnection.QueueRequest(ChannelAPI.m_channelInvitationService.Id, 3u, sendInvitationRequest, callback, 0u); }
private void HandleChannelInvitation_NotifyReceivedInvitationAdded(RPCContext context) { base.ApiLog.LogDebug("HandleChannelInvitation_NotifyReceivedInvitationAdded"); InvitationAddedNotification invitationAddedNotification = InvitationAddedNotification.ParseFrom(context.Payload); if (invitationAddedNotification.Invitation.HasChannelInvitation) { ChannelInvitation channelInvitation = invitationAddedNotification.Invitation.ChannelInvitation; ChannelAPI.InvitationServiceType serviceType = (ChannelAPI.InvitationServiceType)channelInvitation.ServiceType; List <ChannelAPI.ReceivedInvite> list; if (!this.m_receivedInvitations.TryGetValue(serviceType, out list)) { list = new List <ChannelAPI.ReceivedInvite>(); this.m_receivedInvitations[serviceType] = list; } list.Add(new ChannelAPI.ReceivedInvite(channelInvitation, invitationAddedNotification.Invitation)); if (serviceType == ChannelAPI.InvitationServiceType.INVITATION_SERVICE_TYPE_PARTY) { this.m_battleNet.Party.ReceivedInvitationAdded(invitationAddedNotification, channelInvitation); } } }
private void HandleChannelInvitation_NotifyReceivedInvitationRemoved(RPCContext context) { base.ApiLog.LogDebug("HandleChannelInvitation_NotifyReceivedInvitationRemoved"); InvitationRemovedNotification invitationRemovedNotification = InvitationRemovedNotification.ParseFrom(context.Payload); if (invitationRemovedNotification.Invitation.HasChannelInvitation) { ChannelInvitation channelInvitation = invitationRemovedNotification.Invitation.ChannelInvitation; ChannelAPI.InvitationServiceType serviceType = (ChannelAPI.InvitationServiceType)channelInvitation.ServiceType; ulong id = invitationRemovedNotification.Invitation.Id; string szPartyType = string.Empty; if (serviceType == ChannelAPI.InvitationServiceType.INVITATION_SERVICE_TYPE_PARTY) { szPartyType = this.m_battleNet.Party.GetReceivedInvitationPartyType(id); } List <ChannelAPI.ReceivedInvite> list; if (this.m_receivedInvitations.TryGetValue(serviceType, out list)) { for (int i = 0; i < list.get_Count(); i++) { if (list.get_Item(i).Invitation.Id == id) { list.RemoveAt(i); break; } } if (list.get_Count() == 0) { this.m_receivedInvitations.Remove(serviceType); } } ChannelAPI.InvitationServiceType invitationServiceType = serviceType; if (invitationServiceType == ChannelAPI.InvitationServiceType.INVITATION_SERVICE_TYPE_PARTY) { this.m_battleNet.Party.ReceivedInvitationRemoved(szPartyType, invitationRemovedNotification, channelInvitation); } } }