private void InitializeApiClients()
 {
     DomainsClient  = new DomainsClient(httpClient, "domains");
     MessagesClient = new MessagesClient(httpClient, "domains");
     RulesClient    = new RulesClient(httpClient, "domains");
     StatsClient    = new StatsClient(httpClient, "team");
 }
        public static async Task LogOut()
        {
            var request = new HttpRequestMessage(HttpMethod.Delete, "tokens");

            request.Headers.Authorization = new AuthenticationHeaderValue("Basic", $"{_token}:".ToBase64String());
            await Client.SendAsync(request).ConfigureAwait(false);

            _token = Guid.Empty;

            lock (UsersLock)
            {
                _usersClient.Dispose();
                _usersClient  = null;
                _usersCreated = false;
            }

            lock (ChatsLock)
            {
                _chatsClient.Dispose();
                _chatsClient  = null;
                _chatsCreated = false;
            }

            lock (MessagesLock)
            {
                _messagesClient?.Dispose();
                _messagesClient  = null;
                _messagesCreated = false;
            }

            _poller?.Dispose();
            _poller = null;
        }
        public async Task SendMessage(int dialogId, string?text, string?voiceMessagePath)
        {
            var messageId = await MessagesClient.Send(dialogId, text, voiceMessagePath);

            var myProfile = new Profile
            {
                Id      = AuthorizationManager.UserId,
                Name    = string.Empty,
                Photo   = AuthorizationManager.Photo,
                Online  = true,
                Surname = string.Empty
            };
            var fullText   = text?.Trim() ?? $"{Consts.PaperClip} {LocalizedStrings.VoiceMessage}";
            var newMessage = new Message(
                messageId,
                //Will be loaded on next update
                fullText,
                fullText,
                null,
                DateTime.Now,
                DateTime.Now,
                false,
                myProfile,
                null,
                // All next fields can't be set by our app
                null,
                null,
                null);

            newMessage.SetRead(true);

            AddUpdateMessagesInCollection(dialogId, new [] { newMessage }, null, false);
        }
 /// <summary>Snippet for GetMessage</summary>
 public void GetMessageResourceNames()
 {
     // Snippet: GetMessage(MessageName, CallSettings)
     // Create client
     MessagesClient messagesClient = MessagesClient.Create();
     // Initialize request argument(s)
     MessageName name = MessageName.FromProjectMessage("[PROJECT]", "[MESSAGE]");
     // Make the request
     Message response = messagesClient.GetMessage(name);
     // End snippet
 }
 /// <summary>Snippet for GetMessage</summary>
 public void GetMessage()
 {
     // Snippet: GetMessage(string, CallSettings)
     // Create client
     MessagesClient messagesClient = MessagesClient.Create();
     // Initialize request argument(s)
     string name = "projects/[PROJECT]/messages/[MESSAGE]";
     // Make the request
     Message response = messagesClient.GetMessage(name);
     // End snippet
 }
 /// <summary>Snippet for CreateMessage</summary>
 public void CreateMessageResourceNames()
 {
     // Snippet: CreateMessage(ProjectName, Message, CallSettings)
     // Create client
     MessagesClient messagesClient = MessagesClient.Create();
     // Initialize request argument(s)
     ProjectName parent  = ProjectName.FromProject("[PROJECT]");
     Message     message = new Message();
     // Make the request
     Message response = messagesClient.CreateMessage(parent, message);
     // End snippet
 }
 /// <summary>Snippet for CreateMessage</summary>
 public void CreateMessage()
 {
     // Snippet: CreateMessage(string, Message, CallSettings)
     // Create client
     MessagesClient messagesClient = MessagesClient.Create();
     // Initialize request argument(s)
     string  parent  = "projects/[PROJECT]";
     Message message = new Message();
     // Make the request
     Message response = messagesClient.CreateMessage(parent, message);
     // End snippet
 }
        /// <summary>Snippet for ListMessagesAsync</summary>
        public async Task ListMessagesRequestObjectAsync()
        {
            // Snippet: ListMessagesAsync(ListMessagesRequest, CallSettings)
            // Create client
            MessagesClient messagesClient = await MessagesClient.CreateAsync();

            // Initialize request argument(s)
            ListMessagesRequest request = new ListMessagesRequest
            {
                ParentAsProjectName = ProjectName.FromProject("[PROJECT]"),
                StartTime           = new Timestamp(),
                EndTime             = new Timestamp(),
                Filter = "",
            };
            // Make the request
            PagedAsyncEnumerable <ListMessagesResponse, Message> response = messagesClient.ListMessagesAsync(request);

            // Iterate over all response items, lazily performing RPCs as required
            await response.ForEachAsync((Message item) =>
            {
                // Do something with each item
                Console.WriteLine(item);
            });

            // Or iterate over pages (of server-defined size), performing one RPC per page
            await response.AsRawResponses().ForEachAsync((ListMessagesResponse page) =>
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (Message item in page)
                {
                    // Do something with each item
                    Console.WriteLine(item);
                }
            });

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int            pageSize   = 10;
            Page <Message> singlePage = await response.ReadPageAsync(pageSize);

            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (Message item in singlePage)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
            // End snippet
        }
        /// <summary>Snippet for GetMessageAsync</summary>
        public async Task GetMessageResourceNamesAsync()
        {
            // Snippet: GetMessageAsync(MessageName, CallSettings)
            // Additional: GetMessageAsync(MessageName, CancellationToken)
            // Create client
            MessagesClient messagesClient = await MessagesClient.CreateAsync();

            // Initialize request argument(s)
            MessageName name = MessageName.FromProjectMessage("[PROJECT]", "[MESSAGE]");
            // Make the request
            Message response = await messagesClient.GetMessageAsync(name);

            // End snippet
        }
        /// <summary>Snippet for GetMessageAsync</summary>
        public async Task GetMessageAsync()
        {
            // Snippet: GetMessageAsync(string, CallSettings)
            // Additional: GetMessageAsync(string, CancellationToken)
            // Create client
            MessagesClient messagesClient = await MessagesClient.CreateAsync();

            // Initialize request argument(s)
            string name = "projects/[PROJECT]/messages/[MESSAGE]";
            // Make the request
            Message response = await messagesClient.GetMessageAsync(name);

            // End snippet
        }
 /// <summary>Snippet for GetMessage</summary>
 public void GetMessageRequestObject()
 {
     // Snippet: GetMessage(GetMessageRequest, CallSettings)
     // Create client
     MessagesClient messagesClient = MessagesClient.Create();
     // Initialize request argument(s)
     GetMessageRequest request = new GetMessageRequest
     {
         MessageName = MessageName.FromProjectMessage("[PROJECT]", "[MESSAGE]"),
     };
     // Make the request
     Message response = messagesClient.GetMessage(request);
     // End snippet
 }
        /// <summary>Snippet for CreateMessageAsync</summary>
        public async Task CreateMessageAsync()
        {
            // Snippet: CreateMessageAsync(string, Message, CallSettings)
            // Additional: CreateMessageAsync(string, Message, CancellationToken)
            // Create client
            MessagesClient messagesClient = await MessagesClient.CreateAsync();

            // Initialize request argument(s)
            string  parent  = "projects/[PROJECT]";
            Message message = new Message();
            // Make the request
            Message response = await messagesClient.CreateMessageAsync(parent, message);

            // End snippet
        }
 /// <summary>Snippet for CreateMessage</summary>
 public void CreateMessageRequestObject()
 {
     // Snippet: CreateMessage(CreateMessageRequest, CallSettings)
     // Create client
     MessagesClient messagesClient = MessagesClient.Create();
     // Initialize request argument(s)
     CreateMessageRequest request = new CreateMessageRequest
     {
         ParentAsProjectName = ProjectName.FromProject("[PROJECT]"),
         Message             = new Message(),
     };
     // Make the request
     Message response = messagesClient.CreateMessage(request);
     // End snippet
 }
        /// <summary>Snippet for CreateMessageAsync</summary>
        public async Task CreateMessageResourceNamesAsync()
        {
            // Snippet: CreateMessageAsync(ProjectName, Message, CallSettings)
            // Additional: CreateMessageAsync(ProjectName, Message, CancellationToken)
            // Create client
            MessagesClient messagesClient = await MessagesClient.CreateAsync();

            // Initialize request argument(s)
            ProjectName parent  = ProjectName.FromProject("[PROJECT]");
            Message     message = new Message();
            // Make the request
            Message response = await messagesClient.CreateMessageAsync(parent, message);

            // End snippet
        }
        /// <summary>Snippet for CreateMessageAsync</summary>
        public async Task CreateMessageRequestObjectAsync()
        {
            // Snippet: CreateMessageAsync(CreateMessageRequest, CallSettings)
            // Additional: CreateMessageAsync(CreateMessageRequest, CancellationToken)
            // Create client
            MessagesClient messagesClient = await MessagesClient.CreateAsync();

            // Initialize request argument(s)
            CreateMessageRequest request = new CreateMessageRequest
            {
                ParentAsProjectName = ProjectName.FromProject("[PROJECT]"),
                Message             = new Message(),
            };
            // Make the request
            Message response = await messagesClient.CreateMessageAsync(request);

            // End snippet
        }
