Exemplo n.º 1
0
        public async Task NewMessageEvent(KahlaUser receiver, Conversation conversation, string content, KahlaUser sender, bool alert)
        {
            var token = await _appsContainer.AccessToken();

            var channel         = receiver.CurrentChannel;
            var newMessageEvent = new NewMessageEvent
            {
                ConversationId = conversation.Id,
                Sender         = sender,
                Content        = content,
                AESKey         = conversation.AESKey,
                Muted          = !alert
            };
            var pushTasks = new List <Task>();

            if (channel != -1)
            {
                pushTasks.Add(_stargatePushService.PushMessageAsync(token, channel, _Serialize(newMessageEvent), true));
            }
            if (alert && receiver.Id != sender.Id)
            {
                pushTasks.Add(_thirdPartyPushService.PushAsync(receiver.Id, sender.Email, _Serialize(newMessageEvent)));
            }
            await Task.WhenAll(pushTasks);
        }
Exemplo n.º 2
0
        public async Task NewMessageEvent(int stargateChannel, IEnumerable <Device> devices, Conversation conversation, Message message, bool pushAlert, bool mentioned)
        {
            var token = await _appsContainer.AccessToken();

            var newMessageEvent = new NewMessageEvent
            {
                AESKey    = conversation.AESKey,
                Muted     = !pushAlert,
                Mentioned = mentioned,
                Message   = message
            };
            var pushTasks = new List <Task>();

            if (stargateChannel != -1)
            {
                pushTasks.Add(_stargatePushService.PushMessageAsync(token, stargateChannel, JsonConvert.SerializeObject(newMessageEvent), true));
            }
            if (pushAlert)
            {
                pushTasks.Add(_thirdPartyPushService.PushAsync(devices, message.Sender.Email, JsonConvert.SerializeObject(newMessageEvent)));
            }
            await Task.WhenAll(pushTasks);
        }