public void MarkAsRead(MessagesMessage message) { cit.Messages.MarkAsRead(new Citrina.StandardApi.Models.MessagesMarkAsReadRequest() { AccessToken = token, PeerId = message.UserId.ToString(), StartMessageId = message.Id }); }
/// <summary> Преобразование сообщения из пакета Citrina в собственный тип сообщения </summary> private Message CitrinaMessageToMyMessage(MessagesMessage message, MessageDirection dir) { return(new Message(message.UserId.Value, message.Date.Value, dir, message.Body, message.Attachments != null ? string.Join(",", message.Attachments.Select(a => a.ToString())) : "")); }
public void EncodeMessage <T>(T oModel, int slotNumber) where T : class { try { long messageType = 0; uint msgHeaderSize = 0; uint msgRequestSize = 0; //uint msgRepeatSize = 0; string modelName = string.Empty; EHeader oLogonHeader = new EHeader(); modelName = oModel.GetType().Name; messageType = ConfigurationMasterMemory.RequestDict.Where(x => x.Value.Name.ToLower() == modelName.ToLower()).FirstOrDefault().Key; MessagesMessage msgHeader = ConfigurationMasterMemory.RequestDict[50]; MessagesMessage requestMsgBody = ConfigurationMasterMemory.RequestDict[messageType]; //if (requestMsgBody.Items.Any(x => x.Source == "R")) //{ // CommonFrontEnd.ControllerModel.SenderControllerModel.MessagesMessage repeatMsgBody = CommonFrontEnd.SharedMemories.ConfigurationMasterMemory.RepeatDict[messageType]; // msgRepeatSize = Convert.ToUInt16(repeatMsgBody.Items.Sum(x => x.length)); // var NoOfEntries = oModel.GetType().GetProperty("NoQuoteEntries").GetValue(oModel); // for (int i = 0; i < length; i++) // { // } //} msgRequestSize = Convert.ToUInt16(requestMsgBody.Items.Sum(x => x.Length)); msgHeaderSize = Convert.ToUInt16(msgHeader.Items.Sum(x => x.Length)); //msgRequestSize = msgRequestSize + msgRepeatSize; oLogonHeader.MessageType = Convert.ToUInt32(messageType); //Convert.ToUInt16(oModel.GetType().GetProperty("MessageType").GetValue(oModel)) oLogonHeader.BodyLength = (msgHeaderSize + msgRequestSize) - 8; //subtract header size of 8 bytes as per IML if (messageType == 7) //UserRegistrationRequest { oLogonHeader.SlotNo = -1; } else { oLogonHeader.SlotNo = Convert.ToUInt16(slotNumber); } requestHeaderBytes = Converter.GetMessageInBytes(oLogonHeader, msgHeader); requestBodyBytes = Converter.GetMessageInBytes(oModel, requestMsgBody); initializeBytes = new byte[msgRequestSize + msgHeaderSize]; Array.Copy(requestHeaderBytes, 0, initializeBytes, 0, requestHeaderBytes.Length); Array.Copy(requestBodyBytes, 0, initializeBytes, requestHeaderBytes.Length, requestBodyBytes.Length); //MemoryManager.RequestDict.Add(slotNumber, initializeBytes); //MemoryManager.RequestQueue.Enqueue(initializeBytes); SendMessage(initializeBytes); MemoryManager.UpdateRequestReplyMappingMemory(slotNumber, false, true); } catch (Exception ex) { ExceptionUtility.LogError(ex); } finally { //timer.Interval = new TimeSpan(0, 0, 0, 0, 1); //timer.Tick += new EventHandler(InitializeSendMessageTicker); //timer.Start(); } }
private void Client_OnMessageNew(object sender, MessagesMessage e) { _vkFileLogger.Debug("New message event: {@e}", e); OnMessage?.Invoke(sender, new BotEventArgs(e.Text, e.PeerId, e.FromId)); }
public MessageEventArgs(VkClient <TUserStates> client, MessagesMessage message) { Message = new VkMessage <TUserStates>(client, message.UserId.Value, message.Body, message.Id.Value); }