示例#16
0
        public async Task UpdateMessagesFromApiByIds(int dialogId, IReadOnlyCollection <int> messagesIds)
        {
            var dialog = FirstOrDefaultWithLock(dialogId);

            if (dialog == null)
            {
                return;
            }

            var collection  = dialog.Messages;
            var newMessages = await MessagesClient.GetMessagesByIds(messagesIds);

            if (newMessages.Any())
            {
                AddUpdateMessagesInCollection(dialogId, newMessages, dialog.UnreadCount, false);
                await DurableCacheManager.SaveMessages(dialog.Id, collection).ConfigureAwait(false);
            }
        }
        /// <summary>Snippet for ListMessages</summary>
        public void ListMessagesResourceNames()
        {
            // Snippet: ListMessages(ProjectName, string, int?, CallSettings)
            // Create client
            MessagesClient messagesClient = MessagesClient.Create();
            // Initialize request argument(s)
            ProjectName parent = ProjectName.FromProject("[PROJECT]");
            // Make the request
            PagedEnumerable <ListMessagesResponse, Message> response = messagesClient.ListMessages(parent);

            // Iterate over all response items, lazily performing RPCs as required
            foreach (Message item in response)
            {
                // Do something with each item
                Console.WriteLine(item);
            }

            // Or iterate over pages (of server-defined size), performing one RPC per page
            foreach (ListMessagesResponse page in response.AsRawResponses())
            {
                // Do something with each page of items
                Console.WriteLine("A page of results:");
                foreach (Message item in page)
                {
                    // Do something with each item
                    Console.WriteLine(item);
                }
            }

            // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
            int            pageSize   = 10;
            Page <Message> singlePage = response.ReadPage(pageSize);

            // Do something with the page of items
            Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
            foreach (Message item in singlePage)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
            // Store the pageToken, for when the next page is required.
            string nextPageToken = singlePage.NextPageToken;
            // End snippet
        }
