Beispiel #1
0
        public async void OnRemovedChat(object sender, RemovedChatEventArgs container)
        {
            if (_cachedClientProperies.TryGetValue(container.NameClient, out ClientProperties clientProperties) &&
                InfoChats.TryGetValue(container.NumberChat, out InfoChat infoChat))
            {
                if (container.NameClient == infoChat.OwnerChat)
                {
                    List <Guid>   idClientsForSendMessage = new List <Guid>();//Создание списка id для рассылки им сообщений
                    List <string> NameForChange           = infoChat.NameOfClients;
                    await Task.Run(() => CreateClientListForChangeInfoChat(ref NameForChange, container.NumberChat, ref idClientsForSendMessage));

                    var SendMessageToClient = Task.Run(() => _server.Send(idClientsForSendMessage, Container.GetContainer(nameof(RemoveChatResponse), new RemoveChatResponse(container.NameClient, container.NumberChat))));

                    InfoChats.TryRemove(container.NumberChat, out InfoChat infoRemovedChat);

                    if (!await Task.Run(() => _data.RemoveChat(container.NumberChat)))
                    {
                        //Ошибка на удаление в БД
                    }
                }
            }
        }
Beispiel #2
0
 private void OnRemovedChat(object sender, RemovedChatEventArgs container)
 {
     RemovedChat?.Invoke(this, new RemovedChatEventArgs(container.NameClient, container.NumberChat));
 }