private void MessageSeparatorEvent_BindingContextChanged(object sender, EventArgs e) { if (BindingContext != null) { MessageElementModel message = (MessageElementModel)BindingContext; if ((message != null) && (message.Peer != null) && (message.Peer.Type == Rainbow.Model.Conversation.ConversationType.User)) { peerJid = message.Peer.Jid; body = message.Content.Body; if (message.CallLogAttachment != null) { String currentContactJid = Helper.SdkWrapper.GetCurrentContactJid(); callLogAttachment = message.CallLogAttachment; isCallLogEvent = true; // Store PeerJid if (callLogAttachment.Callee != currentContactJid) { peerJid = callLogAttachment.Callee; } else { peerJid = callLogAttachment.Caller; } } ManageDisplay(); } } }
private void MessageContentBodyWithImg_BindingContextChanged(object sender, EventArgs e) { if ((BindingContext != null) && (message == null)) { message = (MessageElementModel)BindingContext; if (message != null) { // Manage Image / Uri String body = message.Content?.Body; if (String.IsNullOrEmpty(body)) { return; } String[] parts = body.Split(' '); if (parts.Count() > 1) { String uri = parts[1]; Image.Source = ImageSource.FromUri(new Uri(uri)); } } } }
public IHttpActionResult UpdateMessageElement(int id, [FromBody] MessageElementModel.Format_Update dataModel) { string logForm = "Form : " + JsonConvert.SerializeObject(dataModel); string logAPI = "[Patch] " + Request.RequestUri.ToString(); if (!ModelState.IsValid || dataModel == null) { Global._appLogger.Warn(logAPI + " || Input Parameter not expected || " + logForm); return(Content(HttpStatusCode.BadRequest, HttpResponseFormat.InvaildData())); } try { MessageElementModel model = new MessageElementModel(); model.Update(id, dataModel); return(Content(HttpStatusCode.OK, HttpResponseFormat.Success())); } catch (CDSException cdsEx) { return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId))); } catch (Exception ex) { StringBuilder logMessage = LogHelper.BuildExceptionMessage(ex); logMessage.AppendLine(logForm); Global._appLogger.Error(logAPI + logMessage); return(Content(HttpStatusCode.InternalServerError, ex)); } }
private void MessageContentBody_BindingContextChanged(object sender, EventArgs e) { if ((BindingContext != null) && (message == null)) { message = (MessageElementModel)BindingContext; if (message != null) { String colorKey; String backgroundColorKey; if (message.Peer.Id == Helper.SdkWrapper.GetCurrentContactId()) { colorKey = "ColorConversationStreamMessageCurrentUserFont"; backgroundColorKey = "ColorConversationStreamMessageCurrentUserBackGround"; } else { colorKey = "ColorConversationStreamMessageOtherUserFont"; backgroundColorKey = "ColorConversationStreamMessageOtherUserBackGround"; } Label.TextColor = Helper.GetResourceDictionaryById <Color>(colorKey); BackgroundColor = Helper.GetResourceDictionaryById <Color>(backgroundColorKey); } } }
private void MessageContentUrgency_BindingContextChanged(object sender, EventArgs e) { if ((BindingContext != null) && (message == null)) { message = (MessageElementModel)BindingContext; if (message?.Content.Urgency != Rainbow.Model.UrgencyType.Std) { String backgroudColorKey = null; String colorKey = null; Color color; String labelKey = null; String imageSourceKey = null; switch (message.Content.Urgency) { case Rainbow.Model.UrgencyType.High: backgroudColorKey = "ColorBackgroundUrgencyEmergency"; colorKey = "ColorUrgencyEmergency"; labelKey = "emergencyAlert"; imageSourceKey = "Font_Fire"; break; case Rainbow.Model.UrgencyType.Middle: backgroudColorKey = "ColorBackgroundUrgencyImportant"; colorKey = "ColorUrgencyImportant"; labelKey = "warningAlert"; imageSourceKey = "Font_ExclamationTriangle"; break; case Rainbow.Model.UrgencyType.Low: backgroudColorKey = "ColorBackgroundUrgencyInformation"; colorKey = "ColorUrgencyInformation"; labelKey = "notifyAlert"; imageSourceKey = "Font_Lightbulb"; break; } color = Helper.GetResourceDictionaryById <Color>(colorKey); StackLayout.BackgroundColor = Helper.GetResourceDictionaryById <Color>(backgroudColorKey); Label.TextColor = color; Label.Text = Helper.SdkWrapper.GetLabel(labelKey)?.ToUpper(); /* * /!\ We need to have a Width at least of MINIMAL_MESSAGE_WIDTH: Image => 20 * If not the background correct will not be correct */ Label.WidthRequest = MessageContent.MINIMAL_MESSAGE_WIDTH - Image.WidthRequest; Image.Source = Helper.GetImageSourceFromFont(imageSourceKey + "|" + color.ToHex()); } } }
private void MessageSeparatorDisplayName_BindingContextChanged(object sender, EventArgs e) { if (BindingContext != null) { MessageElementModel message = (MessageElementModel)BindingContext; if (message?.Peer?.Jid != null) { peer = message.Peer; ManageDisplay(); } } }
private void MessageContentDeleted_BindingContextChanged(object sender, EventArgs e) { if (BindingContext != null) { MessageElementModel message = (MessageElementModel)BindingContext; if (message != null) { peerJid = message.Peer.Jid; ManageDisplay(); } } }
public IHttpActionResult GetMessageElementById(int id) { try { MessageElementModel model = new MessageElementModel(); return(Content(HttpStatusCode.OK, model.GetById(id))); } catch (CDSException cdsEx) { return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId))); } catch (Exception ex) { return(Content(HttpStatusCode.InternalServerError, ex)); } }
private void MessageContentReply_BindingContextChanged(object sender, EventArgs e) { if (BindingContext != null) { try { message = (MessageElementModel)BindingContext; } catch { } if ((message != null) && !String.IsNullOrEmpty(message.ConversationId)) { String backgroundColorKey; if ((message.Peer.Id != Helper.SdkWrapper.GetCurrentContactId()) || usedAsInput) { backgroundColorKey = "ColorConversationStreamMessageOtherUserBackGround"; } else { backgroundColorKey = "ColorConversationStreamMessageCurrentUserBackGround"; } BackgroundColor = Helper.GetResourceDictionaryById <Color>(backgroundColorKey); // By default there is no Image visible Image.IsVisible = true; InitEvents(); // We need to get Name and text of the replied message ... Rainbow.Model.Message rbRepliedMessage = Helper.SdkWrapper.GetOneMessageFromConversationIdFromCache(message.ConversationId, message.Reply.Id); if (rbRepliedMessage != null) { log.LogDebug("[MessageContentReply_BindingContextChanged] Id:[{0}] - Reply.Id:[{1}] - Content:[2}]", message.Id, message.Reply.Id, rbRepliedMessage.Content); SetReplyPartOfMessage(rbRepliedMessage); } else { AskMessageInfo(); } } } }
public void SetReplyMessage(MessageElementModel messageElementModel) { // Ensure to be on Main UI Thread if (!MainThread.IsMainThread) { MainThread.BeginInvokeOnMainThread(() => SetReplyMessage(messageElementModel)); return; } // We can't add attachments FrameBeforeButtonAttachment.IsVisible = false; ButtonAttachment.IsVisible = false; replyToMessageId = messageElementModel?.Reply?.Id; MessageContentReply.SetUsageMode(true); MessageContentReply.BindingContext = messageElementModel; MessageContentReplyElement.IsVisible = true; }
public IHttpActionResult DeleteMessageElement(int id) { try { MessageElementModel model = new MessageElementModel(); model.DeleteById(id); return(Content(HttpStatusCode.OK, HttpResponseFormat.Success())); } catch (CDSException cdsEx) { return(Content(HttpStatusCode.BadRequest, CDSException.GetCDSErrorMessageByCode(cdsEx.ErrorId))); } catch (Exception ex) { string logAPI = "[Delete] " + Request.RequestUri.ToString(); StringBuilder logMessage = LogHelper.BuildExceptionMessage(ex); Global._appLogger.Error(logAPI + logMessage); return(Content(HttpStatusCode.InternalServerError, ex)); } }
private void MessageContentBodyWithCode_BindingContextChanged(object sender, EventArgs e) { if ((BindingContext != null) && (message == null)) { message = (MessageElementModel)BindingContext; if (message != null) { // Manage Image / Uri String body = message.Content?.Body; if (body.StartsWith("/code", StringComparison.InvariantCultureIgnoreCase)) { body = body.Substring(6); body = body.Trim().TrimStart('\r', '\n').TrimEnd('\r', '\n'); Label.Text = body; } } } }
private void MessageContentAttachment_BindingContextChanged(object sender, EventArgs e) { if (BindingContext != null) { MessageElementModel message = (MessageElementModel)BindingContext; if (message != null) { if (message.Content.Attachment != null) { conversationId = message.ConversationId; peerJid = message.Peer.Jid; attachmentId = message.Content.Attachment.Id; attachmentName = message.Content.Attachment.Name; attachmentSize = message.Content.Attachment.Size; attachmentAction = message.Content.Attachment.Action; ManageDisplay(); } } } }
private void MessageCurrentUserWithDate_BindingContextChanged(object sender, EventArgs e) { if (BindingContext != null) { MessageElementModel message = (MessageElementModel)BindingContext; if ((message != null) && (message.ConversationType == Rainbow.Model.Conversation.ConversationType.User)) { if (!receiptEventManaged) { receiptEventManaged = true; messageId = message.Id; conversationId = message.ConversationId; receipt = message.Receipt; displayReceipt = message.NeedReceipt; // Do we have to display receipt ? UpdateDisplay(); Helper.SdkWrapper.ReceiptReceived += SdkWrapper_ReceiptReceived; Helper.SdkWrapper.MessagesAllRead += SdkWrapper_MessagesAllRead; } } } }
protected override void OnBindingContextChanged() { if ((BindingContext != null) && (message == null)) { message = (MessageElementModel)BindingContext; if (message != null) { // Add Urgency element ? if (message.Content.Urgency != UrgencyType.Std) { if (messageContentUrgency == null) { messageContentUrgency = new MessageContentUrgency(); messageContentUrgency.BindingContext = message; ContentGrid.Children.Add(messageContentUrgency, 0, 0); Grid.SetColumnSpan(messageContentUrgency, 2); } } // Add forward header if (message.IsForwarded) { if (messageContentForward == null) { messageContentForward = new MessageContentForward(); messageContentForward.BindingContext = message; ContentGrid.Children.Add(messageContentForward, 0, 0); Grid.SetColumnSpan(messageContentForward, 2); } } // Add Reply element ? if (message.Reply != null) { if (messageContentReply == null) { messageContentReply = new MessageContentReply(); messageContentReply.BindingContext = message; ContentGrid.Children.Add(messageContentReply, 0, 1); Grid.SetColumnSpan(messageContentReply, 2); } } // Add Body element ? if (!String.IsNullOrEmpty(message.Content?.Body)) { if (message.Content.Body.StartsWith("/img", StringComparison.InvariantCultureIgnoreCase)) { if (messageContentBodyWithImg == null) { messageContentBodyWithImg = new MessageContentBodyWithImg(); messageContentBodyWithImg.BindingContext = message; ContentGrid.Children.Add(messageContentBodyWithImg, 0, 2); } } else if (message.Content.Body.StartsWith("/code", StringComparison.InvariantCultureIgnoreCase)) { if (messageContentBodyWithCode == null) { messageContentBodyWithCode = new MessageContentBodyWithCode(); messageContentBodyWithCode.BindingContext = message; ContentGrid.Children.Add(messageContentBodyWithCode, 0, 2); } } else if (messageContentBody == null) { messageContentBody = new MessageContentBody(); messageContentBody.BindingContext = message; ContentGrid.Children.Add(messageContentBody, 0, 2); } BtnPosition = 2; } else if (message.Content.Type == "deletedMessage") { // We don't need action button in this case needActionButton = false; // Create MessageContentDeleted messageContentDeleted = new MessageContentDeleted(); messageContentDeleted.BindingContext = message; ContentGrid.Children.Add(messageContentDeleted, 0, 2); Grid.SetColumnSpan(messageContentDeleted, 2); } // Add Attachment element ? if (message.Content.Attachment != null) { if (messageContentAttachment == null) { messageContentAttachment = new MessageContentAttachment(); messageContentAttachment.BindingContext = message; ContentGrid.Children.Add(messageContentAttachment, 0, 3); if (BtnPosition == -1) { BtnPosition = 3; } else { Grid.SetColumnSpan(messageContentAttachment, 2); } } } // Are we managing a msg of the current user ? if (message.Peer.Id == Helper.SdkWrapper.GetCurrentContactId()) { color = Helper.GetResourceDictionaryById <Color>("ColorConversationStreamMessageCurrentUserFont"); backgroundColor = Helper.GetResourceDictionaryById <Color>("ColorConversationStreamMessageCurrentUserBackGround"); } else { color = Helper.GetResourceDictionaryById <Color>("ColorConversationStreamMessageOtherUserFont"); backgroundColor = Helper.GetResourceDictionaryById <Color>("ColorConversationStreamMessageOtherUserBackGround"); } interpolateColor = ColorInterpolator.InterpolateBetween(color, backgroundColor, 0.5); Frame.BackgroundColor = backgroundColor; // Add Btn Action in the correct place if (needActionButton && (BtnPosition != -1)) { CreateBtnAction(); BtnAction.ImageSourceId = null; BtnAction.BackgroundColor = backgroundColor; BtnAction.BackgroundColorOnMouseOver = interpolateColor; ContentGrid.Children.Add(BtnAction, 1, BtnPosition); } } } }
public IHttpActionResult GetAllMessageSchemaByDeviceId(int id) { MessageElementModel model = new MessageElementModel(); return(Ok(model.GetAllByMessageCatalogId(id))); }