示例#18
0
        public async Task UpdateMessagesFromApi(int dialogId, int?offset = null)
        {
            var dialog = FirstOrDefaultWithLock(dialogId);

            if (dialog == null)
            {
                return;
            }

            var collection  = dialog.Messages;
            var newMessages = await MessagesClient.GetMessages(dialog.Id, offset);

            if (newMessages.Any())
            {
                var isNewestMessagesBatch = offset == null;
                AddUpdateMessagesInCollection(dialogId, newMessages, dialog.UnreadCount, isNewestMessagesBatch);
                await DurableCacheManager.SaveMessages(dialog.Id, collection).ConfigureAwait(false);
            }
        }
示例#19
0
        public async Task MessageSample()
        {
            // Instantiate a new QueueServiceClient using a connection string.
            QueueServiceClient queueServiceClient = new QueueServiceClient(TestConfigurations.DefaultTargetTenant.ConnectionString);

            // Instantiate a new QueueClient
            QueueClient queueClient = queueServiceClient.GetQueueClient("myqueue2");

            try
            {
                // Create your new Queue in the service
                await queueClient.CreateAsync();

                // Instantiate a new MessagesClient
                MessagesClient messagesClient = queueClient.GetMessagesClient();

                // Enqueue a message to the queue
                Response <IEnumerable <EnqueuedMessage> > enqueueResponse = await messagesClient.EnqueueAsync("my message");

                // Peek message
                Response <IEnumerable <PeekedMessage> > peekResponse = await messagesClient.PeekAsync();

                // Instantiate a new MessageIdClient
                MessageIdClient messageIdClient = messagesClient.GetMessageIdClient(enqueueResponse.Value.First().MessageId);

                // Update message
                await messageIdClient.UpdateAsync("new message", enqueueResponse.Value.First().PopReceipt);

                // Dequeue message
                Response <IEnumerable <DequeuedMessage> > dequeueResponse = await messagesClient.DequeueAsync();

                // Delete Message
                await messageIdClient.DeleteAsync(dequeueResponse.Value.First().PopReceipt);
            }
            finally
            {
                // Delete your Queue in the service
                await queueClient.DeleteAsync();
            }
        }
示例#20
0
        public async Task DeleteMessage(int dialogId, int messageId)
        {
            await MessagesClient.DeleteMessage(messageId);

            var dialog = FirstOrDefaultWithLock(dialogId);

            if (dialog == null)
            {
                return;
            }

            var collection = dialog.Messages;

            lock (collection)
            {
                var message = collection.FirstOrDefault(e => e.Id == messageId);
                if (message != null)
                {
                    collection.Remove(message);
                }
            }
        }
示例#21
0
 protected internal MessagingClient(MisskeyClient client) : base(client, "messaging")
 {
     Messages = new MessagesClient(client);
 }