protected override void OnBindingContextChanged() { base.OnBindingContextChanged(); ChatMensajesModel item = BindingContext as ChatMensajesModel; if (item == null) { return; } string url = string.Empty; if (item.EsElOtroChatConElQueHablo) { url = UrlImagenPerfilDestino; Nombre.Text = NombreDestino; } else { url = UrlMiImagenPerfil; Nombre.Text = MiNombre; } UrlImagenPerfil.Source = null; if (!string.IsNullOrWhiteSpace(url)) { UrlImagenPerfil.Source = url; } else { UrlImagenPerfil.Source = App.Current.Resources["RutaDefaultImagenPerfil"] as string; } }
async Task CargarMensajes(int skipIndex, int takeIndex, bool isRefreshing = false) { if (!NoHayNadaMasParaCargar) { ChatsMensajesDTO chatMensaje = new ChatsMensajesDTO { CodigoChatEnvia = Chat.Consecutivo, CodigoChatRecibe = Chat.CodigoChatRecibe, SkipIndexBase = skipIndex, TakeIndexBase = takeIndex, ZonaHorariaGMTBase = _dateTimeHelper.DifferenceBetweenGMTAndLocalTimeZone }; if (isRefreshing && Mensajes != null) { chatMensaje.FechaFiltroBase = Mensajes.Max(x => x.ChatMensaje.FechaMensaje); } if (IsNotConnected) { return; } List <ChatsMensajesDTO> listaMensajes = await _chatsServices.ListarChatsMensajes(chatMensaje); if (listaMensajes != null) { if (listaMensajes.Count > 0) { using (await _lockeable.LockAsync()) { if (isRefreshing) { if (Mensajes == null) { Mensajes = new ObservableRangeCollection <ChatMensajesModel>(ChatMensajesModel.CrearListaMensajes(listaMensajes, Chat.CodigoChatRecibe)); } else { List <ChatMensajesModel> listaMensajesParaInsertar = ChatMensajesModel.CrearListaMensajes(listaMensajes, Chat.CodigoChatRecibe); foreach (ChatMensajesModel mensaje in listaMensajesParaInsertar) { Mensajes.Insert(0, mensaje); } } } else { listaMensajes.Reverse(); if (Mensajes == null) { Mensajes = new ObservableRangeCollection <ChatMensajesModel>(ChatMensajesModel.CrearListaMensajes(listaMensajes, Chat.CodigoChatRecibe)); } else { Mensajes.AddRange(ChatMensajesModel.CrearListaMensajes(listaMensajes, Chat.CodigoChatRecibe)); } } } } else { NoHayNadaMasParaCargar = listaMensajes.Count <= 0; } } } }