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 }); }
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); }