Exemple #1
0
        private async Task SendMessage(VkNet.VkApi vkApi, bool isImageFirst, string text, IEnumerable <VkNet.Model.Attachments.MediaAttachment> attachments, VkNet.Model.Keyboard.MessageKeyboard keyboard, long[] ids)
        {
            if (keyboard != null)
            {
                keyboard.OneTime = true;
            }
            string nbspString = new string(new char[] { (char)160 });

            var mediaAttachments = (attachments != null && attachments.Any()) ? attachments : null;

            if (!isImageFirst || mediaAttachments == null)
            {
                await vkApi.Messages.SendToUserIdsAsync(new VkNet.Model.RequestParams.MessagesSendParams()
                {
                    UserIds     = ids,
                    Message     = string.IsNullOrEmpty(text) ? nbspString : text,
                    Attachments = mediaAttachments,
                    Keyboard    = keyboard
                });

                return;
            }

            await vkApi.Messages.SendToUserIdsAsync(new VkNet.Model.RequestParams.MessagesSendParams()
            {
                UserIds     = ids,
                Message     = nbspString,
                Attachments = attachments
            });

            if (string.IsNullOrEmpty(text) && keyboard == null)
            {
                return;
            }

            await vkApi.Messages.SendToUserIdsAsync(new VkNet.Model.RequestParams.MessagesSendParams()
            {
                UserIds  = ids,
                Message  = string.IsNullOrEmpty(text) ? nbspString : text,
                Keyboard = keyboard
            });
        }
Exemple #2
0
        public static async Task <Messages> AddMessage(DatabaseContext dbContext, long idGroup, string message, VkNet.Model.Keyboard.MessageKeyboard keyboard, bool isImageFirst, IEnumerable <Guid> idFiles)
        {
            Messages result = new Messages()
            {
                IdGroup      = idGroup,
                Keyboard     = keyboard == null ? null : Newtonsoft.Json.JsonConvert.SerializeObject(keyboard),
                Text         = message,
                IsImageFirst = isImageFirst
            };
            await dbContext.Messages.AddAsync(result);

            await dbContext.SaveChangesAsync();

            List <FilesInMessage> attachments = new List <FilesInMessage>();

            foreach (Guid idFile in idFiles)
            {
                attachments.Add(new FilesInMessage()
                {
                    IdMessage = result.Id,
                    IdFile    = idFile
                });
            }

            //result.Files = attachments;
            await dbContext.FilesInMessage.AddRangeAsync(attachments);

            await dbContext.SaveChangesAsync();

            return(result);
        }