public MessageViewModel(OutboundMessageViewModel outboundMessage) { this._outboundMessage = outboundMessage; Message message = new Message(); message.@out = 1; if (outboundMessage.IsChat) { message.chat_id = (int)outboundMessage.UserOrChatId; } else { message.uid = (int)outboundMessage.UserOrChatId; } message.date = Extensions.DateTimeToUnixTimestamp(DateTime.UtcNow, true); message.sticker_id = outboundMessage.StickerItem == null ? 0 : outboundMessage.StickerItem.StickerId; message.body = message.sticker_id != 0 || outboundMessage.GraffitiAttachmentItem != null ? "" : outboundMessage.MessageText; message.attachments = new List <Attachment>(); if (message.sticker_id == 0) { foreach (IOutboundAttachment outboundAttachment in outboundMessage.Attachments.Where <IOutboundAttachment>((Func <IOutboundAttachment, bool>)(a => !a.IsGeo))) { Attachment attachment = outboundAttachment.GetAttachment(); if (attachment != null) { message.attachments.Add(attachment); } } } if (outboundMessage.StickerItem != null) { message.attachments.Add(outboundMessage.StickerItem.CreateAttachment()); } if (outboundMessage.GraffitiAttachmentItem != null) { message.attachments.Add(outboundMessage.GraffitiAttachmentItem.CreateAttachment()); } if (message.sticker_id == 0) { OutboundGeoAttachment outboundGeoAttachment = outboundMessage.Attachments.FirstOrDefault <IOutboundAttachment>((Func <IOutboundAttachment, bool>)(a => a.IsGeo)) as OutboundGeoAttachment; if (outboundGeoAttachment != null) { message.geo = new Geo() { coordinates = string.Format("{0} {1}", (object)outboundGeoAttachment.Latitude.ToString((IFormatProvider)CultureInfo.InvariantCulture), (object)outboundGeoAttachment.Longitude.ToString((IFormatProvider)CultureInfo.InvariantCulture)) } } ; OutboundForwardedMessages forwardedMessages = outboundMessage.Attachments.FirstOrDefault <IOutboundAttachment>((Func <IOutboundAttachment, bool>)(a => a is OutboundForwardedMessages)) as OutboundForwardedMessages; message.fwd_messages = forwardedMessages != null ? new List <Message>((IEnumerable <Message>)forwardedMessages.Messages) : new List <Message>(); } else { message.fwd_messages = new List <Message>(); } this.InitializeWithMessage(message); }
private void DoSend() { SendMessageRequest sendMessageRequest = new SendMessageRequest(); int num1 = this._isChat ? 1 : 0; sendMessageRequest.IsChat = num1 != 0; long userOrChatId = this._userOrChatId; sendMessageRequest.UserOrCharId = userOrChatId; string messageText = this._messageText; sendMessageRequest.MessageBody = messageText; StickerItemData stickerItem = this.StickerItem; int num2 = stickerItem != null ? stickerItem.StickerId : 0; sendMessageRequest.StickerId = num2; string stickerReferrer = this.StickerReferrer; sendMessageRequest.StickerReferrer = stickerReferrer; SendMessageRequest request = sendMessageRequest; if (this.GraffitiAttachmentItem != null && this.GraffitiAttachmentItem.IsUploaded) { request.AttachmentIds = new List <string>() { this.GraffitiAttachmentItem.AttachmentId } } ; else if (this.Attachments.Count > 0) { request.AttachmentIds = new List <string>(); foreach (IOutboundAttachment outboundAttachment in this.Attachments.Where <IOutboundAttachment>((Func <IOutboundAttachment, bool>)(a => !a.IsGeo))) { request.AttachmentIds.Add(outboundAttachment.AttachmentId); } } OutboundGeoAttachment outboundGeoAttachment = this.Attachments.FirstOrDefault <IOutboundAttachment>((Func <IOutboundAttachment, bool>)(a => a.IsGeo)) as OutboundGeoAttachment; if (outboundGeoAttachment != null) { request.Latitude = outboundGeoAttachment.Latitude; request.Longitude = outboundGeoAttachment.Longitude; request.IsGeoAttached = true; } OutboundForwardedMessages forwardedMessages = this.Attachments.FirstOrDefault <IOutboundAttachment>((Func <IOutboundAttachment, bool>)(a => a is OutboundForwardedMessages)) as OutboundForwardedMessages; if (forwardedMessages != null) { request.ForwardedMessagesIds = new List <int>(forwardedMessages.Messages.Select <Message, int>((Func <Message, int>)(m => m.mid))); } // ISSUE: reference to a compiler-generated field if (this.UploadFinished != null) { // ISSUE: reference to a compiler-generated field this.UploadFinished((object)this, EventArgs.Empty); } MessagesService.Instance.SendMessage(request, (Action <BackendResult <VKClient.Audio.Base.ResponseWithId, ResultCode> >)(res => { if (res.ResultCode == ResultCode.Succeeded) { this._deliveredMessageId = res.ResultData.response; this._deliveryDateTime = DateTime.UtcNow; Logger.Instance.Info("OutboundMessageViewModel deliveryId = " + (object)this._deliveredMessageId); this.OutboundMessageStatus = OutboundMessageStatus.Delivered; } else { this.OutboundMessageStatus = OutboundMessageStatus.Failed; } // ISSUE: reference to a compiler-generated field if (this.MessageSent == null) { return; } // ISSUE: reference to a compiler-generated field this.MessageSent((object)this, EventArgs.Empty); })); }